首页 > 技术文章 > Oracle分区表分批迁移

Clark-cloud-database 2017-11-10 11:25 原文

遇到个分区表数据量超大的case,磁盘空间不够,所以考虑使用数据泵分批导数据,测试如下:

source : oracle windows 32bit 10.2.0.1
target  :  oracle windows 64bit 11.2.0.1

使用系统自带sh用户下的sales分区表:

expdp:

expdp sh/sh dumpfile=sales_p.dmp directory=dump logfile=sales.log tables=sales:SALES_1995,sales:SALES_1996,sales:SALES_H1_1997,sales:SALES_H2_1997,sales:SALES_Q1_1998,sales:SALES_Q1_1999,sales:SALES_Q1_2000,sales:SALES_Q1_2001,sales:SALES_Q1_2002,sales:SALES_Q1_2003,sales:SALES_Q2_1998,sales:SALES_Q2_1999,sales:SALES_Q2_2000,sales:SALES_Q2_2001,sales:SALES_Q2_2002,sales:SALES_Q2_2003,sales:SALES_Q3_1998,sales:SALES_Q3_1999,sales:SALES_Q3_2000


expdp sh/sh dumpfile=sales_p2.dmp directory=dump logfile=sales2.log tables=sales:SALES_Q3_2001,sales:SALES_Q3_2002,sales:SALES_Q3_2003,sales:SALES_Q4_1998,sales:SALES_Q4_1999,sales:SALES_Q4_2000,sales:SALES_Q4_2001,sales:SALES_Q4_2002,sales:SALES_Q4_2003

impdp:

impdp sh/sh dumpfile=sales_p.dmp directory=dump logfile=sales.log tables=sales:SALES_1995,sales:SALES_1996,sales:SALES_H1_1997,sales:SALES_H2_1997,sales:SALES_Q1_1998,sales:SALES_Q1_1999,sales:SALES_Q1_2000,sales:SALES_Q1_2001,sales:SALES_Q1_2002,sales:SALES_Q1_2003,sales:SALES_Q2_1998,sales:SALES_Q2_1999,sales:SALES_Q2_2000,sales:SALES_Q2_2001,sales:SALES_Q2_2002,sales:SALES_Q2_2003,sales:SALES_Q3_1998,sales:SALES_Q3_1999,sales:SALES_Q3_2000


impdp sh/sh dumpfile=sales_p2.dmp directory=dump logfile=sales2.log tables=sales:SALES_Q3_2001,sales:SALES_Q3_2002,sales:SALES_Q3_2003,sales:SALES_Q4_1998,sales:SALES_Q4_1999,sales:SALES_Q4_2000,sales:SALES_Q4_2001,sales:SALES_Q4_2002,sales:SALES_Q4_2003 table_exists_action=append

分区过多使用notepad++宫格回车替换成:的方法再结合select 'sales:'||partition_name from user_tab_partitions where table_name='SALES'的输出结果很简单实现。
如有疑问请在评论中留言。

推荐阅读