有些表由于过大,需要拆分为分区表,由于联机转化可能导致一些问题,所以可以采用停机rename的方法,可大致按照如下步骤操作:
(假设要删除表,名称叫做Table_1 ,且有一个基于该表的物化视图mat_view_1 )
1、停止与该表相关的应用,禁止所有会话对该表进行访问(读或写)
2、若要删除的表为某物化视图的基表,则必须要对该物化视图的快照日志删除
drop snapshot log on Table_1 ;
3、将原表(Table_1 ) rename 为(Table_2)
alter table Table_1 rename to Table_2;
4、用数据泵备份新表
expdp user/password directory=DUMPDATADIR dumpfile=expdp01.dmp tables=Table_2 logfile=log01.log
5、删除Table_2 表(为了保险起见,将Table_2 rename为TTable_23)
alter table Table_2 rename to Table_3;
6、创建一个名字为 Table_2 的分区表
......此处省略建表语句
需要注意的是别忘记建索引了
7、将数据回插到新表中
impdp ytexp/rPeimJIi directory=DUMPDATADIR dumpfile=expdp01.dmp CONTENT=data_only logfile=log2.log
8、将表Table_2 rename 为 Table_1
9、确认以上操作无误,删除备份Table_3
10、做完以上操作后可能需要给你的分区表Table_1 收集一下统计信息
11、刷新一下对应的物化视图,并打开相关应用