client连不上server:
0、本机上要装oracle 的客户端
1、ping 服务器ip;
如果ping不通 把防火墙关掉再试一下(大部分问题都出在这里);
2、配置客户端文件(tnsnames.ora)
文件一般路径:
%oracle_home%\db_1\NETWORK\ADMIN
ORCL = --#“ORCL”为客户端登陆时的字符串
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521))--#“192.168.1.4”为服务器的IP
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)--#这里的“ORCL”是服务器开的oracle实例名称。
)
)
3、用户没有CONNECT 角色
用有dba角色(system或sys)的用户登陆,
然后给你该用户赋一个CONNECT 角色。
--------------------------------
------oracle 入门问题备忘-------
--------------------------------
0、最常见的问题ORA-12560
0.1、监听器没启动
启动xxxxxxxx
Listener
0.2、数据库instance没有启动
启动oracleserviceXXXX,XXXX就是你的database SID.
0.3、注册表问题。
regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
1、命令开启linux 上oracle 的服务与监听器
1.1、开启一个orcale实例:(注意:
一定是服务器端,不要在客户端,如果实例没有启动,客户端conn时会报ora-12560错误)
$>sqlplus /nolog
sql>conn /as sysdba
sql>startup
sql>exit
1.2、开启监听:
$>lsnrctl
lsnrctl>start
2、ORA-01747: user.table.column, table.column 或列说明无效
这是表中字段与oracle 关键字相冲突了.(特别是mysql 转到 oracle时常见问题)
3、ORA-12519, TNS:no appropriate service handler found
有时候连得上数据库,有时候又连不上.
可能是数据库上当前的连接数目已经超过了它能够处理的最大值.
SQL> select count(*) from v$process;--当前连接数
COUNT(*)
149
SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数
VALUE
150
修改最大连接数:
SQL> alter system set processes = 2000 scope = spfile;
重启数据库:
SQL> shutdown immediate;//是中止所有会话,回滚未提交的事务(好慢啊。呼呼。)
SQL> startup;
4、ORA-00001: unique constraint (xxx.xxx) violated
违反主键唯一约束规则,
把sequence的起始值,调到表中id的最大值加1.
5、ORA-00604、ORA-12705;
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
java.sql.SQLException: ORA-12705: invalid or unknown NLS parameter value specified
MyEclipse Database Explorer建立oracle数据库连接的时候,报的错误信息,
[MyEclipse路径]\eclipse\eclipse.ini文件中将"-Duser.language=
en"修改为"-Duser.language=
zh";
具体原因请点击《
原因》