这两天遇到了一个Oracle服务器有关tns的问题,现象是无法连接Oracle数据库。在网上搜索了很多资料,根据网上的说法,尝试了以下的方法,都没有成功。
1. 使用Net Configuration Assistant 重新配置tns;
2. 重启Oracle各种服务,包括TNSListener和OracleService,甚至重启服务器;
3. 手工修改listener.ora,tnsnames.ora,将HOST = <计算机名> 改为ip地址,或者127.0.0.1,再改回计算机名;
以上的这些都不起作用。使用Oracle Net Manager测试连接,发现要么程序抽住没有反应,要么报TNS-12541: TNS: 无监听程序。
今天下午找了一个大牛,倒腾了一会儿,也没有解决。结果大牛找到了一个帖子:
http://www.cnblogs.com/david-zhang-index/p/4916770.html
在这个帖子的下半部分,有一段内容。帮助我们解决了这个问题。具体办法如下:
DIAG_ADR_ENABLED = OFF
DIAG_ADR_ENABLED_<listenername> = OFF
其中,把<listenername>换成你oracle服务器的监听程序名称,比如,我的是DIAG_ADR_ENABLED_LISTENER = OFF
3. 重启监听服务和oracle服务
4. 真的能连上了!
按照这个帖子的描述,我查看了一下我的监听日志,位置是D:\app\Administrator\diag\tnslsnr\<计算机名>\listener\alert
看来,真的是Oracle的一个bug。。。
原文链接:https://www.f2er.com/oracle/210139.html