admin管理员组

文章数量:1530035

今天因为ETL节点机要访问一个新的数据库服务器,需要配置tnsnames.ora,结果配置好了之后,连数据库的时候报错:
ORA-12547: TNS:lost contact

一开始以为是tnsnames.ora配置不当,但是对比核查后,排除了这种可能。因为其它主机上一样的配置已验证可以连上这个数据库服务器。

接下来按这个报错“ORA-12547: TNS:lost contact”在网上搜了不少资料,有说缺软件包的,有说数据库主机上文件权限设置问题的,但都不符合这次遇到的情况。

后来还是决定看看日志,查了数据库的监听日志listener.log,发现里面有以下报错信息:
20-MAY-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0
Incoming connection from 192.168.24.1 rejected 
20-MAY-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
 TNS-12560: TNS:protocol adapter error
  TNS-00516: Permission denied

参考资料,并查看了该数据库服务器的sqlnet.ora配置,发现是因为设置了数据库访问IP限制,即只有指定的IP可以访问该数据库。

由于是双节点RAC数据库,在grid用户下修改sqlnet.ora,就是把要访问该数据库的ETL节点IP加入到IP白名单中。
修改后要重启监听(lsnrctl reload),否则还是会报错。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub/29734436/viewspace-2104052/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub/29734436/viewspace-2104052/

本文标签: 一例数据库ORAORACLEContact