¡¡¡¡I. Êý¾Ý¿âÊÇ´¦ÓڹرÕ״̬µÄ¡£
¡¡¡¡ÊÔͼ´ò¿ªÊý¾Ý¿âʱ±¨ORA-1157ºÍORA-1110´íÎó£¬ÕâʱµÄ½â¾ö·½·¨È¡ÓÚÊý¾Ý¿âÊÇ·ñÊÇÕý³£shutdownµÄ(ʹÓÃnormal»òimmediateÑ¡Ïî¡£
¡¡¡¡I.A.Êý¾Ý¿âÊÇÕý³£shutdownµÄ
¡¡¡¡Èç¹ûÊý¾ÝÊý¾Ý¿âÊÇÕý³£shutdownµÄ£¬×î¼òµ¥µÄ½â¾ö·½·¨ÊÇÒÔoffline dropÑ¡Ïîɾ³ý¶ªÊ§»òË𻵵ÄÊý¾ÝÎļþ£¬ÒÔrestricetedģʽ´ò¸öÊý¾Ý¿â£¬É¾³ý²¢Öؽ¨Õâ¸öÊý¾ÝÎļþËùÊôµÄÄǸö»Ø¹ö±í¿Õ¼ä¡£Èç¹ûÊý¾Ý¿âÊÇÒÔ shutdown abort»ò×Ô¼º±ÀÀ£µôµÄÔò²»Òª×ñÑÕâ¸ö¹ý³Ì¡£
¡¡¡¡²½ÖèÈçÏ£º
¡¡¡¡1¡¢È·ÈÏÊý¾Ý¿âÊÇÕý³£shutdownµÄ¡£¿ÉÒÔ¼ì²éalter.logÕâ¸öÎļþ£¬¶¨Î»µ½×îºó¼¸Ðп´ÊÇ·ñ¿ÉÒÔ¿´µ½ÈçϵÄÐÅÏ¢£º
¡¡¡¡"alter database dismount
¡¡¡¡Completed: alter database dismount"
¡¡¡¡Õ⵱ȻҲ°üÀ¨ÒÔÕý³£·½Ê½shutdown,½ÓÈ»ÊÔͼÆô¶¯Êý¾Ý¿âȷʧ°ÜµÄ×´¿ö¡£Èç¹û×î½üÒ»´ÎÄãÊÇÒÔshutdown abort·½Ê½¹Ø±ÕÊý¾Ý¿âµÄ»òÊý¾Ý¿âÊÇ×Ô¼ºcrashedµôµÄ£¬ÄãÓ¦ÓÃʹÓÃÏÂÃæµÄI.BµÄ·½·¨¡£
¡¡¡¡2¡¢ÔÚinit£¼sid>.oraÖаÑÊôÓÚ¶ªÊ§Êý¾ÝÎļþµÄ»Ø¹ö¶Î´ÓROLLBACK_SEGMENTS²ÎÊýÖÐÈ¥µô¡£Èç¹ûÄã²»ÄÜÈ·ÐÅÊÇÄĸö»Ø¹ö¶Î£¬¿ÉÒÔ¼òµ¥µÄ°ÑROLLBACK_SEGMENTSÕâ¸ö²ÎÊý×¢Ê͵ô¡£
¡¡¡¡3¡¢ÒÔrestrictedģʽmountÊý¾Ý¿â
¡¡¡¡STARTUP RESTRICT MOUNT;
¡¡¡¡4¡¢Offline drop¶ªÊ§»òË𻵵ÄÄǸöÊý¾ÝÎļþ¡£
ALTER DATABASE DATAFILE '£¼full_path_file_name>' OFFLINE DROP;
¡¡¡¡5¡¢´ò¿ªÊý¾Ý¿â
¡¡¡¡ALTER DATABASE OPEN£»
¡¡¡¡Èç¹û·µ»Ø"Statement processed"ÕâÌõÐÅÏ¢£¬×ªµ½µÚ7²½.
¡¡¡¡Èç¹ûµÃµ½ORA-604,ORA-376,ºÍORA-1110´íÎó£¬×ªµ½µÚ6²½¡£
¡¡¡¡6¡¢ÒòΪ´ò¿ªÊý¾Ý¿âʧ°Ü£¬shutdownµôÊý¾Ý¿â²¢ÇÒ±à¼int£¼SID>.oraÕâ¸öÎļþ¡£×¢Ê͵ôROLLBACK_SEGMENTSÕâ¸ö²ÎÊý£¬²¢ÇÒÔÚinit£¼SID>.oraÎļþÖмÓÈëÈçÏÂÒ»ÐУº
¡¡¡¡_corrupted_rollback_segments = (£¼rollback1>,...,£¼rollbackN> )
¡¡¡¡ÐèҪעÒâµÄÊÇÕâ¸ö²ÎÊýÖ»ÄÜÔÚÖ¸¶¨µÄÇé¿öÏ»òÔÚoracleµÄÈ«Çò³ÖÊõÖ§³ÖµÄÖ¸µ¼Ï²ÅӦʹÓã¬È»ºóÒÔrestrictedģʽ´ò¿ªÊý¾Ý¿â£º
¡¡¡¡STARTUP RESTRICT
¡¡¡¡7¡¢É¾³ýµôÄǸöÎļþËùÊôµÄ»Ø¹ö¶Î±í¿Õ¼ä¡£
DROP TABLESPACE £¼tablespace name> INCLUDING CONTENTS;
¡¡¡¡8¡¢Öؽ¨»Ø¹ö¶Î±í¿Õ¼ä¼°»Ø¹ö¶Î£¬´´½¨ÍêºóʹËüÃÇonline.
¡¡¡¡9¡¢Ê¹Êý¾Ý¿âËùÓÐÓû§¶¼¿ÉÓá£
ALTER SYSTEM DISABLE RESTRICTED SESSION;
¡¡¡¡10¡¢ÔÚinit£¼SID>.oraÖаÑÄãÖØд´½¨µÄ»Ø¹ö¶ÎÔÙÒ»´Î°üÀ¨½øÀ´£¬Èç¹ûÄãʹÓÃÁ˵Ú6²½ÔòÒƳýµôCORRUPTED_ROLLBACK_SEGMENTSÕâ¸ö²ÎÊý¡£
¡¡¡¡I.B.Êý¾Ý¿â²»ÊÇÕý³£shutdownµÄ
¡¡¡¡ÕâÖÖÇé¿ö£¬Êý¾Ý¿â×î½üÒ»´ÎÊÇÓÃshutdown abort»òcrashedµô¹Ø±Õ£¬»Ø¹ö¶ÎÖм¸ºõÒ»¶¨°üº¬×ŻµÄÊÂÎñ¡£Òò´Ë£¬»µµÄÄǸöÊý¾ÝÎļþ²»ÄÜÍÑ»ú(offline)»òÊÇdropµô£¬Äã±ØÐè´Ó±¸·Ý»Ö¸´Õâ¸öÎļþ¡£Èç¹ûÊý¾ÝΪÊÇ´¦Óڷǹ鵵ģʽµÄ£¬Ö»ÓÐ×î½üµÄһЩÊÂÎñÈÕÖ¾»¹Ã»Óб»ÖØдµôµÄÇé¿öÄã²ÅÄܳɹ¦»Ö¸´Õâ¸öÎļþ¡£Èç¹ûÕâ¸öÎļþµÄ±¸·ÝÒ²ÊÇÎÞЧµÄ£¬ÁªÏµÒ»ÏÂoracleµÄ¼¼ÊõÖ§³Ö°É¡£
¡¡¡¡²½ÖèÈçÏ£º
¡¡¡¡1¡¢´Ó±¸·ÝÖлָ´¶ªÊ§µÄÄǸöÊý¾ÝÎļþ.
¡¡¡¡2¡¢mount ÉÏÊý¾Ý¿â
¡¡¡¡3¡¢Ö´ÐÐÈçϵIJéѯ£º
SELECT FILE#,NAME,STATUS FROM V$DATAFILE;
¡¡¡¡Èç¹ûÊý¾ÝÎļþµÄ״̬ÊÇofflineµÄ£¬Äã±ØÐèÏÈ°ÑËüÁª»úÁË£º
ALTER DATABASE DATAFILE '£¼full_path_file_name>' ONLINE;
¡¡¡¡4¡¢Ö´ÐÐÈçϵIJéѯ£º
SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE# FROM V$LOG V1, V$LOGFILE V2 WHERE V1.GROUP# = V2.GROUP# ;
¡¡¡¡Õ⽫ÁгöËùÓеÄÁª»úµÄÖØ×öÈÕÖ¾ºÍËûÃǵÄÐòºÅ¼°Ê״θıäºÅ(first change numbers).
¡¡¡¡5¡¢Èç¹ûÕâ¸öÊý¾Ý¿âÊǷǹ鵵ģʽµÄ£¬Ö´ÐÐÈçϵIJéѯ£º
SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;
¡¡¡¡Èç¹ûÆäÖеÄCHANG#±È4ÖеÄ×îСµÄÄǸöFIRST_CHANGE#´óµÄ»°£¬ÓÃÁª»úÈÕÖ¾¾Í¿ÉÒÔÍê³É»Ö¸´¡£
¡¡¡¡6¡¢Èç¹ûCHANG#±È4ÖеÄ×îСµÄÄǸöFIRST_CHANGE#С£¬ÔòÊý¾Ý¿âÊDz»Äָܻ´µÄ£¬¿ÉÒÔÁªÏµÒ»ÏÂoracleµÄ¼¼ÊõÖ§³Ö¡£
¡¡¡¡ÒëÕß²åÈ룺Èç¹ûÄãÕæÊǷǹ鵵·½Ê½ÇÒÕâ¸öÎļþµÄ±¸·ÝÒ²ÊÇÎÞЧµÄ£¬Èç¹ûÄãÈÏΪ¿ÉÒÔ¶ªÊ§»Ø¹ö¶ÎÖеÄÄÇÊÂÎñ£¬Äã¿ÉÒÔÓÃI.AÖдӵÚ6²½µÄ·½·¨£¬Õâʱ¿ÉÒÔ´ò¿ªÊý¾Ý¿â¡£