ORA-12541一次listener hang的故障解决

晚上十点多,一个朋友联系我说他们的数据库有问题,客户连接不上数据库,没有任何报错,就是卡住,也不提示任何信息.

这是一台windows 数据库,单实例数据库版本为11.2.0.1.远程到服务器之后查看数据库,发现数据库运行正常,查看监听发现异常,使用lsnrctl status 直接卡住.尝试使用lsnrctl start启动,发现报错监听已经存在,查看监听服务确实已经启动.

这种情况第一反应就是监听日志文件达到了4G,导致无法写日志.根据经验进入到$ORACLE_HOEM/diag/tnslsnr下面的目录下查看监听日志文件,发现文件只有1M.

难道是监听的名称错了?查看listener.ora文件发现监听的名称也是对的.

还有一种可能,是服务器的端口占满了,但是那种情况是监听都无法启动,使用netstat -an查看端口发现也是正常的,远没有达到65535个,这里突然先入了僵局...

查找了一下mos,一篇文章也是说监听的日志文件达到了4GB导致的,但是查了没有啊?

这里我又详细检查了一下listener.ora文件,如下:

发现了一个关键的配置信息:

ADR_BASE_LISTENER=

这里配置的是ORACLE_HOME\log,正常的配置应该是ORACLE_BASE目录才对

这个配置是配置ADR目录的,也就是说监听的日志文件将写到此目录下,而不是ORACLE_BASE\diag下

因此我靠经验到$ORACLE_BASE\diag\tnslsnr下查看的trace监听日志文件是不对的.

进入到$ORACLE_HOME\log下的tnslsnr查看trace文件,发现listener.log确实达到了4GB,停止监听,将此文件删除即可.

 

总结:

万事不要凭经验,其实oracle提供了命令让我们查看监听日志文件:

lsnrctl

>show log_file

可以查看监听日志xml文件的位置.

对于一些没有人维护的数据库,特别是windows系统,建议直接将oracle 监听日志关闭

>set log_status off

>save_config

这次故障从我接手到恢复花费了20分钟,业务也就至少停了20分钟,这个系统是一个7x24小时的核心系统,停20分钟影响还是非常大的,其实最开始通过故障现象我就定位到了可能是文件过大导致的,如果一开始直接通过命令查看日志文件路径,只要2分钟就可以解决故障.

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值