诊断Oracle数据库Hanging问题 联系客服

发布时间 : 星期三 文章诊断Oracle数据库Hanging问题更新完毕开始阅读319158bcfac75fbfc77da26925c52cc58bd6908e

诊断Oracle数据库Hanging问题

注意:当数据库是集群数据库的时候,如果需要诊断挂起的问题,则需要在每个节点上都执行systemstate dump操作,建议做3次左右,以便能够确定数据库或者进程是否是真的挂起还是激活状态。 对于Oracle 8.0.5.x to 8.1.7.x的版本:

$ svrmgrl

svrmgr> connect internal

svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME HANGANALYZE LEVEL

3';

wait 90 seconds

svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME HANGANALYZE LEVEL

3';

EXIT ... then reconnect

svrmgr>ALTER SESSION SET MAX_DUMP_;

svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL

10';

wait 90 seconds

svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL

10';

wait 90 seconds

svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL

10';

对于Oracle 9.2.0.1或者更高的版本:

$ sqlplus /nolog connect / as sysdba oradebug setmypid oradebug unlimit oradebug hanganalyze 3

wait 90 seconds oradebug hanganalyze 3 oradebug dump systemstate 10

wait 90 seconds

oradebug dump systemstate 10

wait 90 seconds

oradebug dump systemstate 10

获取STATPACK的输出报告

对于如何得到和分析statpack的输出报告,可以参考eygle的个人网站上的文章。 获取PROCESSSTATE的dump

9 / 10

诊断Oracle数据库Hanging问题

获取processstate dump,可以使用如下命令,建议执行三遍,将可以在user_dump_dest目录下找到生成的跟踪文件。

$ sqlplus \ oradebug setospid

oradebug unlimit

如果要获取errorstacks dump,可以使用如下命令,建议执行三遍,同样可以在user_dump_dest目录下找到生成的跟踪文件。

$ sqlplus \oradebug setospid

oradebug unlimit oradebug dump errorstack 3

10 / 10