上一篇
场景还原:凌晨3点,你正睡得香甜,突然手机警报狂响——生产库连不上了!😱 登录服务器一看,监听日志里赫然躺着:ORA-24912: Listener thread failed. string
... 别慌!这份2025年最新实战指南能救急!
报错特征:
ORA-24912
,通常伴随string
占位符(实际可能是具体线程名) TNS-12535
或TNS-00505
等连接超时错误 lsnrctl status
命令卡死或返回异常 高频诱因:
# Linux ps -ef | grep tnslsnr | awk '{print $2}' | xargs kill -9 lsnrctl start # Windows taskkill /F /IM tnslsnr.exe net start OracleOraDB21Home1TNSListener
💡 注意:暴力kill可能造成短暂业务中断,建议先通知业务方
-- 查看监听日志路径 lsnrctl show log_directory -- 检查监听协议配置(重点关注HOST是否为本机IP) cat $ORACLE_HOME/network/admin/listener.ora | grep -i host
常见踩坑:
# 查看监听内存占用(Oracle 21c+适用) oracle@server:~$ pmap -x $(pgrep tnslsnr) | grep total # 监控线程数波动 watch -n 1 "ps -T -p $(pgrep tnslsnr) | wc -l"
⚠️ 若线程数持续增长不释放,需考虑BUG补丁
# 删除监听缓存文件 rm $ORACLE_HOME/network/log/*.log rm /tmp/.oracle/* # 重建监听注册 sqlplus / as sysdba <<EOF ALTER SYSTEM REGISTER; EOF
ALTER SYSTEM SET "_listener_thread_pool_size"=50 SCOPE=BOTH;
-- 设置最大连接数阈值 ALTER SYSTEM SET LISTENER_MAX_CONNECTIONS=1000 SCOPE=SPFILE;
# 使用Oracle Autonomous Health Framework $ORACLE_HOME/ahf/bin/tfactl diagcollect -s listener
lsnrctl reload
防止内存碎片 遇到解决不了的幺蛾子?试试终极奥义:
# 完全重置监听配置(慎用!) mv listener.ora listener.ora.bak netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
本文由 柔晓曼 于2025-08-01发表在【云服务器提供商】,文中图片由(柔晓曼)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/506947.html
发表评论