Ò»·ÖÖÓ²éÒ»¸ö°¸Àý´øÄã¿´¿´OracleÊý¾Ý¿âµ½µ×ÓжàÅ£±Æ
ÐÔÄÜÄÑÌâ
ÎÊÌâÀ´ÁË
µç»°ÏìÁË£¬ÊÇһλ֤ȯ¿Í»§ DBA µÄÀ´µç£¬¿´À´£¬ÎÊÌâû¹ýÁ½Ì죬ÓÖ³öÏÖÁË¡£ ½ÓÆðµç»°£¬¹û²»ÆäÈ»¡£
¡°Ð¡y,Ç°ÌìÄǸöÎÊÌâÓÖÖØÏÖÁË¡£ÖØÆôºó»Ö¸´Õý³££¬Õâ´Î×¥µ½ÁËhangAnalyze,²»¹ýÁìµ¼ÔÚÉíºóÒ»Ö±´ß£¬ËùÒÔûÀ´µÃ¼°×¥È¡ systemstate dump ¾ÍÖØÆôÁË¡£Ä㾡¿ì°ïæ·ÖÎöÏ°ɣ¬hanganalyze µÄ trace ÎļþÒѾתµ½ÄãÓÊÏäÁË¡£¡±
¾ÍÔÚ 2 ÌìÇ°£¬¸Ã¿Í»§ÕÒµ½Ð¡ y, ËûÃÇÓÐÒ»ÌױȽÏÖØÒªµÄϵͳ³öÏÖÁËÊý¾Ý¿âÎÞ·¨µÇ½µÄÇé¿ö£¬µ¼ÖÂÒµÎñÖжϣ¬ÖØÆôºóÒµÎñ»Ö¸´£¬µ«ÔÒòδÃ÷£¬¸ãµÄËûÃÇѹÁ¦ºÜ´ó¡£
¿ÉϧµÄÊÇ£¬ËûÃÇÊÇʺóÕÒ¹ýÀ´£¬ÓÉÓÚ¿Í»§ÏÖ³¡±£»¤Òâʶ²»×㣬×îºóÒ²Ö»ÄÜÊÇÇɸ¾ÄÑΪÎÞÃ×Ö®´¶ÁË¡ ×ܵÄÀ´Ëµ£¬Ð¡ y »¹ËãÊDZȽÏÊìϤ֤ȯÐÐÒµµÄ¡£
±Ï¾¹£¬Ð¡ y ¶àÄêÀ´Ò»Ö±ÔÚÒøÐС¢Ö¤È¯¡¢º½¿ÕµÈ¿Í»§ÌṩÊý¾Ý¿âר¼ÒÖ§³Ö·þÎñ£¬ÕâÆäÖоͰüÀ¨Á˱±¾©ÅÅÃûÇ° 6 µÄËùÓÐ֤ȯ¹«Ë¾¡£
¼ò¶øÑÔÖ®£¬Ö¤È¯ÐÐÒµµÄÒªÇó¾ÍÊÇ¿ìËÙ»Ö¸´£¬¿ìËÙ»Ö¸´ÒµÎñ´óÓÚÒ»ÇС£
ÔÒòºÜ¼òµ¥£¬¹É¼Û˲ϢÍò±ä£¬×÷Ϊ¹ÉÃñ£¬Èç¹ûµ±Ê±ÎÞ·¨³öÊÛ»òÕß¹ºÂò¹ÉƱ£¬ÉõÖÁ¿ÉÄÜÒý·¢¹Ù˾¡£ËùÒÔ£¬Ö¤È¯ºËÐĽ»Ò×ϵͳÈç¹ûÖжÏʱ¼ä³¬¹ý 5 ·ÖÖÓ£¬Ôò¿ÉÒÔËãµÃÉÏÊÇÑÏÖعÊÕÏÁË£¬Ò»µ©±»Í¶Ëߣ¬Ôò¿ÉÄܻᱻ֤¼à»áͨ±¨£¬½ìʱҵÎñ¿ÉÄܱ»½µ¼¶£¬Ó°Ï쵽֤ȯ¹«Ë¾µÄ¾ÓªºÍÊÕÒæ¡£
½áºÏÕâ¸öÌص㣬С y Ϊ¿Í»§Öƶ¨ÁËÓ¦¼±Ô¤°¸£¬¿´À´ÊÕ¼¯ systemstate dump ÊÇÀ´²»¼°ÁË£¬Ö»ÄÜÏÈÊÕ¼¯ hangAnalyze, ʱ¼äÀ´µÃ¼°µÄ»°Ôò¿ÉÒÔ¼ÌÐøÊÕ¼¯ systemstate dump¡£ÊÕ¼¯ hangAnalyze µÄÃüÁîºÜ¼òµ¥£¬ÕÕÇþÍÊÇÁË£¬Ã»Ê²Ã´¼¼Êõº¬Á¿¡£
$sqlplus ¨Cprelim ¡°/as sysdba¡± SQL>oradebug setmypid SQL>oradebug hanganalyze 3 .. ´Ë´¦µÈÉÏÒ»»á ..
SQL>oradebug hanganalyze 3 SQL>oradebug tracefile_name
¿ªÆô·ÖÎöÖ®ÂÃ
1¡¢ hanganalyze ³õÌåÑé
´ò¿ª¸½¼þ£¬ÄÚÈÝÈçÏ£¬Öм䲿·ÖÌ«³¤ÁË£¬ËùÒÔÓÃÊ¡ÂԺŴúÌæ¡£
ÅóÓÑÃÇ£¬²»·Á×Ô¼ºÍ£ÏÂÀ´£¬ÄÍÐÄÔĶÁһϣ¬¿´¿´ÊÇ·ñ¿ÉÒÔ¿´µÄÃ÷°×¡£
ºÜ¿ì£¬¸ù¾ÝÕâ¸ö trace, С y ÔÚÒ»·ÖÖÓÕÒµ½ÁËÎÊÌâÔÒò¡£
¶øÕâÖÖÎÊÌ⣬ÔÚÆäËüÊý¾Ý¿âÖÐÊôÓÚºÜÄѲéÇåµÄÎÊÌâ¡£
ËùÒÔ²»µÃ²»Ëµ£¬Oracle µÄ hangAnalyze ÊÇÈç´ËµÄÅ£±Æ¡
ÎÊÌâÔÒò¾ÍÔÚºóÃ棬ʲôʱºòÍùÏ·£¬ÓÉÄã¾ö¶¨¡
2¡¢ ÈçºÎ¿ªÊ¼
ÏÈ¿´ trace µÄµÚÒ»²¿·Ö£¬ÈçÏÂËùʾ£º
ÉÏÃæµÄÐÅϢΪ³öÏÖÒ쳣ʱÊý¾Ý¿âµÄÕûÌå״̬ժҪ£¬ÕâЩÐÅÏ¢±íʾ£º
1£© ¹² 76 ¸ö»á»°±» sid=494 µÄ»á»°×èÈû£¬ÔÒòÊÇ sid=494 µÄ»á»°±¾ÉíÉêÇë latch: shared pool ×ÊԴʱ±»ÆäËû»á»°×èÈû¡£
2£© ¹² 22 ¸ö»á»°±» sid=496 µÄ»á»°×èÈû£¬ÔÒòÊÇ sid=496 µÄ»á»°±¾ÉíÉêÇë latch: shared pool ×ÊԴʱ±»ÆäËû»á»°×èÈû¡£
3£© ¹²11¸ö»á»°±»sid=598µÄ»á»°×èÈû£¬¡±No Wait¡±±íʾsid=598µÄ»á»°±¾Éí²¢Î´µÈ´ýÈκÎ×ÊÔ´£¬¼´¸Ã½ø³ÌÔÚʹÓà CPU¡£
4£© ¹² 13 ¸ö»á»°±» sid=518 µÄ»á»°×èÈû£¬ÔÒòÊÇ sid=518 µÄ»á»°±¾ÉíÉêÇë latch: shared pool ×ÊԴʱ±»ÆäËû»á»°×èÈû¡£
ÓÃÒ»ÕÅͼÀ´±íʾ£¬ÈçÏÂËùʾ£º
3¡¢ÕÒµ½×èÈûµÄÔ´Í·
»á»° 494¡¢496¡¢598¡¢518 Ö®¼ä¿ÉÄÜÏ໥¶ÀÁ¢£¬Ò²¿ÉÄÜ´æÔÚ»¥Ïà×èÈûµÄ¹Øϵ¡£ С y ´ø×Å´ó¼Ò¼ÌÐøÍùÏÂÊáÀí¡£
´Óץȡµ½µÄ hanganalyze ÐÅϢժȡÉÏÊö»á»°ÐÅÏ¢µÄϸ½Ú£¬ÈçÏÂËùʾ :
ÔÚ¸ÃÐÅÏ¢ÖУ¬¹Ø×¢ 4 ÁеÄÄÚÈݼ´¿É£¬ÆäÖУº
µÚ 1 ÁÐΪ oracle ¸ø trace ÖÐÿһ¸ö»á»°ËùÈ¡µÄΨһÂß¼±êʶ£»µÚ 3 Áбíʾ»á»° sid£» µÚ 6 Áбíʾ²Ù×÷ϵͳ½ø³ÌºÅ£»
µÚ 10 Áбíʾ×èÈû¸Ã»á»°µÄΨһÂß¼±êʶ£¬Îª¿Õʱ±íʾÎÞ×èÈû¡£
Òò´Ë£¬´ÓÉÏÊöÐÅÏ¢¿ÉÖª£º
1)sid=494 µÄ»á»°±»Î¨Ò»Âß¼±êʶΪ 597 µÄ»á»°×èÈû 2)sid=496 µÄ»á»°±»Î¨Ò»Âß¼±êʶΪ 597 µÄ»á»°×èÈû 3)sid=518 µÄ»á»°±»Î¨Ò»Âß¼±êʶΪ 597 µÄ»á»°×èÈû¶øΨһÂß¼±êʶΪ 597 µÄ»á»°ÐÅϢΪ :
¼´Î¨Ò»Âß¼±êʶΪ 597 µÄ»á»°µÄ sid=598, ²Ù×÷ϵͳ½ø³ÌºÅ 553382£¬¸ÃÐÐµÄµÚ 10 ÁÐΪ¿Õ£¬¼´ÔÙҲûÓÐÆäËû»á»°×èÈû sid=598 µÄ»á»°¡£
Ò²¾ÍÊÇ˵£¬sid=598 µÄ»á»°¾ÍÊÇÊý¾Ý¿âÒ쳣ʱµÄ»á»°»ñÈ¡×ÊԴʱ×èÈûµÄÔ´Í·¡£ÈçÏÂͼËùʾ£º
4¡¢ ÏÝÈ뽩¾Ö£¿£¨×èÈûµÄÔ´Í·Ö»ÊÇÒ»¸öÊý×Ö£¡£©
Ç°ÃæµÄ·ÖÎö£¬ÒѾÕÒµ½ÁËÔ´Í·ÊÇ SID=598 µÄ»á»°¡£
ÄÇô sid=598 µÄ»á»°ÊÇʲôÓû§Ê²Ã´³ÌÐòʲô»úÆ÷·¢Æð£¬ÔÚÖ´ÐÐʲô SQL£¬½ø³ÌµÄ callstack ÊÇʲôÄØ£¿ËùÓÐÕâЩÐÅÏ¢£¬ÎÒÃǶ¼¿ÉÒÔÔÚ systemstate dump ÖпÉÒÔÕÒµ½£¬µ«¿ÉϧµÄÊÇ£¬¿Í»§ËäÈ»ÓÉÓÚʱ¼ä¹ØϵûÓÐÀ´µÃ¼°×¥È¡ systemstate dump£¬Òò´ËÎÞ·¨½øÒ»²½»ñÈ¡¸Ã½ø³ÌµÄÐÅÏ¢¡£
±¯¾çÁË£¡ÄѵÀÒªÔÙÒ»´ÎÏÝÈëÇɸ¾ÄÑΪÎÞÃ×Ö®´¶µÄÞÏÞξ³µØô£¿Èç¹ûÊÇÄ㣬Äã»áÔõô°ì£¬´Ë´¦²»·Á˼¿¼¼¸·ÖÖÓ¡
5¡¢ ÕÒµ½´ò¿ªÌìÌôóÃŵÄÔ¿³×
´ò¿ªÌìÌÃÖ®ÃŵÄÔ¿³×Óкܶà°Ñ£¬µ«ÉϵÛ×ÜÊÇ»á¾ìÁµ°ÑÎÕϸ½ÚºÍÓÃÐĵÄÈË¡£ÄѵÀÒòΪȱÉÙ systemstatedump ¾Í·ÅÆúÁËô£¿ÄÇ¿Í»§Ôõô°ì£¿
ÕâÀï½éÉÜÆäÖÐÒ»°ÑÔ¿³×£¬µ±È»»¹ÓÐÆäËûÔ¿³×£¬Èç¹ûÄãÒ²ÕÒµ½ÁËÆäËûÔ¿³×£¬²»·ÁÁôÑÔ¸æËßС y¡£¼ÌÐø¿´×èÈûÔ´Í·µÄÏà¹ØÐÅÏ¢¡£
SID=598 µÄ»á»°£¬ÔÚ²Ù×÷ϵͳÉϵĽø³ÌºÅÊÇ 553382¡£ Ò»¸ö½ø³ÌҪôÊÇǰ̨½ø³Ì£¨·þÎñ½ø³Ì£©£¬ÒªÃ´ÊǺǫ́½ø³Ì¡£
Èç¹ûÊǺǫ́½ø³Ì£¬ÔòÎÒÃÇ¿ÉÒÔÔÚ alert ÈÕÖ¾ÖУ¬ÕÒµ½²Ù×÷ϵͳÉϽø³ÌºÅÊÇ 553382 ¶ÔÓ¦µÄºǫ́½ø³Ìµ½µ×ÊÇʲô£¡
´ò¿ª alert ÈÕÖ¾£¬¹ûÈ»²»³öËùÁÏ£¬Ð×ÊÖÕæµÄÊÇËû ÈçÏÂËùʾ :
Òò´Ë£¬Ôì³ÉÊý¾Ý¿âÒì³£µÄÔ´Í·¾ÍÊÇÊý¾Ý¿âºǫ́½ø³Ì mman ½ø³Ì !
¼´¸ºÔð ORACLE Äڴ涯̬µ÷ÕûµÄºǫ́½ø³Ì£¡
¸Ã ½ø ³Ì ÔÚ Êý ¾Ý ¿â ÖÐ
¸ºÔð SGA ÄÚ´æÔÚ¸÷¸ö×é¼þ±ÈÈç buffer cache ºÍ shared pool Ö®¼äµÄ¶¯Ì¬µ÷Õû¡£Í¨Ë×µÄÀ´Ëµ£¬ÎÒÃÇÔÚÅäÖÃÊý¾Ý¿âËùʹÓõÄÏà¹ØÄÚ´æ²ÎÊýʱ£¬ÔÚ 10g °æ±¾Ö®Ç°£¬ÐèÒªÊÖ¹¤ÉèÖà buffer cache ºÍ shared pool µÄ´óС£¬µ«ÊÇ 10g °æ±¾ºó£¬ÎªÁ˼ò»¯¹ÜÀí£¬¿ÉÒÔÖ»ÉèÖà buffer cache ºÍ shared pool ¼ÓÆðÀ´µÄ×ÜÄÚ´æ´óС£¬²»ÐèÒª¹Ø×¢µ¥¶ÀΪ buffer
cacheºÍshared poolÉèÖöà´óµÄÄڴ棬Êý¾Ý¿âºǫ́½ø³Ìmman½ø³Ì¿ÉÒÔÔÚÁ½ÕßÖ®¼ä¸ù¾ÝÐèÒª¶¯Ì¬µ÷Õû¡£
ºÜ¶à¿Í»§¶¼Ä¬ÈϵØÑ¡ÔñÁËÕâÑùÒ»ÖÖÖÇÄܵ«²¢²»ÍêÃÀµÄÄÚ´æ¹ÜÀí·½Ê½¡£ ÄÇôÕû¸öϵͳÖУ¬ÊÇ·ñÓгöÏÖ SGA Äڴ涯̬µ÷ÕûµÄÇé¿öÄØ ?
ժȡÎÊÌâµ±ÌìÆäËûʱ¶Î£¬ÀýÈç 15 µãµ½ 16 µãÖ®¼äµÄ AWR ±¨¸æ£¬¹Û²ì¸ÃϵͳµÄÇé¿ö¡£ £¨Êý¾Ý¿âÖØÆôºóÎÞ·¨¹Û²ìµ½ÎÊÌâʱ¶Î v$sga_resize_ops ÁË£©
´Ó ÖÐ ¿É ÒÔ ¿´ µ½£¬shared pool ÔÚ 15 µãʱµÄ´óСΪ 3584M£¬µ½ÁË 16 µã¾ÍÒѾ±»¶¯Ì¬µ÷Õûµ½ÁË 1760M, ÕâЩ¾ÍÊÇÓÉ
ºǫ́ mman ½ø³ÌÀ´Íê³ÉµÄ¡£Èç´Ë´ó·ù¶ÈµÄϽµ£¬ËµÃ÷ÆÚ¼ä¾Àú¹ý¶à´ÎµÄµ÷Õû£¬²»¶ÏµÄ¶Ô shared pool ½ø³Ì shrink ²Ù×÷¡£
ÄÇôµ½µ×ÊÇ sharedpool ÖеÄÄIJ¿·ÖÄڴ汻Ųµ½ÁË buffercache ÄØ£¿´Ó AWR ±¨¸æµÄ SGA breakdown difference ¿ÉÒÔ¿´µ½£º SQL AREA ´Ó 2088M ½µÖÁ 370M£¬±»Ë¢³öÁË 82% £¡
SQLAREA ´óÁ¿µÄÄڴ汻Ų×ߣ¬SQL Óï¾ä ( º¬µÇ½µÄµÝ¹é SQL) ±ØÈ»±»´óÁ¿Ë¢³ö£¬ºóÐøÐèÒªÓ²½â Îö£¨hanganalyze ¿É ÒÔ ¿´ µ½ ÓÐ latch:shared pool£©¡£
6¡¢½øÒ»²½·ÖÎöÔÒò
¸ù¾ÝÉÏÊö·ÖÎö£¬ÓÐÒ»¸öÎÊÌâÈÔÈ»ÐèҪȷÈÏ : ÄǾÍÊÇΪʲô SGA ¶¯Ì¬µ÷Õûµ¼ÖÂÈç´ËÑÏÖصÄÎÊÌ⣿
ÕâÃ÷ÏÔÓë ORACLE µÄ BUG Ïà¹Ø¡£
µ±·¢ÏÖÕû¸öϵͳ buffer cache ÃüÖÐÂʵ͡¢ÎïÀí¶Á¸ßµÄʱºò£¬buffer cache ÐèÒª´Ó shared pool Öнè×ß²¿·ÖÄڴ棨ÓÉ MMAN ½ø³ÌÀ´¸ºÔðÍê³É¶¯Ì¬µ÷Õû£©¡£
µ±ÐèÒª½è×ßµÄ granula ÊôÓÚ shared pool µÄ SQL AREA, µ«ÊÇÓÉÓÚ SQL Óï¾ä³¤Ê±¼äÔÚÖ´ÐУ¬
Ò»·ÖÖÓ²éÒ»¸ö°¸Àý´øÄã¿´¿´OracleÊý¾Ý¿âµ½µ×ÓжàÅ£±ÆÐÔÄÜÄÑÌâ



