代码改变世界

Oracle 监听器日志文件过大导致监听异常

2015-06-30 15:01  abce  阅读(1533)  评论(0编辑  收藏  举报

Oracle 监听器日志文件过大导致监听异常

 

db版本:11.2.0.1

os版本:windows2008

 

现象:

应用异常,无法连接数据库。登陆数据库服务器,查看监听已经断掉。尝试重启监听,重启失败。查看监听日志listener.log的大小已经超过4G。

 

日志信息:

***********************************************************************

Fatal NI connect error 12570, connecting to:
 (LOCAL=NO)

  VERSION INFORMATION:
	TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
	Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
	Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
  Time: 30-6月 -2015 8:43:34
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12570
    
TNS-12570: TNS: 包阅读程序失败
    ns secondary err code: 12560
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
opiodr aborting process unknown ospid (2660) as a result of ORA-609

  

解决方法:

删除listener.log(删除前可以先做备份),然后重启监听。监听重启后会自动创建一个新的日志文件。

 

补充:

在监听进程运行时,无法对listener.log做删除或者重命名操作。

如果不想重启监听,删除监听日志。可以按如下操作:

1.>lsnrctl set log_status off    # 先把日志状态停掉,这样就不会写监听器日志

2. 备份或者删除监听日志

3.>lsnrctl set log_status on    # 重新打开日志,开始记录监听器日志。该文件会自动创建

4.>lsnrctl status                    #检查监听状态

 

Linux下不要直接 cat /dev/null >  listener.log 除非在监听器关闭的情况下。否则,即便文件已经被清空,监听器还是无法执行写入日志的。

 

参考资料:

Bug 9497965 - Win: Listener Startup Fails Due to listener.log Size is Greater Than 4GB [ID 9497965.8]