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