暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

impdp 导入约束或索引时,并行执行

2519



适用范围

Oracle 11.2.0.4 及以上版本

问题概述

数据泵导出导入表数据时,可以利用并行加速进度;但是针对索引及约束,仅能采用串行单进程模式处理,对比并行数据处理效率,索引及约束单进程处理效率较低,在大数据量导入时,严重影响数据迁移进度

问题原因

数据泵的模式决定

解决方案

利用sqlfile 建立执行脚本,修改脚本并行度,然后通过执行脚本,实现并行导入;
impdp的sqlfile选项,可以不执行SQL,而是将文件dump中的SQL输出;
操作方式:
1.Expdp 导出备份文件
expdp "/ as sysdba " directory=exp0705 schemas=‘TEST12’ dumpfile=index.dmp logfile=index.log cluster=no include=INDEX,constraint

2.Impdp 利用备份文件建立sqlfile 文件
impdp "/ as sysdba " directory=exp0705 schemas=‘TEST12’ dumpfile=index.dmp logfile=index.log sqlfile=cre_index.sql cluster=no include=INDEX

impdp "/ as sysdba " directory=exp0705 schemas=‘TEST12’ dumpfile=index.dmp logfile=index.log sqlfile=cre_constraint.sql cluster=no include=constraint

3.修改sqlfile 文件的并行度;针对建立的sql 修改parallel 的并行度,执行完成后,后一个sql 会取消并行度。
Vi cre_index.sql

CREATE UNIQUE INDEX “TEST12”.“TEST_PK” ON “TEST12”.“TEST” (“A”)
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE “HDAPP” PARALLEL 16 ;

ALTER INDEX “TEST12”.“TEST_PK” NOPARALLEL;

4.Sqlplus 下执行
@cre_index.sql

参考文档

https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/datapump-import-utility.html#GUID-BA74D4F6-2840-4002-A673-0A7D9CBB3D78

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论