首页 / 数据库 / MySQL / Oracle数据库hang住实例分析
现象: 普通用户和sysdba都无法登陆,业务中断分析过程:1.先做hanganalyze和systemstate dump$sqlplus -prelim "/as sysdba"SQL> oradebug setmypidStatement processed.SQL> oradebug hanganalyze 3Statement processed.SQL> oradebug hanganalyze 3Statement processed.SQL> oradebug tracefile_name/u01/app/Oracle/diag/rdbms/db11/db11/trace/db11_ora_2495.trcSQL> 2.分析trace文件有76个会话被会话494阻塞了,而会话494在等待shared pool...会话494,496,519之间可能相互独立,也可能存在互相阻塞的关心。继续分析日志:”adjlist“表示nodenum,所以会话494被会话598阻塞,会话496也被会话597阻塞所以进程号553382、sid=598的会话就是数据库hang住时的阻塞源头会话598在做什么,需要从systemstate dump中做分析,但是系统重启前没有做systemstate dump分析。因为oracle中的进程要么是前台进程,要么是后台进程,在oracle启动的时候,会记录后台进程的进程id号,从alter日志中发现:根据MMAN进程猜测与动态调整SGA有关。关闭动态SGA管理后,系统恢复正常,不再有hang现象。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址