中止进程导致系统HANG住
来源:互联网 发布:泰迪熊代挂软件官网 编辑:程序博客网 时间:2024/05/02 01:38
以前在11g上碰到过一次类似的情况,由于ALTER SYSTEM KILL SESSION导致资源被完全占用,在一段时间内数据库处于HANG住状态。这次又碰到类似的问题。
简单描述一下问题产生的环境,用户在进行测试,在很短的时间内连续启动了多个应用服务器,导致大量的并发进程同时连接到数据库中,致使数据库服务器CPU利用率一下冲到100%。
由于数据库的这种状态,用户决定中止一些进程来释放服务器上的资源。但是通过kill -9和alter system kill session杀掉大量的会话后,数据库服务器反而处于HANG死状态,这时连sqlplus / as sysdba都无非正常登录。
于是用户继续通过kill -9清除所有非本地连接,到最后所有连接到数据库的非本地连接已经完全被杀掉,而服务器上的CPU资源已经下降,只有Oracle的PMON进程占用了单CPU的50%左右,其他CPU完全空闲。可是此时数据库仍然无非正常登录。
此时只能通过sqlplus –prelim “/ as sysdba”方式登录,然后利用oradebug执行systemstate的dump,查看导致数据库HANG死的原因。
检查SYSTEMSTATE的DUMP文件,发现PMON进程和大量的DEAD进程都在经历library cache: mutex X等待事件。而整个DUMP文件中library cache: mutex X等待事件出现了3000多次。这个等待事件是不正常的。
查询MOS发现果然是bug:Bug 9312879 “library cache: mutex x” waits after killing sessions / PMON slow to clean up。在11.1中,如果会话在KILL,那么PMON进程可能在清除进程会话是出现异常,导致清除进程失败后不断尝试,并最终产生这个问题。
这个BUG在11.2.0.1和11.1.0.7.7中被fixed,而Oracle对于这个问题的临时解决方案是不要kill会话。看来11.1版本和11.2相比确实是问题更多一些。
- 中止进程导致系统HANG住
- Python使用subprocess.Popen导致子进程hang住
- Oracle11G密码延迟验证导致的系统HANG住
- 密码延迟验证导致的系统HANG住
- 捕获由于无效指针导致的内存读写异常,最后导致进程异常中止(仅适用于Windows系统)
- 查找系统并中止该进程(Wmobile)
- 系统HANG住了,怎么办?
- 存储IO性能太差,导致数据库hang住
- 风险无处不在:运行diagcollection.sh导致 os hang住
- 系统HANG住分析工具及方法
- 系统HANG住分析工具及方法
- Loadrunner服务器问题解决之--mdrv.eve进程未中止导致服务器磁盘空间占满
- 查看中止进程
- 批量中止进程
- nuget 导致 vs hang死
- OGG 主进程一直关不掉hang住了
- Python主进程hang住的两个原因
- 当你的Solaris系统boot时hang住怎么办?
- 黑马程序员_java学习笔记七 网络编程篇
- Unity3D中的shader基础知识
- Bone Collector(01背包)
- div+CSS浏览器兼容问题整理(IE6.0、IE7.0 ,ie8 , FireFox..
- 三个哲理故事教会我(我想所有人都有必要看)如何降低技术创业的风险
- 中止进程导致系统HANG住
- 对于sql2008强制协议加密的一些看法
- poj 3117 World Cup
- 我既要开发PHP,又要开发JSP而同时又都要用到MYSQL数据库,肿么办,安装太多的环境又不好管理(PHPNOW+ECLIPSE)
- Qt开发桌面Helloworld与Qt windows应用程序 双击不能运行解决方法
- 整合Bullet物理引擎到Ogre on iPhone
- android - Gesture学习 1
- 获得本机外部IP和名称
- java基础的零散总结(2)--单例设计模式