一周以来的工作总结--oracle分区的迁移
?? ? ?這周很平靜,沒有客戶的紛紛擾擾。
? ? ?前一陣子寫了一些有關(guān)數(shù)據(jù)表的壓縮的東西,我現(xiàn)在感覺把數(shù)據(jù)壓縮了遷移走,或者直接遷移走也是一種不錯的辦法。
? ? ?現(xiàn)在有這樣一張表:
? ? ?
CREATE TABLE TABLE_1 ( MONTH_ID VARCHAR2(10), AREA_ID VARCHAR2(10), SERI NUMBER ) PARTITION BY RANGE(MONTH_ID) subpartition by list (AREA_ID) subpartition template( subpartition subpart_290 values ('290'), subpartition subpart_919 values ('919'), subpartition subpart_917 values ('917'), subpartition subpart_910 values ('910'), subpartition subpart_913 values ('913'), subpartition subpart_916 values ('916'), subpartition subpart_915 values ('915'), subpartition subpart_914 values ('914'), subpartition subpart_911 values ('911'), subpartition subpart_912 values ('912'), subpartition subpart_default values (default) ) ( PARTITION PART_1 VALUES LESS THAN('201210'), PARTITION PART_2 VALUES LESS THAN('201211'), PARTITION PART_3 VALUES LESS THAN('201212') )? ? ? ?數(shù)據(jù)是這樣的:
? ? ? ?
? ? ? ?現(xiàn)在可以將這個表的month_id為“201209”的數(shù)據(jù)遷移到users表空間去:
? ? ? ?
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;? ? ??
? ? ? 出錯了,在網(wǎng)上查了一下應(yīng)該要先把子分區(qū)移走。
? ? ??
ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_290 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_910 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_911 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_912 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_913 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_914 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_915 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_916 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_917 TABLESPACE USERS; ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_919 TABLESPACE USERS;? ? ?然后在執(zhí)行下面的:
? ? ?
ALTER TABLE table_1 MODIFY DEFAULT ATTRIBUTES FOR PARTITION part_1 TABLESPACE USERS;? ? ?這是結(jié)果:
? ? ?
? ? ? 現(xiàn)在這個分區(qū)被轉(zhuǎn)移到了users中。
? ? ? 如果沒有子分區(qū)會是什么樣?重建這個表,這次不要子分區(qū),只是按照month_id分區(qū),然后執(zhí)行轉(zhuǎn)移語句:
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;? ? ? 直接成功。這就說明了轉(zhuǎn)移帶有子分區(qū)的分區(qū)表的時候,應(yīng)該從最低級的子分區(qū)開始轉(zhuǎn)移,然后轉(zhuǎn)移上一級的分區(qū)。
? ? ? 那么壓縮呢,將上面這個表的part_1壓縮,語句如下:
ALTER TABLE table_1 MOVE PARTITION part_1 COMPRESS;? ? ? 結(jié)果如下:
? ? ??
? ? ? ?建立有子分區(qū)的表,然后執(zhí)行剛才的語句:
? ? ? ?
? ? ? ?相同的問題再次出現(xiàn)。也就是說得把子分區(qū)先壓縮了。但是我今天看到了一個更好用的語句:
? ? ? ?
ALTER TABLE table_1 MODIFY PARTITION part_1 COMPRESS;? ? ?執(zhí)行以后結(jié)果:?
? ? ? ?這樣就好了。
? ? ? ?
? ? ? ?今天建立表分區(qū)的時候有點忘了語句的寫法,這是不對的,這里記錄一下:
? ? ? ?
CREATE TABLESPACE data_warehouse DATAFILE 'D:\app\user\oradata\PC1\STORAGE2.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 2048M;? ? ?將用戶默認表空間改成剛才建立的表空間:
? ? ??
ALTER USER wings DEFAULT TABLESPACE data_warehouse;? ? ? 歡迎各位oracle愛好者加入我們的交流群:120244471。
轉(zhuǎn)載于:https://blog.51cto.com/wingsless/1030133
總結(jié)
以上是生活随笔為你收集整理的一周以来的工作总结--oracle分区的迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ipsec *** 的总结性谈论
- 下一篇: C# 将内存中的datatable数据导