本文共 1148 字,大约阅读时间需要 3 分钟。
ORACLE数据库的监听起不来报错,很快解决了。在这里记录一下遇到的问题,方便备查。在数据库listener.ora文件里面HOST后面到底应该输入IP地址还是主机名?很多人可能有不同的做法。我的经验是最好使用主机名。比如说,一个机器绑定的不只一个IP地址,你在HOST后面写的是IP地址,那么ORACLE的listener只会监听指定IP地址的访问请求,本机其它IP地址的连接都会拒绝的。而且创建监听的时候,listener.ora文件默认创建的就是主机名。在listener.ora文件里HOST后面如果是主机名,那么就会与/etc/hosts这个文件扯上关系了。
这次出现的问题,就是因为研发人员不小心修改了主机名,而在/etc/hosts文件里又没有修改主机名和IP的对应造成的。 我们看报错截图:
当你查找1521端口时发现PMON(缺省情况下,PMON 向TCP/IP 的缺省本地地址- 端口1521- 处的本地监听程序注册服务信息) # netstat -antp | grep 1521 tcp 0 1 192.168.1.252:36842 202.106.0.20:1521 SYN_SENT 28794/ora_pmon_orcl 检查202.106.0.20这个ip到底哪来的? 在 /etc/hosts 里居然多了这条记录 202.106.0.20 wxtest 不知道是谁加上的,从来没有这个部署需求。先不管了,直接把这条语句注释掉 重新启动数据库,重新启动监听,一切正常了! 附图:
补充:/etc/hosts文件相关的几个错误。 1、/etc/hosts文件oracle没有权限访问 这时候oracle用户去启动监听会报如下错误TNS-12545: Connect failed because target host or object does not exist TNS-12560: TNS:protocol adapter error TNS-00515: Connect failed because target host or object does not exist Linux Error: 13: Permission denied
2、/etc/hosts文件里面的主机名对应的IP地址没有正确在本机绑定 这时候oracle用户去启动监听会报如下错误TNS-12535: TNS:operation timed out TNS-12560: TNS:protocol adapter error TNS-00505: Operation timed out Linux Error: 110: Connection timed out
转载地址:http://tpbia.baihongyu.com/