Õï¶ÏOracleÊý¾Ý¿âHangingÎÊÌâ ÏÂÔØ±¾ÎÄ

Õï¶Ï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