»Ø¹ö¶Î¹ÜÀíÒ»Ö±ÊÇORACLEÊý¾Ý¿â¹ÜÀíµÄÒ»¸öÄÑÌ⣬±¾ÎÄͨ¹ýʵÀý½éÉÜORACLE»Ø¹ö¶ÎµÄ¸ÅÄÓ÷¨ºÍ¹æ»®¼°ÎÊÌâµÄ½â¾ö¡£
»Ø¹ö¶Î¸ÅÊö
»Ø¹ö¶ÎÓÃÓÚ´æ·ÅÊý¾ÝÐÞ¸Ä֮ǰµÄÖµ£¨°üÀ¨Êý¾ÝÐÞ¸Ä֮ǰµÄλÖúÍÖµ£©¡£»Ø¹ö¶ÎµÄÍ·²¿°üº¬ÕýÔÚʹÓõĸûعö¶ÎÊÂÎñµÄÐÅÏ¢¡£Ò»¸öÊÂÎñÖ»ÄÜʹÓÃÒ»¸ö»Ø¹ö¶ÎÀ´´æ·ÅËüµÄ»Ø¹öÐÅÏ¢£¬¶øÒ»¸ö»Ø¹ö¶Î¿ÉÒÔ´æ·Å¶à¸öÊÂÎñµÄ»Ø¹öÐÅÏ¢¡£
»Ø¹ö¶ÎµÄ×÷ÓÃ
ÊÂÎñ»Ø¹ö£ºµ±ÊÂÎñÐ޸ıíÖÐÊý¾ÝµÄʱºò£¬¸ÃÊý¾ÝÐÞ¸ÄÇ°µÄÖµ£¨¼´Ç°Ó°Ïñ£©»á´æ·ÅÔڻعö¶ÎÖУ¬µ±Óû§»Ø¹öÊÂÎñ£¨ROLLBACK£©Ê±£¬ORACLE½«»áÀûÓûعö¶ÎÖеÄÊý¾ÝÇ°Ó°ÏñÀ´½«Ð޸ĵÄÊý¾Ý»Ö¸´µ½ÔÀ´µÄÖµ¡£
ÊÂÎñ»Ö¸´£ºµ±ÊÂÎñÕýÔÚ´¦ÀíµÄʱºò£¬Àý³Ìʧ°Ü£¬»Ø¹ö¶ÎµÄÐÅÏ¢±£´æÔÚÖØ×öÈÕÖ¾ÎļþÖУ¬ORACLE½«ÔÚÏ´δò¿ªÊý¾Ý¿âʱÀûÓûعöÀ´»Ö¸´Î´Ìá½»µÄÊý¾Ý¡£
¶ÁÒ»ÖÂÐÔ£ºµ±Ò»¸ö»á»°ÕýÔÚÐÞ¸ÄÊý¾Ýʱ£¬ÆäËûµÄ»á»°½«¿´²»µ½¸Ã»á»°Î´Ìá½»µÄÐ޸ġ£¶øÇÒ£¬µ±Ò»¸öÓï¾äÕýÔÚÖ´ÐÐʱ£¬¸ÃÓï¾ä½«¿´²»µ½´Ó¸ÃÓï¾ä¿ªÊ¼Ö´ÐкóµÄδÌá½»µÄÐ޸ģ¨Óï¾ä¼¶¶ÁÒ»ÖÂÐÔ£©¡£µ±ORACLEÖ´ÐÐSELECTÓï¾äʱ£¬ORACLEÒÀÕÕµ±Ç°µÄϵͳ¸Ä±äºÅ£¨SYSTEM CHANGE NUMBER-SCN£©À´±£Ö¤ÈκÎÇ°ÓÚµ±Ç°SCNµÄδÌá½»µÄ¸Ä±ä²»±»¸ÃÓï¾ä´¦Àí¡£¿ÉÒÔÏëÏ󣺵±Ò»¸ö³¤Ê±¼äµÄ²éѯÕýÔÚÖ´ÐÐʱ£¬ÈôÆäËû»á»°¸Ä±äÁ˸òéѯҪ²éѯµÄij¸öÊý¾Ý¿é£¬ORACLE½«ÀûÓûعö¶ÎµÄÊý¾ÝÇ°Ó°ÏñÀ´¹¹ÔìÒ»¸ö¶ÁÒ»ÖÂÐÔÊÓͼ¡£
ÊÂÎñ¼¶µÄ¶ÁÒ»ÖÂÐÔ
ORACLEÒ»°ãÌṩSQLÓï¾ä¼¶£¨SQL STATEMENT LEVEL£©µÄ¶ÁÒ»ÖÂÐÔ£¬¿ÉÒÔÓÃÒÔÏÂÓï¾äÀ´ÊµÏÖÊÂÎñ¼¶µÄ¶ÁÒ»ÖÂÐÔ¡£
SET TRANSACTION READ ONLY£»
»ò£º
SET TANNSACTION SERIALIZABLE£»
ÒÔÉÏÁ½¸öÓï¾ä¶¼½«ÔÚÊÂÎñ¿ªÊ¼ºóÌṩ¶ÁÒ»ÖÂÐÔ¡£ÐèҪעÒâµÄÊÇ£¬Ê¹Óõڶþ¸öÓï¾ä¶ÔÊý¾Ý¿âµÄ²¢·¢ÐÔºÍÐÔÄܽ«´øÀ´Ó°Ïì¡£
»Ø¹ö¶ÎµÄÖÖÀà
ϵͳ»Ø¹ö¶Î£ºµ±Êý¾Ý¿â´´½¨ºó£¬½«×Ô¶¯´´½¨Ò»¸öϵͳ»Ø¹ö¶Î£¬¸Ã»Ø¹ö¶ÎÖ»ÓÃÓÚ´æ·Åϵͳ±í¿Õ¼äÖжÔÏóµÄÇ°Ó°Ïñ¡£
·Çϵͳ»Ø¹ö¶Î£ºÓµÓжà¸ö±í¿Õ¼äµÄÊý¾Ý¿âÖÁÉÙÓ¦¸ÃÓÐÒ»¸ö·Çϵͳ»Ø¹ö¶Î£¬ÓÃÓÚ´æ·Å·Çϵͳ±í¿Õ¼äÖжÔÏóµÄÊý¾ÝÇ°Ó°Ïñ¡£·Çϵͳ»Ø¹ö¶ÎÓÖ·ÖΪ˽Óлعö¶ÎºÍ¹«Óлعö¶Î£¬Ë½Óлعö¶ÎÓ¦ÔÚ²ÎÊýÎļþµÄROLLBACK SEGMENTS²ÎÊýÖÐÁгö£¬ÒÔ±ãÀý³ÌÆô¶¯Ê±×Ô¶¯Ê¹ÆäÔÚÏߣ¨ONLINE£©¡£¹«Óлعö¶ÎÒ»°ãÔÚOPS£¨ORACLE²¢ÐзþÎñÆ÷£©ÖгöÏÖ£¬½«ÔÚÀý³ÌÆô¶¯Ê±×Ô¶¯ÔÚÏß¡£
DEFERED»Ø¹ö¶Î£º¸Ã»Ø¹ö¶ÎÔÚ±í¿Õ¼äÀëÏߣ¨OFFLINE£©Ê±ÓÉϵͳ×Ô¶¯´´½¨£¬µ±±í¿Õ¼äÔÙ´ÎÔÚÏߣ¨ONLINE£©Ê±ÓÉϵͳ×Ô¶¯É¾³ý£¬ÓÃÓÚ´æ·Å±í¿Õ¼äÀëÏßʱ²úÉúµÄ»Ø¹öÐÅÏ¢¡£
»Ø¹ö¶ÎµÄʹÓÃ
·ÖÅä»Ø¹ö¶Î£ºµ±ÊÂÎñ¿ªÊ¼Ê±£¬ORACLE½«Îª¸ÃÊÂÎñ·ÖÅä»Ø¹ö¶Î£¬²¢½«ÓµÓÐ×îÉÙÊÂÎñµÄ»Ø¹ö¶Î·ÖÅä¸ø¸ÃÊÂÎñ¡£ÊÂÎñ¿ÉÒÔÓÃÒÔÏÂÓï¾äÉêÇëÖ¸¶¨µÄ»Ø¹ö¶Î£º
SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment
ÊÂÎñ½«ÒÔ˳Ðò£¬Ñ»·µÄ·½Ê½Ê¹Óûعö¶ÎµÄÇø£¨EXTENTS£©£¬µ±µ±Ç°ÇøÓÃÂúºóÒƵ½ÏÂÒ»¸öÇø¡£¼¸¸öÊÂÎñ¿ÉÒÔдÔڻعö¶ÎµÄͬһ¸öÇø£¬µ«Ã¿¸ö»Ø¹ö¶ÎµÄ¿éÖ»ÄÜ°üº¬Ò»¸öÊÂÎñµÄÐÅÏ¢¡£
ÀýÈ磨Á½¸öÊÂÎñʹÓÃͬһ¸ö»Ø¹ö¶Î£¬¸Ã»Ø¹ö¶ÎÓÐËĸöÇø£©£º
1¡¢ÊÂÎñÔÚ½øÐÐÖУ¬ËüÃÇÕýÔÚʹÓûعö¶ÎµÄµÚÈý¸öÇø£»
2¡¢µ±Á½¸öÊÂÎñ²úÉú¸ü¶àµÄ»Ø¹öÐÅÏ¢£¬ËüÃǽ«¼ÌÐøʹÓõÚÈý¸öÇø£»
3¡¢µ±µÚÈý¸öÇøÂúºó£¬ÊÂÎñ½«Ð´µ½µÚËĸöÇø£¬µ±ÊÂÎñ¿ªÊ¼Ð´µ½Ò»¸öеÄÇøʱ£¬³ÆΪ·×ª£¨WRAP£©£»
4¡¢µ±µÚËĸöÇøÓÃÂúʱ£¬Èç¹ûµÚÒ»¸öÇøÊÇ¿ÕÏлò·Ç»î¶¯£¨Ê¹ÓøÃÇøµÄËùÓÐÊÂÎñÍê³É¶øûÓлµÄÊÂÎñ£©µÄ£¬ÊÂÎñ½«½Ó×ÅʹÓõÚÒ»¸öÇø¡£
»Ø¹ö¶ÎµÄÀ©ÕÅ£¨EXTEND£©
µ±µ±Ç°»Ø¹ö¶ÎÇøµÄËùÓпéÓÃÍê¶øÊÂÎñ»¹ÐèÒª¸ü¶àµÄ»Ø¹ö¿Õ¼äʱ£¬»Ø¹ö¶ÎµÄÖ¸Õ뽫ÒƵ½ÏÂÒ»¸öÇø¡£µ±×îºóÒ»¸öÇøÓÃÍָ꣬Õ뽫ÒƵ½µÚÒ»¸öÇøµÄÇ°Ãæ¡£»Ø¹ö¶ÎÖ¸ÕëÒƵ½ÏÂÒ»¸öÇøµÄÇ°ÌáÊÇÏÂÒ»¸öÇøûÓлµÄÊÂÎñ£¬Í¬Ê±Ö¸Õë²»ÄÜ¿çÇø¡£µ±ÏÂÒ»¸öÇøÕýÔÚʹÓÃʱ£¬ÊÂÎñ½«Îª»Ø¹ö¶Î·ÖÅäÒ»¸öеÄÇø£¬ÕâÖÖ·ÖÅä³ÆΪ»Ø¹ö¶ÎµÄÀ©Õ¹¡£»Ø¹ö¶Î½«Ò»Ö±À©Õ¹µ½¸Ã»Ø¹ö¶ÎÇøµÄ¸öÊýµ½´ï»Ø¹ö¶ÎµÄ²ÎÊýMAXEXTENTSµÄֵʱΪֹ¡£
»Ø¹ö¶ÎµÄ»ØÊÕºÍOPTIMAL²ÎÊý
OPTIMAL²ÎÊýÖ¸Ã÷»Ø¹ö¶Î¿ÕÏÐʱÊÕËõµ½µÄλÖã¬Ö¸Ã÷»Ø¹ö¶ÎµÄOPTIMAL²ÎÊý¿ÉÒÔ¼õÉٻعö¶Î¿Õ¼äµÄÀË·Ñ¡£
´´½¨»Ø¹ö¶Î
Óï·¨£º
CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment
¡¡¡¡¡¡¡¡ [TABLESPACE tablespace]
¡¡¡¡¡¡¡¡ [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]]
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ [MINEXTENTS integer]
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ [MAXTENTS {integer|UNLIMITED}]
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ [OPTIMAL {integer[K|M]|NULL}]) ]
×¢£º
»Ø¹ö¶Î¿ÉÒÔÔÚ´´½¨Ê±Ö¸Ã÷PRIVATE»òPUBLIC£¬Ò»µ©´´½¨½«²»ÄÜÐ޸ġ£
MINEXTENTS ±ØÐë´óÓÚµÈÓÚ2
PCTINCREASE±ØÐëÊÇ0
OPTIMALÈç¹ûÒªÖ¸¶¨£¬±ØÐë´óÓÚµÈÓڻعö¶ÎµÄ³õʼ´óС£¨ÓÉMINEXTENTSÖ¸¶¨£©
½¨Ò飺
Ò»°ãÇé¿öÏ£¬INITIAL=NEXT
ÉèÖÃOPTIMAL²ÎÊýÀ´½ÚÔ¼¿Õ¼äµÄʹÓÃ
²»ÒªÉèÖÃMAXEXTENTSΪUNLIMITED
»Ø¹ö¶ÎÓ¦´´½¨ÔÚÒ»¸öÌض¨µÄ»Ø¹ö¶Î±í¿Õ¼äÄÚ
Àý£º
CREATE ROLLBACK SEGMENT rbs01
TABLESPACE rbs
STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 10
¡¡¡¡¡¡¡¡ MAXEXTENTS 500 OPTIMAL 1000K);
ʹ»Ø¹ö¶ÎÔÚÏß-
µ±»Ø¹ö¶Î´´½¨ºó£¬»Ø¹ö¶ÎÊÇÀëÏߵģ¬²»Äܱ»Êý¾Ý¿âʹÓã¬ÎªÁËʹ»Ø¹ö¶Î±»ÊÂÎñÀûÓ㬱ØÐ뽫»Ø¹ö¶ÎÔÚÏß¡£¿ÉÒÔÓÃÒÔÏÂÃüÁîʹ»Ø¹ö¶ÎÔÚÏߣº
ALTER ROLLBACK SEGMENT rollback_segment ONLINE;
Àý£º
ALTER ROLLBACK SEGMENT rbs01 ONLINE£»
ΪÁËʹ»Ø¹ö¶ÎÔÚÊý¾Ý¿âÆô¶¯Ê±×Ô¶¯ÔÚÏߣ¬¿ÉÒÔÔÚÊý¾Ý¿âµÄ²ÎÊýÎļþÖÐÁгö»Ø¹ö¶ÎµÄÃû×Ö¡£ÀýÈçÔÚ²ÎÊýÎļþÖмÓÈëÒÔÏÂÒ»ÐУº
ROLLBACK_SEGMENT=(rbs01,rbs02)
coolbg ÓÚ 2006-11-09 00:51:03·¢±í:
Ð޸Ļعö¶ÎµÄ´æ´¢²ÎÊý
¿ÉÒÔʹÓÃALTER ROLLBACK SEGMENTÃüÁîÐ޸Ļعö¶ÎµÄ´æ´¢²ÎÊý£¨°üÀ¨OPTIMAL£¬MAXEXTENTS£©¡£
Óï·¨£º
ALTER ROLLBACK SEGMENT rollback_segment
¡¡¡¡[STORAGE ([NEXT integer[K|M]]
¡¡¡¡¡¡¡¡¡¡¡¡ [MINEXTENTS integer]
¡¡¡¡¡¡¡¡¡¡¡¡ [MAXEXTENTS {integer|UNLIMITED}]
¡¡¡¡¡¡¡¡¡¡¡¡ [OPTIMAL {integer[K|M]|NULL}]) ]
Àý£º
ALTER ROLLBACK SEGMENT rbs01 STORAGE (MAXEXTENTS 1000);
»ØÊջعö¶ÎµÄ¿Õ¼ä
Èç¹ûÖ¸¶¨Á˻عö¶ÎµÄOPTIMAL²ÎÊý£¬ORACLE½«×Ô¶¯»ØÊջعö¶Îµ½OPTIMALÖ¸¶¨µÄλÖá£Óû§Ò²¿ÉÒÔÊÖ¶¯»ØÊջعö¶ÎµÄ¿Õ¼ä¡£
Óï·¨£º
ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer [K|M]];
˵Ã÷£º
Èç¹û²»Ö¸Ã÷TO integerµÄÊýÖµ£¬ORACLE½«ÊÔͼ»ØÊÕµ½OPTIMALµÄλÖá£
Àý£º
ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 2M;
ʹ»Ø¹ö¶ÎÀëÏß
ΪÁË´ïµ½ÒÔÏÂÁ½¸öÄ¿µÄ½«Òª»Ø¹ö¶ÎÀëÏߣº
1.×èֹеÄÊÂÎñʹÓøûعö¶Î£»
2.¸Ã»Ø¹ö¶Î±ØÐëɾ³ý¡£
Óï·¨£º
ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;
Àý£º
ALTER ROLLBACK SEGMENT rbs01 OFFLINE;
˵Ã÷£º
Èç¹ûÓÐÊÂÎñÕýÔÚʹÓøûعö¶Î£¬ÔËÐиÃÃüÁîºó£¬»Ø¹ö¶ÎµÄ״̬½«ÊÇPENDING OFFLINE¡£ÊÂÎñ½áÊøºó£¬×´Ì¬½«¸ÄΪOFFLINE£¬¿ÉÒÔͨ¹ýV$ROLLSTAT²éѯ»Ø¹ö¶ÎµÄ״̬¡£
ɾ³ý»Ø¹ö¶Î
µ±»Ø¹ö¶Î²»ÔÙÐèÒª»òÒªÖؽ¨ÒԸıäINITIAL£¬NEXT»òMINEXTENTS²ÎÊýʱ£¬¿ÉÒÔ½«Æäɾ³ý¡£ÒªÉ¾³ý»Ø¹ö¶Î£¬²»Ðíʹ¸Ã»Ø¹ö¶ÎÀëÏß¡£
Óï·¨£º
DROP ROLLBACK SEGMENT rollback_segment;
Àý£º
DROP ROLLBACK SEGMENT rbs01;
²éѯ»Ø¹ö¶ÎµÄÐÅÏ¢
ËùÓÃÊý¾Ý×ֵ䣺DBA_ROLLBACK_SEGS
¿ÉÒÔ²éѯµÄÐÅÏ¢£º»Ø¹ö¶ÎµÄ±êʶ(SEGMENT_ID)¡¢Ãû³Æ(SEGMENT_NAME)¡¢ËùÔÚ±í¿Õ¼äTABLESPACE_NAME)¡¢ÀàÐÍ(OWNER)¡¢×´Ì¬(STATUS)¡£
Àý£º
SQL>SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs;
»Ø¹ö¶ÎµÄͳ¼ÆÐÅÏ¢
Êý¾Ý×ֵ䣺V$ROLLNAME,V$ROLLSTAT
Àý£º
SQL>SELECT n.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status
¡¡¡¡¡¡¡¡FROM v$rollname n,v$rollstat s
¡¡¡¡¡¡¡¡WHERE n.usn=s.usn;
»Ø¹ö¶ÎµÄµ±Ç°»î¶¯ÊÂÎñ
Êý¾Ý×ֵ䣺V$SESSION,V$TRANSACTION
Àý£º
SQL>SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk
¡¡¡¡¡¡¡¡FROM v$session s,v$transaction t
¡¡¡¡¡¡¡¡WHERE s.saddr=t.ses_addr;
¡¡¡¡ USERNAME¡¡¡¡XIDUSN¡¡¡¡ UBAFIL¡¡¡¡ UBABLK¡¡¡¡USED_UBLK
-------¡¡¡¡-------- ----------- ----------- -----------
¡¡¡¡ SYSTEM¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡¡¡7¡¡¡¡¡¡¡¡¡¡¡¡1
¡¡¡¡ SCOTT¡¡¡¡¡¡¡¡¡¡ 1¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡¡¡163¡¡¡¡¡¡¡¡¡¡1
¡¡¡¡ 2 rows selected.
»Ø¹ö¶ÎµÄÊýÁ¿¹æ»®
¶ÔÓÚOLTPϵͳ£¬´æÔÚ´óÁ¿µÄСÊÂÎñ´¦Àí£¬Ò»°ã½¨Ò飺
ÊýÁ¿¶àµÄС»Ø¹ö¶Î£»Ã¿ËĸöÊÂÎñÒ»¸ö»Ø¹ö¶Î£»Ã¿¸ö»Ø¹ö¶Î²»Òª³¬¹ýÊ®¸öÊÂÎñ¡£
¶ÔÓÚÅú´¦Àí£¬Ò»°ã½¨Ò飺
ÉٵĴó»Ø¹ö¶Î£»Ã¿¸öÊÂÎñÒ»¸ö»Ø¹ö¶Î¡£
»Ø¹ö¶ÎµÄÎÊÌâ¼°½â¾ö·½·¨
ÎÊÌâÒ»£ºÊÂÎñÒªÇóµÄ»Ø¹ö¶Î¿Õ¼ä²»¹»£¬±íÏÖΪ±í¿Õ¼äÓÃÂú£¨ORA-01560´íÎ󣩣¬»Ø¹ö¶ÎÀ©Õ¹µ½´ï²ÎÊýMAXEXTENTSµÄÖµ£¨ORA-01628£©¡£
½â¾ö·½·¨£ºÏò»Ø¹ö¶Î±í¿Õ¼äÌí¼ÓÎļþ»òʹÒÑÓеÄÎļþ±ä´ó£»Ôö¼ÓMAXEXTENTSµÄÖµ¡£
ÎÊÌâ¶þ£º¶ÁÒ»ÖÂÐÔ´íÎó£¨ORA-01555 SNAPSHOT TOO OLD£©
½â¾ö·½·¨£ºÔö¼ÓMINEXTENTSµÄÖµ£¬Ôö¼ÓÇøµÄ´óС£¬ÉèÖÃÒ»¸ö¸ßµÄOPTIMALÖµ¡£