要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
1、 ora-12541: tns: 没有监听器
显而易见,服务器端的监听器没有启动,另外检查客户端ip地址或端口填写是否正确。启动监听器(可能要在oracle用户下启动):
$ lsnrctl start
或
c:\lsnrctl start
2、 ora-12500: tns: 监听程序无法启动专用服务器进程
对于windows而言,没有启动oracle实例服务。启动实例服务:
c:\oradim –startup -sid myoracle
3、 ora-12535: tns: 操作超时
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、 ora-12154: tns: 无法处理服务名
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(windows下如d:\oracle\ora92\network\admin\tnsnames.ora,linux/unix下$oracle_home/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。
5、 ora-12514: tns: 监听进程不能解析在连接描述符中给出的 service_name
打开net manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
6、 windows下启动监听服务提示找不到路径
用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入hkey_local_machine/system/current controlset/services/oracleorahome92tnslistener项,查看imagepath字符串项是否存在,如果没有,设定值为d:\oracle\ora92\bin\tnslsnr,不同的安装路径设定值做相应的更改。这种方法同样适用于oracle实例服务,同上,找到如同hkey_local_machine/system/current controlset/services/oracle servicemyoracle项,查看imagepath字符串项是否存在,如果没有,则新建,设定值为d:\oracle\ora92\binoracle.exe myoracle。
以上是oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,,而不是每种问题都有固定的答案。
7、tns-01155: incorrectly specified sid_list_listener parameter in listener.ora
tns-01155: incorrectly specified sid_list_listener parameter in listener.ora 这个错误的原因是我们更改了listener.ora文件:所以导致lsnrctl无法启动oracle 1521端口。具体解决办法如下:
修改$oracle_home/network/admin/listener.ora(下面是改好的).(曾经按照网上的改法修改后,仍然不能解决此问题,最后只能参照网上的改法,以及 $oracle_home/network/admin/samples/listener.ora文件的语法规则进行更改后才得以解决此问题)
sid_list_listener =
(sid_list =
(sid_desc =
(global_dbname = orcl)
# (sid_name = plsextproc)
(oracle_home = /usr/oracle_db/product/10.2.0/)
(sid_name = orcl)
# (program = extproc)
)
)
listener =
(description_list =
(description =
(address = (protocol = ipc)(key = extproc1))
(address = (protocol = tcp)(host = localhost.localdomain)(port = 1521))
)
)