Oracle Shrink Table
´Ó10g¿ªÊ¼£¬oracle¿ªÊ¼ÌṩShrinkµÄÃüÁ¼ÙÈçÎÒÃǵıí¿Õ¼äÖÐÖ§³Ö×Ô¶¯¶Î¿Õ¼ä¹ÜÀí (ASSM),¾Í¿ÉÒÔʹÓÃÕâ¸öÌØÐÔËõС¶Î£¬¼´½µµÍHWM¡£ÕâÀïÐèҪǿµ÷Ò»µã£¬10gµÄÕâ¸öÐÂÌØÐÔ£¬½ö¶ÔASSM±í¿Õ¼äÓÐЧ£¬·ñÔò»á±¨ ORA-10635: Invalid segment or tablespace type¡£
Èç¹û¾³£ÔÚ±íÉÏÖ´ÐÐDML²Ù×÷£¬»áÔì³ÉÊý¾Ý¿â¿éÖÐÊý¾Ý·Ö²¼Ï¡Ê裬ÀË·Ñ´óÁ¿¿Õ¼ä¡£Í¬Ê±Ò²»áÓ°ÏìÈ«±íɨÃèµÄÐÔÄÜ£¬ÒòΪȫ±íɨÃèÐèÒª·ÃÎʸü¶àµÄÊý¾Ý¿é¡£´Óoracle10g¿ªÊ¼£¬±í¿ÉÒÔͨ¹ýshrinkÀ´ÖØ×éÊý¾ÝʹÊý¾Ý·Ö²¼¸ü½ôÃÜ£¬Í¬Ê±½µµÍHWMÊÍ·Å¿ÕÏÐÊý¾Ý¿é¡£
segment shrink·ÖΪÁ½¸ö½×¶Î£º
1¡¢Êý¾ÝÖØ×é(compact):ͨ¹ýһϵÁÐinsert¡¢delete²Ù×÷£¬½«Êý¾Ý¾¡Á¿ÅÅÁÐÔڶεÄÇ°Ãæ¡£ÔÚÕâ¸ö¹ý³ÌÖÐÐèÒªÔÚ±íÉϼÓRXËø£¬¼´Ö»ÔÚÐèÒªÒÆ¶¯µÄÐÐÉϼÓËø¡£ÓÉÓÚÉæ¼°µ½rowidµÄ¸Ä±ä£¬ÐèÒªenable row movement.ͬʱҪdisable»ùÓÚrowidµÄtrigger.ÕâÒ»¹ý³Ì¶ÔÒµÎñÓ°Ïì±È½ÏС¡£
2¡¢HWMµ÷Õû£ºµÚ¶þ½×¶ÎÊǵ÷ÕûHWMλÖã¬ÊÍ·Å¿ÕÏÐÊý¾Ý¿é¡£´Ë¹ý³ÌÐèÒªÔÚ±íÉϼÓXËø£¬»áÔì³É±íÉϵÄËùÓÐDMLÓï¾ä×èÈû¡£ÔÚÒµÎñÌØ±ð·±Ã¦µÄϵͳÉÏ¿ÉÄÜÔì³É±È½Ï´óµÄÓ°Ïì¡£
shrink spaceÓï¾äÁ½¸ö½×¶Î¶¼Ö´ÐС£
shrink space compactÖ»Ö´ÐеÚÒ»¸ö½×¶Î¡£
Èç¹ûϵͳҵÎñ±È½Ï·±Ã¦£¬¿ÉÒÔÏÈÖ´ÐÐshrink space compactÖØ×éÊý¾Ý,È»ºóÔÚÒµÎñ²»Ã¦µÄʱºòÔÙÖ´ÐÐshrink space½µµÍHWMÊÍ·Å¿ÕÏÐÊý¾Ý¿é¡£
shrink±ØÐ뿪ÆôÐÐÇ¨ÒÆ¹¦ÄÜ¡£
alter table table_name enable row movement ;
×¢Ò⣺alter table XXX enable row movementÓï¾ä»áÔì³ÉÒýÓñíXXXµÄ¶ÔÏó(Èç´æ´¢¹ý³Ì¡¢°ü¡¢ÊÓͼµÈ)±äΪÎÞЧ¡£Ö´ÐÐÍê³Éºó£¬×îºÃÖ´ÐÐÒ»ÏÂutlrp.sqlÀ´±àÒëÎÞЧµÄ¶ÔÏó¡£
Óï·¨£º
alter table <table_name> shrink space [ <null> | compact | cascade ];
alter table <table_name> shrink space compcat;
ÊÕËõ±í£¬Ï൱ÓÚ°Ñ¿éÖÐÊý¾Ý´ò½áʵÁË£¬µ«»á±£³Ö high water mark;
alter table <tablespace_name> shrink space;
ÊÕËõ±í£¬½µµÍ high water mark;
alter table <tablespace_name> shrink space cascade;
ÊÕËõ±í£¬½µµÍ high water mark£¬²¢ÇÒ
Ïà¹ØÎĵµ£º
Stream ÊÇOracle µÄÏûÏ¢¶ÓÁÐ(Ò²½ÐOracle Advanced Queue)¼¼ÊõµÄÒ»ÖÖÀ©Õ¹Ó¦ÓᣠOracle µÄÏûÏ¢¶ÓÁÐÊÇͨ¹ý·¢²¼/¶©Ôĵķ½Ê½À´½â¾öʼþ¹ÜÀí¡£Á÷¸´ÖÆ(Stream replication)Ö»ÊÇ»ùÓÚËüµÄÒ»¸öÊý¾Ý¹²Ïí¼¼Êõ£¬Ò²¿ÉÒÔ±»ÓÃ×÷Ò»¸ö¿ÉÁé»î¶¨ÖƵĸ߿ÉÓÃÐÔ·½°¸¡£ Ëü¿ÉÒÔʵÏÖÁ½¸öÊý¾Ý¿âÖ®¼äÊý¾Ý¿â¼ ......
¸ôÀë¼¶±ð£¨isoation level£©
¸ôÀë¼¶±ð¶¨ÒåÁËÊÂÎñÓëÊÂÎñÖ®¼äµÄ¸ôÀë³Ì¶È¡£
¸ôÀë¼¶±ðÓë²¢·¢ÐÔÊÇ»¥ÎªÃ¬¶ÜµÄ£º¸ôÀë³Ì¶ÈÔ½¸ß£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½²î£»¸ôÀë³Ì¶ÈÔ½µÍ£¬Êý¾Ý¿âµÄ²¢·¢ÐÔÔ½ºÃ¡£
ANSI/ISO SQ92±ê×¼¶¨ÒåÁËһЩÊý¾Ý¿â²Ù×÷µÄ¸ôÀë¼¶±ð£º
δÌá½»¶Á£¨read uncommitted£©
Ìá½»¶Á£¨read committed£© &n ......
³õѧlinux+oracle£¬²ÉÓõı¾µØÐéÄâ»ú°²×°linuxµÄ·½Ê½£¬°æ±¾ÊÇRed Hat 5£¬Î¨Ò»¸úÐéÄâ»ú°²×°ÆäËûϵͳ²»Í¬µÄÊÇ£º¶¨ÖÆ£¬Ñ¡IDEÓ²ÅÌ£¬·ñÔò°²×°¹ý³ÌÌáʾÕÒ²»µ½Ó²ÅÌʧ°Ü¡£
±¾ÎÄÖØµãÊÇOracle°²×°¹ý³Ì£¬°æ±¾ 10.1.0¡£
3¡¢°²×°Ïà¹ØµÄ¿ª·¢°ü£¨rpm°ü£©£º
rpm -q binutils co ......
1¡¢select TIMESTAMP'2009-11-03 09:26:50.124' from dual --ĬÈϺÁÃë±£´æÁùλ
2¡¢´ËÓï¾äÖ»ÄÜÔÚ·þÎñÆ÷¶ËÔËÐУ¬Èç¹ûÖ´ÐÐÒÔϲÙ×÷£¬ÔòÔÚ²åÈëoracleʱ£¬¿ÉÒÔÖ±½Óдnls_date_formatÉ趨µÄ¸ñʽ£¬µ«ÊÇÖ»ÄÜÕë¶ÔÒ»´Î»æ»£¬Èç¹û¹Øµô´°¿ÚÔòʧЧ¡£
alter session set nls_d ......
1. flashback table table_test to timestamp to_timestamp('20091103000000','yyyymmddhh24miss');
2.Èç¹û報錯ORA-08189: cannot flashback the table because row movement is not enabled
3.alter table table_test enable row movement;
4.OK ......