- 爱易网页
-
数据库教程
- oracle中多分区的迁徙
日期:2014-05-16 浏览次数:20445 次
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')
)
数据是这样的:
下载 (4.9 KB)
1 小时前
下载 (5.19 KB)
1 小时前
现在可以将这个表的month_id为“201209”的数据迁移到users表空间去:
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;
下载 (16.37 KB)
1 小时前
出错了,在网上查了一下应该要先把子分区移走。
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;
这是结果:
下载 (3.81 KB)
1 小时前
现在这个分区被转移到了users中。
如果没有子分区会是什么样?重建这个表,这次不要子分区,只是按照month_id分区,然后执行转移语句:
ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;
直接成功。这就说明了转移带有子分区的分区表的时候,应该从最低级的子分区开始转移,然后转移上一级的分区。
那么压缩呢,将上面这个表的part_1压缩,语句如下:
ALTER TABLE table_1 MOVE PARTITION part_1 COMPRESS;
结果如下:
下载 (13.32 KB)
1 小时前
建立有子分区的表,然后执行刚才的语句:
下载 (15.53 KB)
1 小时前
&n
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。