oracle中多分区的迁移

[size=large]这周很平静,没有客户的纷纷扰扰。

前一阵子写了一些有关数据表的压缩的东西,我现在感觉把数据压缩了迁移走,或者直接迁移走也是一种不错的办法。

现在有这样一张表:

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 小时前
相同的问题再次出现。也就是说得把子分区先压缩了。但是我今天看到了一个更好用的语句:

ALTER TABLE table_1 MODIFY PARTITION part_1 COMPRESS;

执行以后结果:



下载 (13.82 KB)

1 小时前
这样就好了。

今天建立表分区的时候有点忘了语句的写法,这是不对的,这里记录一下:

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;



下载 (8.31 KB)

1 小时前
本文作者: wingsless,转自http://www.cnblogs.com/wingsless/archive/2012/10/17/2728586.html[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值