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

Õï¶ÏOracleÊý¾Ý¿âHangingÎÊÌâ

È·¶¨µ±Ç°Êý¾Ý¿âÊÇ·ñÊÇÕæµÄhanging»¹ÊÇ´¦Óڻ״̬µ«ÊÇÔËÐеķdz£Âý?¼ì²éÏÂÔÚAlertÎļþÖÐÊÇ·ñ»¹ÓÐÈÕÖ¾Çл»£¬¼ì²éµ±Ç°µÄCPU£¬I/O£¬ÄÚ´æµÄÀûÓÃÂÊ¡£

½«ÌÖÂÛÈçϵÄÕï¶Ï²½Ö裺 1) ÃèÊöÇå³þ³öÏÖµÄÏÖÏóÎÊÌâ 2) ѰÕÒ¾ßÌå´íÎó

3) ÊÕ¼¯²Ù×÷ϵͳ¼¶±ðÉϵÄÊý¾Ý

4) »ñÈ¡systemstateºÍhanganalyzeµÄdump 5) »ñÈ¡STATPACKµÄÊä³ö±¨¸æ 6) »ñÈ¡PROCESSSTATEµÄdump

×¢£º¿ÉÄܺܶàʱºòûÓбØÒª¹Ø±ÕÊý¾Ý¿âÀ´Í£Ö¹hanging£¬½¨ÒéÈç¹ûÒª¹Ø±ÕÊý¾Ý¿â֮ǰ»ñÈ¡ÕâЩÕï¶ÏÐÅÏ¢ÒÔ±ãÕÒ³ö´íÎóµÄÔ­ÒòËùÔÚ¡£

ÏÂÃæ¾ÍÀ´¾ßÌåÌÖÂÛÈçºÎÕï¶ÏÊý¾Ý¿âHangingÎÊÌâ¡£ ÃèÊöÇå³þ³öÏÖµÄÏÖÏóÎÊÌ⣺

ÏÈŪÇå³þÔËÐеÄÊý¾Ý¿â°æ±¾£¬ÐèÒªÍêÕûµÄ°æ±¾ºÅ£¬ÀýÈç9.2.0.4¡£

È·¶¨µ±Ç°Êý¾Ý¿âÊÇ·ñÊÇÕæµÄhanging»¹ÊÇ´¦Óڻ״̬µ«ÊÇÔËÐеķdz£Âý?¼ì²éÏÂÔÚAlertÎļþÖÐÊÇ·ñ»¹ÓÐÈÕÖ¾Çл»£¬¼ì²éµ±Ç°µÄCPU£¬I/O£¬ÄÚ´æµÄÀûÓÃÂÊ¡£

²é¿´Êý¾Ý¿âhangingµÄ¿ªÊ¼Ê±¼ä£¬³ÖÐøÁ˶೤ʱ¼ä?Êý¾Ý¿âhangingÊÇ·ñÊÇͻȻ·¢Éú»¹ÊÇÓÉÓÚÔö¼ÓµÄ»î¶¯ÊÂÎñµ¼ÖÂÐÔÄܵÄÖð²½½µµÍ?µ±Ç°ÓжàÉÙµÄÁ¬½ÓÓû§?×î½üµÄϵͳ¸ºÔØÊÇ·ñÊÇÔÚÉÏÉý?

ÊÇ·ñÔÚ³õʼ»¯²ÎÊýÎļþÖÐÉèÖÃÁËÈκÎevent?Êý¾Ý¿âµ±Ç°ÕýÔÚ×öʲôÀàÐ͵ÄÊÂÎñ?Êý¾Ý¿âµÄÊý¾ÝÁ¿¶à´ó? Êý¾Ý¿âÊÇÔËÐÐÔÚ¼¯Èº»·¾³Âð?Èç¹ûÊǼ¯ÈºÊý¾Ý¿â£¬ÄÇô¹Ø±ÕÆäËûʵÀý¾ÍÁôÏÂÒ»¸öʵÀý£¬ÎÊÌâÊÇ·ñ»¹³ÖÐø´æÔÚ?ÕâÀïÌÖÂÛµÄijЩ½â¾ö·½·¨ÊÊÓÃÓÚ¼¯ÈºÊý¾Ý¿â£¬µ«ÊǴ󲿷ֵķ½·¨²»Êʺϡ£ÀýÈ磬һ¸ö²»´óµÄbuffer cacheͨ³£¶ÔÓÚ¼¯ÈºÊý¾Ý¿âÀ´ËµÒâζ׎ϺõÄÐÔÄÜ¡£¹ØÓÚ¼¯ÈºÊý¾Ý¿âµÄ´ó²¿·ÖhangingµÄÎÊÌâÕâÀï²»×öÌÖÂÛ£¬ÆäÖаüÀ¨PCMËøÎÊÌ⣬pinging£¬¿Õ¼ä¹ÜÀíÎÊÌ⣬½Úµã¼ä²¢Ðвéѯµ÷ÓÅ£¬¹²Ïí´ÅÅÌ»òÕßÐéÄâ¹²Ïí´ÅÅÌÎÊÌâ£¬ÍøÂçÎÊÌ⣬DLMÎÊÌâµÈ¡£

Êý¾Ý¿âÊÇÔËÐÐÔÚMTS»·¾³ÏÂÂð?Èç¹ûÈ¡ÏûMTS£¬ÊÇ·ñÎÊÌâ³ÖÐø´æÔÚ?ÊÇ·ñʹÓÃÁËOracleµÄÓ¦ÓûòÕß¹¤¾ß?×î½üÊÇ·ñÉý¼¶ÁËÊý¾Ý¿â£¬Ó¦Ó㬹¤¾ß»òÕß²Ù×÷ϵͳ£¬Ó²¼þ?ÎÊÌâ·¢ÉúµÄƵÂÊ?ÊÇ·ñÄܹ»ÖØÏÖÎÊÌâ? ÊÇ·ñÕû¸öÊý¾Ý¿â¶¼±»hanging?

ËùÓеÄʵÀý?ËùÓеÄÁ¬½Ó?ËùÓеIJÙ×÷?ËùÓеĽڵã?

1 / 10

Õï¶ÏOracleÊý¾Ý¿âHangingÎÊÌâ

Ê×ÏÈÈ·ÈÏÊÇ·ñÄܹ»Ö´Ðвéѯselect * from dual?ÈÕÖ¾Îļþ¶à¾ÃÇл»Ò»´Î?Èç¹ûÔÚAlertÈÕÖ¾ÖÐÓй鵵Ïà¹ØµÄ´íÎóÐÅÏ¢£¬ÄÇô¿ÉÒÔ×ÅÊÖ½â¾ö¹éµµ´íÎóÎÊÌ⣬ÒòΪ¹éµµÎÊÌâ¾­³£»á¹ÒÆðÊý¾Ý¿â¡£ÀýÈ磺¹éµµÄ¿µÄµØ¿Õ¼äÂúÁË£¬»òÕßÊý¾Ý¿â´¦Óڹ鵵ģʽϵ«ÊÇARCH½ø³Ì±»Í£Ö¹ÁË¡£Ò»°ã¿ÉÒÔÏÈÒÔsysdbaȨÏÞÁ¬½Óµ½Êý¾Ý¿âÖУ¬Ö´ÐÐARCHIVE LOG LIST£¬²é¿´Êý¾Ý¿âÊÇ·ñ¹éµµÄ£Ê½£¬ÊÇ·ñÆôÓÃÁË×Ô¶¯¹éµµ£¬Ò»°ãÈç¹ûûÓÐÆôÓÃ×Ô¶¯¹éµµ£¬¾ÍºÜÈÝÒ×¹ÒÆðÊý¾Ý¿âÁË£¬Õâ¸öʱºòͨ³£µÄ×ö·¨¾ÍÊǰÑÊý¾Ý¿â¸Ä³É×Ô¶¯¹éµµÄ£Ê½»òÕßÊǷǹ鵵ģʽ Ò»¸öÖ¸¶¨µÄSQLÓï¾ä²Ù×÷?

1) Èç¹ûÊÇÓÉÓÚÖ¸¶¨µÄSQLÓï¾äµ¼ÖÂÊý¾Ý¿â¹ÒÆð£¬ÏÈÖ´ÐдøÓÐtimed_statistics²ÎÊýµÄTKPROFÊä³ö±¨¸æÒÔ¼°SQLÓï¾äµÄÖ´Ðмƻ®£¬È»ºó¾ÍÐèÒª·ÖSQLÓï¾äÀàÐÍÀ´·ÖÎöÁË£º

2) Èç¹ûÊÇselectÓï¾ä£¬ÄÇôÕâ¸öSQLÓï¾äÓ¦¸ÃÊÇÐèÒª±»µ÷Õû£¬Èç¹ûÊÇÒ»¸ö·Ç³£¸´ÔÓµÄSQLÓï¾ä£¬ÄÇô³¢ÊÔÊÇ·ñ¿ÉÒÔÖжϡ£

3) Èç¹ûÊÇÒ»¸ö²¢ÐвéѯÓï¾ä£¬¿ÉÒԲο¼¼à¿Øµ±Ç°²¢ÐвéѯÔËÐÐ×´¿ö½Å±¾»ñµÃ²¢ÐвéѯµÄÖ´Ðмƻ®¡£¿ÉÄÜÊǿռäÊÂÎñ¾ºÕù£¬Èç¹ûÔÚAlertÈÕÖ¾ÎļþÖгöÏÖORA-1575´íÎó£¬ÄÇôÇ뽫ÁÙʱ±í¿Õ¼äµÄ²ÎÊýpct_increaseÉèÖÃΪ0ÒÔ±ã½ûÖ¹SMON½ø³Ì½ÓºÏÁ¬ÐøµÄextents£¬Òò´Ë¼õÉÙ²éѯslavesµÄ¾ºÕù¡£Í¬Ê±½«Êý¾ÝÎļþ¾¡Á¿·ÖÉ¢µ½²»Í¬µÄ´ÅÅÌÉÏÈ¥£¬¼õÉÙ´ÅÅÌI/OµÄ¾ºÕù£¬Êʵ±Ôö¼Ósort_area_sizeµÄ´óС¿ÉÄܻᡮ¼õÉÙ¡¯²¢Ðжȡ£ 4) Èç¹ûÊÇDMLÓï¾ä£¬ÄÇô¿ÉÄÜÊÇÓÉÓÚËøµ¼Öµģ¬ÐèҪȥ»ñÈ¡v$lockµÄÊä³öÐÅÏ¢£¬¹ØÓÚËøµÄÐÅÏ¢¿ÉÒԲο¼·µ»ØËøÐÅÏ¢½Å±¾¡£²é¿´DMLÓï¾äµÄ¶ÔÏóÉÏÊÇ·ñÓÐÏÞÖÆ»òÕß´¥·¢Æ÷£¬ÓпÉÄܲúÉú¼¶ÁªËøÎÊÌâ¡£°ÑË÷Òý½¨Á¢ÔÚÏà¹ØµÄÍâ¼üÁÐÉÏ£¬ÕâÑù»á¸Ä±äÔÚ¸¸±íÉϵÄËøÐÐΪ¡£

5) Èç¹ûÊÇDDLÓï¾ä£¬¿ÉÄÜÊÇÒ»¸öÊý¾Ý×ÖµäµÄÏà¹ØÎÊÌâ¡£Èç¹ûÊÇcreate indexÓï¾äÔò¿ÉÄÜÊÇÒ»¸ö¿Õ¼äÊÂÎñ¾ºÕùÎÊÌâ¡£µ÷ÕûI/OÊÇÒ»¸ö±È½ÏºÃµÄ·½·¨£¬·Ö²¼Ê½I/O£¬·Ö¿ªË÷ÒýºÍÊý¾ÝµÄ´æ·Å¿Õ¼ä£¬²¢ÐÐÖ´Ðж¼ÊDZȽÏÓÐÓõķ½·¨£¬»¹¿ÉÒÔÉèÖóõʼ»¯²ÎÊýpre_page_sgaΪtrue¡£ Ö¸¶¨µÄÊý¾Ý¿â¶ÔÏó?

ÔÚÖ¸¶¨¶ÔÏóÄÜÊÇ·ñÄÜ×öÈκβÙ×÷?×öÒ»¸öselect count(*)ÊÇ·ñÓÐÎÊÌâ?Èç¹ûÖ»ÊÇupdate¸Ã¶ÔÏó´æÔÚÎÊÌ⣬ÄÇô¿ÉÄÜËøÁË£¬¿ÉÒÔ´ÓÉÏÃæ3)¡¢4)ÖеĽű¾»ñÈ¡ËøµÄÐÅÏ¢¡£

ÊÇ·ñÔ¤ÏÈ·ÖÅäºÃÁË¿Õ¼ä¸øÕâ¸ö¶ÔÏó?Èç¹ûÊÇ£¬ÄÇô½«Ìá¸ßHWM²¢ÇÒµ¼ÖÂÈ«±íɨÃ裬ÒÔÖÁÓÚÈÃÊý¾Ý¿â¿´ÆðÀ´ÏñÊÇ¡°¹ÒÆð¡±ÁË¡£È«±íɨÃè×ÜÊÇ»áɨÃèHWM£¬¼´Ê¹±íÖ»´æÔÚºÜÉÙµÄÊý¾Ý¡£½â¾ö·½°¸¾ÍÊǾ¡Á¿±ÜÃâÔ¤·ÖÅäextents³ý·ÇÂíÉÏÒªÖ´ÐÐÒ»¸ö´óµÄ²¢ÐвåÈë»òÕß³£¹æµÄ×°ÔØ¡£Ç§Íò²»ÒªÔÚÖ±½Ó×°ÔØµÄʱºòÔ¤·ÖÅäextents¡£ Èç¹û¶ÔÏóÊÇÒ»¸ö±í£¬ÄÇô¿ÉÒÔ³¢ÊÔ

ANALYZE TABLE VALIDATE STRUCTURE CASCADE;

ÊÇ·ñÓб¨´í£¬Èç¹ûÓб¨´í£¬Òâζ×űí»òÕß±íÉϵÄË÷Òý´æÔÚ»µ¿éÁË¡£Èç¹ûûÓб¨´í£¬ÄÇô¼ÌÐø³¢ÊÔÏÂÃæµÄSQLÓï¾äµÃµ½ÏàÓ¦µÄµÄÐÅÏ¢£º

¿é¼¶ÉϵĿռäÐÅÏ¢£¬Ò»¸ö¸ßµÄchain out£¬Ò²¿ÉÄÜÊÇÎÊÌâµÄÒ»²¿·Ö¡£

2 / 10

Õï¶ÏOracleÊý¾Ý¿âHangingÎÊÌâ

SELECT *

FROM sys.dba dba_tables

WHERE table_name = '';

Èç¹ûÄãÓкܶàµÄ¸üкÍɾ³ý²Ù×÷£¬ÄÇôһ¸ö²»ÊʺϵÄË÷ÒýÒ²»áÔì³ÉÎÊÌ⣬ÏÂÃæµÄSQLÓï¾äÄܰïÄãµÃµ½Ïà¹ØµÄË÷ÒýÐÅÏ¢£º

SELECT i.*

FROM sys.index_stats i, sys.dba_indexes d

WHERE i.name = d.index_name

AND d.table_name = '';SELECT i.*

FROM sys.index_stats i, sys.dba_indexes d

WHERE i.name = d.index_name AND d.table_name = '';

Èç¹ûÊÇÒ»¸öÊÓͼ£¬ÄÇôÐèÒª²é¿´ÊÓͼ½¨Á¢ÔڵıíµÄÐÅÏ¢£º

SELECT text FROM sys.dba_views

WHERE view_name = '';

´ó¹æÄ£µÄ¸üвÙ×÷(ÀýÈçʹÓÃSQLLDR£¬IMPORT»òÕßÅú´¦Àí²Ù×÷)?

ÕâЩ²Ù×÷ÉϵıíÉÏ´æÔÚÓÐÄÄЩË÷Òý?ÊÇ·ñÕâЩ¸üвÙ×÷ÊÇÔÚÊý¾Ý¿â¸ß·åʱÆÚÔËÐеÄ?ÊÇ·ñÔÚAlertÎļþÖдæÔÚÓÐ\µÄ´íÎóÐÅÏ¢?Èç¹ûÓбíÃ÷ÖØ×öÈÕÖ¾Îļþ̫СÁË£¬ÐèÒªµ÷ÕûËüÃÇ¡£ÊÇ·ñ±í¿Õ¼ä±»ÖÃÓÚÔÚÈȱ¸Ä£Ê½ÏÂ?(v$backup)Èç¹û±í¿Õ¼ä´¦ÓÚÈȱ¸Ä£Ê½£¬ÄÇô²úÉúÈÕÖ¾¡±records¡±¶ø²»ÊÇ¡°vectors¡±,ÔÚÒ»¸ö´óµÄ¸üвÙ×÷ÖУ¬¾Í¿ÉÄܵ¼ÖÂÏ൱¶àµÄ¾ºÕùºÍÐÔÄÜϽµ¡£

Èç¹ûÊÇÒ»¸öSQLLDR²Ù×÷£¬ÊÇ·ñʹÓÃÁË´«Í³Â·¾¶·½Ê½?ÊÇ·ñʹÓÃÁËREPLACEÑ¡Ïî?(ÍÆ¼öʹÓÃTRUNCATEÑ¡Ïî)ÔÚSQLLDRµÄ¿ØÖÆÎļþÖÐÊÇ·ñÓÐsql functions?ÊÇ·ñ²ÉÓÃÁËreadbuffers£¬bindsize£¬rows£¬parallele·½Ê½?

Èç¹ûÊÇÒ»¸öIMPORT²Ù×÷£¬ÊÇ·ñʹÓÃÁËcommit=y£¬indexes=y£¬constraints=yÕâЩ²ÎÊý?ÊÇ·ñÔö´óÁËbuffer?

Èç¹ûÔÚupdateÆÚ¼ä£¬ÓкܶàµÄÓû§ÔÚ²Ù×÷£¬ÄÇôÈÝÒ×Ôì³É×ÊÔ´¾ºÕù£¬µ¼ÖÂϵͳ±äÂý¡£»Ø¹ö¶Î£¬redo latches, i/oºÍÊý¾Ý»º³åÇø¶¼¿ÉÄܳÉΪ¾ºÕùµÄÇøÓò¡£ÎÒÃÇ¿ÉÒÔ´ÓV$session_waitÒÔ¼°statpackÖлñÈ¡¸ü¶à¹ØÓÚ¾ßÌ徺ÕùµÄÏà¹ØÐÅÏ¢¡£

Ö¸¶¨µÄ°ü£¬´æ´¢¹ý³Ì»òÕßPRO*CÓ¦ÓÃ?

Ê×ÏÈÐèÒª²é¿´ÕâЩ°ü£¬´æ´¢¹ý³Ì»òÕßPRO*CµÄ¾ßÌåÄÚÈÝ£¬ÆäÖеÄÄĸöÓï¾äÒ»Ö±ÔÚÖ´ÐÐ?È¥µôÕâ¸öÓï¾äºóÏàÓ¦µÄ³ÌÐòÊÇ·ñÄÜÔËÐÐÕý³£?Èç¹ûÊÇ´æ´¢¹ý³Ì£¬ÄÇô¿ÉÒÔÀûÓÃDBMS_ALERT²é¿´ÄÇÀ↑ʼ¹ÒÆðÁË¡£Èç¹ûÊÇPRO*C³ÌÐò£¬ÄÇô¿ÉÒÔʹÓÃtkprofÀ´Ê¶±ð¡±parsing¡±ÊÇ·ñÊÇÆ¿¾±?Èç¹ûÊÇ£¬ÄÇô¿ÉÒÔʹÓÃÔ¤±àÒë²ÎÊý

3 / 10

Õï¶ÏOracleÊý¾Ý¿âHangingÎÊÌâ

hold_cursorºÍrelease_cursorÀ´µ÷Õû¡£Èç¹ûÊÇÒ»¸ö°ü£¬ÄÇô³¢ÊÔÊÇ·ñÄܵ¥¶ÀÖ´ÐÐÿ¸ö´æ´¢¹ý³Ì?²é¿´ÊÇ·ñ°üºÍ´æ´¢¹ý³Ì±»Ë¢Ð³öÁ˹²Ïí³Ø£¬Èç¹ûÊÇ£¬¿ÉÒÔ³¢ÊÔ°ÑÕâЩ°üºÍ´æ´¢¹ý³ÌpinÔÚ¹²Ïí³ØÖС£

SELECT *

FROM v$db_object_cache WHERE name = '';

½ö½öÊÇÔ¶³Ì·ÃÎÊ?

ÊÇ·ñ¿ÉÒÔÖ´ÐÐselect * from dual@db_link?ÊÇ·ñÄܹ»Á¬½Óµ½Ô¶³ÌµÄ»úÆ÷ÉÏÖ´Ðб¾µØµÄ²Ù×÷?ÊÇ·ñÊÇÔÚ×öÒ»¸ö·Ö²¼Ê½µÄ¸üвÙ×÷?³õʼ»¯²ÎÊýdistributed_lock_timeoutÉèÖÃÁ˶àÉÙ?ÊÇ·ñÕýÔÚˢпìÕÕ?ÊÇ·ñʹÓÃÁ˶ԳƸ´ÖÆ?³¢ÊÔ×öÒ»¸ötkprofÊä³öµÃµ½ÏàÓ¦µÄÖ´Ðмƻ®£¬Ö´Ðмƻ®ÖÐÈç¹û±êÃ÷ÊÇREMOTEµÄ£¬ÄÇô¾ÍÊÇÔ¶³ÌÖ´ÐеIJÙ×÷¡£Èç¹ûÔÚÒ»¸öÔ¶³ÌµÄ»úÆ÷ÉÏjoinÁ½ÕÅ±í£¬ÄÇôÇë³¢ÊÔÔÚ±¾µØ½ÚµãÉÏÉú³ÉjoinÊÓͼ֮ºó£¬²éѯÕâ¸öÊÓͼ¡£ÔÚsql²Ù×÷ÖÐÉèÖÃARRAYSIZE£¬¶àʹÓÃpl/sql¶ø²»Êǵ¥¶ÀµÄsqlÓï¾ä£¬Ê¹ÓÃÏÔÐÔÓαêÕâЩ¶¼¿ÉÒÔ¼õÉÙÍøÂçµÄ¸ºÔØ¡£

ʹÓõÚÈý·½Ó¦ÓÃÈí¼þµÄ²Ù×÷

ÊÇ·ñÄÜÔÚsqlplusÖÐÖØÏÖÎÊÌâ?Èç¹û²»¿ÉÒÔÖØÏÖ£¬ÄÇô¾ÍÐèÒªÁªÏµµÚÈý·½Ó¦ÓÃÈí¼þ¹©Ó¦ÉÌѰÇó°ïÖú Êý¾Ý¹Ø±Õ/Æô¶¯¹ý³ÌÖгöÏÖ¹ÒÆð

¹Ø±ÕʹÓõÄʲô²ÎÊý?Êý¾Ý¿âÊÇ·ñcrashÁË?Èç¹ûÊÇÊý¾Ý¿âÆô¶¯¹ÒÆð²¢ÇÒ·ÇÕý³£¹Ø±Õ£¬µ«ÊÇÔÚAlertÈÕÖ¾ÎļþÖÐûÓÐÈκεĴíÎó£¬ÄÇô¿ÉÄÜÖ»ÊÇÒ»¸öÕý³£µÄʵÀý»Ö¸´£¬Èç¹ûÔÚAlertÎļþÖгöÏÖÄÚ²¿´íÎó£¬ÏµÍ³´íÎó£¬ÄÇôÇë³¢ÊÔÕý³£µÄ¹Ø±ÕÊý¾Ý¿âÈ»ºóÆô¶¯¡£

ÏÂÃæÊÇÒ»¸öÕý³£ÊµÀý»Ö¸´µÄʱºòÔÚAlertÈÕÖ¾ÎļþÖÐÁгöµÄÏà¹ØÐÅÏ¢£º

Starting ORACLE instance (normal)

¡­¡­¡­¡­¡­¡­¡­

Starting up ORACLE RDBMS Version: 10.2.0.1.0. System parameters with non-default values:

¡­¡­¡­¡­¡­¡­¡­¡­

Beginning crash recovery of 1 threads

Started redo scan Completed redo scan

120 redo blocks read, 46 data blocks need recovery

Recovery of Online Redo Log: Thread 1 Group 2 Seq 143 Reading mem 0

Completed redo application Completed crash recovery at

Thread 1: logseq 143, block 4358, scn 512699

46 data blocks read, 46 data blocks written, 120 redo blocks read

SMON: enabling cache recovery SMON: enabling tx recovery

4 / 10