解决Oracle启动listener监听器hostname配置不一致的错误
TNS-12560: TNS: 协议适配器错误和TNS-00530: 协议适配器错误,可能是由于在win7系统启动cmd.exe没有以“管理员身份运行”。
Oracle启动listener监听器的时候经常会出现无法启动的错误,这些错误大多数是因为listener.ora配置问题引起,listener.ora中的HOST、Oracle实例的v$instance中的HOST_NAME与tnsnames.ora的HOST必须一致,最好在操作系统hosts文件中增加hostname对应IP的配置。
下面是启动listener时listener.ora,sqlnet.ora,tnsnames.ora配置问题解决思路:
Via: http://www.ixdba.net/hbcms/article/ec/231.html
1:监听文件listener.ora tnsnames.ora中关于host的配置建议都用ip来表示,
2:如果监听不能启动或者启动后不能正常使用,
(1)首先确认你的OS的hostname,执行hostname命令,尝试ping "hostname",看是否能通,
(2)然后检查监听的listener.ora ,tnsnames.ora这两个配置文件中关于host的信息是否是用主机名表示的。
(3)如果是,更改到新的主机名,然后把新的主机名加入系统的hosts文件,linux下为/etc/hosts;
然后ping 新主机名,应该能通的。
(4)如果全部是用ip表示的,那么直接将新的主机名加入系统的hosts文件即可。
然后ping 新主机名,也应该能通的。
3:如果第二步还是解决不了问题,
(1)检查启动的oracle的instance信息,select * fromv$instance;
然后查看本级系统的主机名,两者应该是相等的。
(2)如果查询出来的是老的主机名,尝试"ping老主机名"应该不通,
通过listener也应该是连结不上;
(3)如果是新的主机名,如果"ping新主机名"不通,
请修改/etc/hosts文件增加新主机名,确认能ping通,然后重启oracle
4:注意tns和listener文件的设置。
具体操作步骤:
1)修改hostname为itindex.net
2)修改/etc/hosts,去掉原来的主机名的行,增加该行
192.168.60.253 itindex.net
3)重启数据库,查询instance信息
select * from v$instance;
得到新的HOST_NAME为 itindex.net
4)修改listener.ora,把HOST改成新的主机名
5)修改tnsname.ora,修改对应的HOST为新的主机名
6)重启listener
然后connect oracle/oracle@standby应该可以成功的。