Èç¹ûÄã¼ì²âµ½¶ªÊ§»òËð»µÁ˻عö¶Î±í¿Õ¼äµÄÊý¾ÝÎļþ£¬²¢ÇÒÊý¾Ý¿âÊÇÔËÐÐ×ŵģ¬²»Òª°ÑËü down µô¡£ÔںܶàÇé¿öÏ£¬Êý¾Ý¿âÊÇÆô×ŵıȹرÕ׎â¾öÎÊÌâ¸üÈÝÒ×Щ¡£
ÕâÖÖÇé¿öµÄÁ½ÖÖ¿ÉÄܵĽâ¾ö·½·¨ :
A) ʹ¶ªÊ§µÄÄǸöÊý¾ÝÎļþ offline, ²¢´Ó±¸·ÝÖлָ´Ëü£¬ÕâÖÖÇé¿öÊÊÓÃÓÚÊý¾Ý¿âÊÇ´¦Óڹ鵵·½Ê½µÄ¡£
B) ÁíÒ»¸ö·½·¨ÊÇ offline µôËùÓеÄÄǸöÎļþËùÊô±í¿Õ¼äµÄ»Ø¹ö¶Î£¬ drop ÄǸö±í¿Õ¼ä , È»ºóµÃ½¨ËüÃÇ¡£Äã¿ÉÄܲ»µÃ²»É±µôÄÇЩʹÓÃׯعö¶ÎµÄ½ø³Ì£¬ÒÔ±ãʹËü offline.
·½·¨ II.A: ´Ó±¸·Ý»Ö¸´ÄǸöÊý¾ÝÎļþ
Õâ¸ö·½·¨Ö»ÓÐÄãµÄ¿âÊÇÔڹ鵵·½Ê½Ï²ÅÄÜʹÓá£
1 ¡¢ÍÑ»ú (offline) ÄǸö¶ªÊ§µÄÊý¾ÝÎļþ¡£
ALTER DATABASE DATAFILE
Ìáʾ£ºÆäÓÚÄ¿Ç°Êý¾Ý¿âµÄÊÂÎñÁ¿£¬Äã¿ÉÄÜÐèÒª½¨Ò»¸öÁÙʱµÄ»Ø¹ö±í¿Õ¼äºÍһЩÁÙʱµÄ»Ø¹ö¶ÎÒÔ±¸Õý³£ÒµÎñÔËÐС£
2 ¡¢´Ó±¸·ÝÖлָ´ (restore) ÄǸöÊý¾ÝÎļþ¡£
3 ¡¢Ö´ÐÐÈçÏÂÃüÁî
SELECT V1.GROUP#, MEMBER, SEQUENCE#
FROM V$LOG V1, V$LOGFILE V2
WHERE V1.GROUP# = V2.GROUP# ;
Õ⽫ÁгöËùÓеÄÁª»úµÄÖØ×öÈÕÖ¾ºÍËûÃǵÄÐòºÅ¼°Ê״θıäºÅ (first change numbers).
4 ¡¢µÃÓÃÁª»úÈÕÖ¾¼°¹éµµÈÕÖ¾»Ö¸´ÄǸöÎļþ
RECOVER DATAFILE
5 ¡¢È·ÈÏËùÓеÄÈÕÖ¾¶¼±»»Ö¸´£¬Ö»µ½ÄãÊÕµ½ "Media recovery complete" ÐÅÏ¢¡£
6 ¡¢Ê¹Õâ¸öÊý¾ÝÎļþ online
ALTER DATABASE DATAFILE
·½·¨ II.B: Öؽ¨»Ø¹ö±í¿Õ¼ä
ÕâÖÖ·½·¨²»±Ø¿¼ÂÇÊý¾Ý¿âÊÇ·ñÊǹ鵵ģʽµÄ¡£
²½ÖèÈçÏ£º
1 ¡¢ÊÔͼÍÑ»úËùÓеĶªÊ§»òËð»µÊý¾ÝÎļþËùÔڻعö±í¿Õ¼äÖÐËù°üº¬µÄ»Ø¹ö¶Î¡£
ALTER ROLLBACK SEGMENT OFFLINE;
Öظ´Ö´ÐÐÕâ¸öÃüÁîÖ±µ½Ëù°üº¬µÄ»Ø¹ö¶Î¶¼ÍÑ»ú .
2 ¡¢¼ì²é»Ø¹ö¶ÎµÄ״̬¡£
ÔÚ drop µôËüÃÇ֮ǰËüÃDZØÐèÊÇ offline ״̬µÄ¡£
SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS
WHERE TABLESPACE_NAME =
3 ¡¢É¾³ýµôËùÓÐÍÑ»úµÄ c ¡£
DROP ROLLBACK SEGMENT
4 ¡¢´¦ÀíÄÇЩ±£³Ö online ״̬µÄ»Ø¹ö¶Î
Öظ´Ö´ÐÐ 2 һϵÄÃüÁÈç¹û»Ø¹ö¶ÎÔÚÖ´ÐÐ 1 ÖÐÃüÁîÈÔ±£Å¤¿÷Ϊӯ "ONLINE" ״̬£¬Òâζ×ÅËüÖ®ÖÐÓлµÄÊÂÎñ£¬Äã¿ÉÒÔÓÃÈçϵIJéѯÀ´È·ÈÏһϣº
SELECT SEGMENT_NAME, XACTS ACTIVE_TX, V.STATUS
FROM V$ROLLSTAT V, DBA_ROLLBACK_SEGS
WHERE TABLESPACE_NAME =
Èç¹ûÕâ¸ö²éѯûÓнá¹û·µ»Ø£¬Òâζ×ÅûÓÐÊÂÎñÔÚÕâЩ»Ø¹ö¶ÎÖÐÁË¡£ÄĹûÓнá¹û·µ»Ø£¬ÄÇЩ²»ÄÜoffline µÄ»Ø¹ö¶ÎµÄ״̬ӦΪ "PENDING OFFLINE" ¡£¿ÉÒÔÓà 5 Öеķ½·¨°ÑÕâЩÊÂÎñɱµô¡£
5 ¡¢Ç¿ÖÆʹÓлÊÂÎñµÄ»Ø¹ö¶ÎÍÑ»ú
Ö´ÐÐÈçϲéѯ£¬¿´ÕâЩ "PENDING OFFLINE" µÄ»Ø¹ö¶Î°üº¬ÄÄЩÊÂÎñ¡£
SELECT S.SID, S.SERIAL#, S.USERNAME, R.NAME "ROLLBACK"
FROM V$SESSION S, V$TRANSACTION T, V$ROLLNAME R
WHERE R.NAME IN (
AND S.TADDR = T.ADDR AND T.XIDUSN = R.USN;
Óà ALTER SYSTEM KILL SESSION , ; Óï¾äɱµôÕâЩÊÂÎñ£¬Öظ´Ö´ÐÐÉÏÃæµÄ²éѯ£¬Ö±µ½Ã»ÓÐÊÂÎñ´æÔÚ£¬ÕâʱÔËÐÐһϠ2 ÖеIJéѯ£¬È·ÈÏÕâЩ»Ø¹ö¶Î¼º¾´¦ÓÚ offline ״̬ , ²¢Óà 3 ÖеÄÓï¾ä°ÑËüÃÇ drop µô¡£
6 ¡¢É¾³ýÕâ¸ö»Ø¹ö±í¿Õ¼ä¡£
DROP TABLESPACE
Èç¹ûÓï¾äÖ´ÐÐʧ°Ü£¬ÇëÓë oracle ¼¼ÊõÖ§³ÖÁªÏµ£¬·ñÔòתÏò 7
7 ¡¢Öؽ¨»Ø¹ö¶Î±í¿Õ¼ä¡£
8 ¡¢Öؽ¨»Ø¹ö¶Î£¬²¢Ê¹ËüÃÇÁª»ú (online) ¡£
ÒëÕß°´£º
»Ø¹ö¶Î±í¿Õ¼äµÄÊý¾ÝÎļþ¶ªÊ§»òËð»µÔÚʵ¼ÊÖÐÊDZȽϼ¬Êֺͳ£¼ûµÄ£¬²úÉúÕâÖÖÎÊÌâ µÄԻغܶàµÄ£¬±ÈÈç½éÖʵÄË𻵡¢ÈËΪµÄÎó²Ù×÷¡¢»úÆ÷µÄͻȻµÄ¶ÏµçµÈµÈ¡£
½¨Òéûʵ¼ù¹ýÕâÖÖ²Ù×÷µÄ oracle µÄ°®ºÃÕß¿ÉÒÔÄ£ÄâÒ»ÏÂÕâÖÖ¹ÊÕÏ£¬Êµ¼Êʵ²âһϣ¬×¢ÒâÒ»¶¨ÒªÔÚ²âÊԿ⣬ÎÒÄ£ÄâµÄ·½·¨ÈçÏ£º
1 ¡¢µ¥¶À½¨ÁËÒ»¸ö rbs ±í¿Õ¼ä£¬²¢ÔÚÕâ¸ö±í¿Õ¼ä½¨ÁËÒ»¸ö»Ø¹ö¶Î rbs_test ¡£
2 ¡¢Ö¸¶¨Ò»¸ö transaction ÓÃÕâ¸ö»Ø¹ö¶Î
sql>set transaction use rollback segment rbs_test;
sql>insert into test values (2);
sql>insert into test values(3);
3 ¡¢Áí¿ªÒ»¸ö telnet ´°¿Ú telnet ÖÁÖ÷»ú£¬Ö´ÐÐÈçÏÂÃüÁî :
sqlplus /nolog
sql>conn / as sysdba
sql>shutdown abort
4 ¡¢°ÑмӵÄÄǸö»Ø¹ö¶Î±í¿Õ¼äµÄÊý¾ÝÎļþ¸ü¸öÃû¡£