一周以来的工作总结--oracle分区的迁移
?? ? ?這周很平靜,沒有客戶的紛紛擾擾。
? ? ?前一陣子寫了一些有關數據表的壓縮的東西,我現在感覺把數據壓縮了遷移走,或者直接遷移走也是一種不錯的辦法。
? ? ?現在有這樣一張表:
? ? ?
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') )? ? ? ?數據是這樣的:
? ? ? ?
? ? ? ?現在可以將這個表的month_id為“201209”的數據遷移到users表空間去:
? ? ? ?
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;? ? ??
? ? ? 出錯了,在網上查了一下應該要先把子分區移走。
? ? ??
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;? ? ?然后在執行下面的:
? ? ?
ALTER TABLE table_1 MODIFY DEFAULT ATTRIBUTES FOR PARTITION part_1 TABLESPACE USERS;? ? ?這是結果:
? ? ?
? ? ? 現在這個分區被轉移到了users中。
? ? ? 如果沒有子分區會是什么樣?重建這個表,這次不要子分區,只是按照month_id分區,然后執行轉移語句:
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;? ? ? 直接成功。這就說明了轉移帶有子分區的分區表的時候,應該從最低級的子分區開始轉移,然后轉移上一級的分區。
? ? ? 那么壓縮呢,將上面這個表的part_1壓縮,語句如下:
ALTER TABLE table_1 MOVE PARTITION part_1 COMPRESS;? ? ? 結果如下:
? ? ??
? ? ? ?建立有子分區的表,然后執行剛才的語句:
? ? ? ?
? ? ? ?相同的問題再次出現。也就是說得把子分區先壓縮了。但是我今天看到了一個更好用的語句:
? ? ? ?
ALTER TABLE table_1 MODIFY PARTITION part_1 COMPRESS;? ? ?執行以后結果:?
? ? ? ?這樣就好了。
? ? ? ?
? ? ? ?今天建立表分區的時候有點忘了語句的寫法,這是不對的,這里記錄一下:
? ? ? ?
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。
轉載于:https://blog.51cto.com/wingsless/1030133
總結
以上是生活随笔為你收集整理的一周以来的工作总结--oracle分区的迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ipsec *** 的总结性谈论
- 下一篇: (转)海岸线提取完成, 海浪排岸效果