没人动服务器,无缘无故数据库连接挂了,直接报:TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序
以前遇到过两次,当时无力解决,最后通过导出数据,重装数据库,再导入数据的方式处理。
耗费时间长,出现无监听程序时,sys能够登录,能够导出数据,不存在数据丢失问题。但是耗费时间太长,
这次出现问题由于涉及数据量太大,导入需要太长时间,因此尝试解决:
找了很久看到一篇文章,很有用,原文:
https://www.cnblogs.com/david-zhang-index/p/4916770.html
核心摘录:
但这并不是问题发生原因,在继续排查过程中偶然发现监听日志大小居然为4G。然后把这现象告诉了Luocs。 过了一会儿,Luocs回应是Oracle一个BUG,BUG号为9879101 : THE CONNECT THROUGH LISTENER WAS SLOW WHEN LISTNER LOG GROWED 4GB。 Luocs还提供了MOS上一篇文章,ID 1319797.1 : WINDOWS: Listener Hangs & Lsnrctl Commands Are Slow or Hang,里面给出了解决方法: You can solve this problem by deleting the large listener in $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log 1) Stop the listener process using the command line or Control Panel Service. 2) Delete the log file(s) that are at or approaching the 4G size limit at this location: $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log 3) Issue any lsnrctl command and you will see a new listener.log in its place under: $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\ Since ADR Diagnostics are enabled for this listener these steps cannot be done dynamically using the lsnrctl utility. e.g. LSNRCTL>set log_file mylog Will yield: TNS-01251: Cannot set trace/log directory under ADR. However, it is possible to disable the flat file listener logging using the following commands: LSNRCTL>set current_listener <listener_name> LSNRCTL>set log_status OFF LSNRCTL>save_config 我就按照以上说明如下进行: 1)LSNRCTL进入交互模式 2)执行set current_listener LISTENER 3)set log_status off 4)stop 停止监听器 5)手工删除ADR指定的监听日志路径下的listener.log文件 6)start重启监听器 7)status查看状态
按照这个文章,处理后,报错内容不一样了,报错:
ORA-12514:监听程序当前无法识别连接描述符中请求的服务
按照文章,改了配置,原文:http://blog.csdn.net/fei1502816/article/details/23170421
然后报新错误:
ORA-12518: TNS: 监听程序无法分发客户机连接
参考文章:
http://blog.csdn.net/zhouxinhong/article/details/7396910
最后,发现是有个主服务没启动,我也不知道上面这两步,有没有作用,反正我重新启动主进程和监听了,数据库可以正常访问了,至此,事情处理完毕,作为一个程序猿,数据库太博大精深了,建个索引还行,遇到这些问题,处理起来太恼火了。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《记录一次oracle无缘无故就无监听,报TNS-12541等错误的问题》
发表评论