解决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应该可以成功的。

 

你可能感兴趣的:(oracle,database)