一次数据库hang住的分析过程

现象:  

  普通用户和sysdba都无法登陆,业务中断

 

分析过程:

1.先做hanganalyze和systemstate dump

$sqlplus -prelim "/as sysdba"
SQL> oradebug setmypid
Statement processed.
SQL> oradebug hanganalyze 3
Statement processed.
SQL> oradebug hanganalyze 3
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/db11/db11/trace/db11_ora_2495.trc
SQL> 

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现象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值