环境:AIX power 7 128g+ oracle 10G RAC
需求:
源表A 目前166G 已经做了分区 做的是hash 分区,但是目前。表需要做调整 需要用另外一个字段做列表分区。
计划:
1、将源表转化为普通表。
2、将普通表转化为分区表。
操作:
1、expdp 备份表 166G 大概十几分钟就备份完成.
expdp xx/xxxxdirectory=exp_dir dumpfile= xxxx.dmp
tables=ADAPTER_ORIGINALDATA
logfile= xxxx.log
parallel=10
2、备份表的索引ddL
使用工具
3、创建新的表空间
create tablespacexxxdatafile ‘xxxxx.dbf’
size 1G autoextend on next 500M maxsize 10g将表空间赋给用户
alter user adapter
quota unlimited on xxxxx;
4、创建中间表
CREATE
TABLE "ADAPTER"."xxxx"
( "EVENTID"
CHAR(32) NOT NULL ENABLE,
"RECORDCLASSIFYING"
VARCHAR2(32),
"RECORDTITLE" VARCHAR2(50),
"EFFECTIVETIME" DATE,
"AUTHORORGANIZATION"
VARCHAR2(56),
"SOURCEID" VARCHAR2(32),
"VERSIONNUMBER" VARCHAR2(10),
"AUTHOR" VARCHAR2(32),
"SYSTEMTIME" DATE,
"UPLOADTIME" DATE,
"HEADER" VARCHAR2(4000),
"BODY" BLOB,
"DOCFORMAT" VARCHAR2(8),
"ZIPTYPE" VARCHAR2(8),
"PROCESSFLAG" CHAR(1),
"ORIGINALBODY" BLOB,
"MPIPROCESSFLAG" CHAR(1),
"MPI" VARCHAR2(32),
"DCID" CHAR(16),
"CREATETIME" DATE,
"AUTHORORGANIZATION_TEXT"
VARCHAR2(56)
) TABLESPACExxxxxx;
5、开始重定义
execute
dbms_redefinition.start_redef_table('hzwsj','old_table','mid_table');
execute
dbms_redefinition.sync_interim_table('hzwsj','old_table','mid_table');
execute
dbms_redefinition.finish_redef_table('hzwsj','old_table','mid_table');
6、创建索引
7、完成。
注意:两个源表和中间表需要相同主键。
在重定义过程中
execute dbms_redefinition.start_redef_table('hzwsj','old_table','mid_table'); 这一步 为转移数据步骤。
完成后的mid_table 可删除。
166G 数据 POWER 7 处理器 128G 内存 大概需要两个小时。