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