TNS相关的问题收集

来源:互联网 发布:宣传展板设计软件 编辑:程序博客网 时间:2024/04/30 06:42

ORA-12560:TNS:PROTOCOL ADAPTER ERROR

如果是你机器上没有数据库,只是Oracle Client端,然后通过Client端去连接远端的数据库,有时候会出现这个问题。当然了,在出这个问题的时候,你要先确认远端数据是正常开启的,并且监听器也是正常的。在这个情况下出现这个错误一般是网络上的问题,重启机器即可解决 ,比如像我的机器开机时间超过1天,就需要重新启动一下,否则网络上很多资源都不能使用。

如果有数据库,使用sqlplus去启动或者关闭数据库的时候出现这个问题,就要检查一下你的数据库实例有没有开启,如果是windows的话,就在服务里面可以看到,服务是开的话,那就要看看你这个用户有没有开启实例的权限,windows里面该用户必须是ora_dba组里的成员。接着使用这个用户登陆到数据库,看看db是否在open状态下,SID是否就是你需要的SID,相关的指令/SQL很简单,就省略了。

ORA-12537:TNS :连接已经关闭。

先在clinet机器用指令tnsping <tns node>看看是否正常,如果正常就说明你可以和数据库服务器建立TCP/IP连接。然后在登陆到DB服务器上,看看OS上是否有防火墙,再检查sqlnet.ora里面是否有tcp.validnode_checking=yes,如果有,看看tcp.excluded_nodes后面是否有你机器的IP,如果有增加到tcp.invited_nodes里面,当然修改tcp.validnode_checking=no,也行,但是你也有权限登陆到DB服务器上才可以。其他的检查就是察看listener.log,每一个连接都会在这个里面产生一笔纪录。当然如果用os指令netstat -a也可以看到client是否已经连接过来。有时候DB名字修改了,listener.ora里面没有同步,也会出这个问题。不过/etc/hosts里面127.0.0.1 localhost和loghost是不能少的,有些时候少了127.0.0.1也会引起TNS上的问题

TNS-01190: The user is not authorized to execute the requested listener command

win7使用dbca配置好数据库后,相关的服务是在administrator下,在普通用户下就会出现这个错误,只要把BIN\lsnrctl.exe勾上使用管理员运行就可以了。同样的执行sqlplus出错

D:\Oracle\product\10.2.0\BIN>sqlplus
SP2-1503: Unable to initialize Oracle call interface
SP2-0152: ORACLE may not be functioning properly

也是因为这个原因,可以将2个脚本写成一个bat文件,运行时使用管理员权限运行即可。

 

TNS-TNS-01190: 用户无权执行所请求的监听程序命令

将lsnrctl.exe运行时使用管理员权限运行即可

原创粉丝点击