合 Oracle数据泵expdp和impdp之parallel参数
Tags: Oracle数据泵expdpimpdp并行加速逻辑导出导入parallel
简介
EXPDP命令的PARALLEL和FILESIZE参数联合使用在“某些情况下”可以提高备份的效率。
这种方法可以完成并行的逻辑备份。
expdp
EXPDP命令的PARALLEL和FILESIZE参数联合使用在“某些情况下”可以提高备份的效率。这种方法可以完成并行的逻辑备份。
PARALLEL工作原理:控制执行任务的最大线程数。当指定参数值为1时,表示最多只启动一个线程处理数据,设置为3时,表示最多启动三个线程并行处理数据,由于同一时间一个DUMP文件只允许一个线程处理,所以输出的文件若只有一个,即使PARALLEL=10,也只有1个线程进行数据输出,其他9个空闲。所以PARALLEL需要与FILESIZE参数一起使用,指定每个DUMP文件的大小。
在expdp中,parallel参数值应小于等于dump文件数。如果prarallel值设置过高,则有可能报ORA-39095 error。ORA-39095: Dump file space has been exhausted: Unable to allocate 8192 bytes
对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?
EXPDP 命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。
举 例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则语法如下:
1 | $ expdp user/pwd directory=dump_file dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M parallel=4 |
impdp
IMPDP有所不同,会先启动一个WOKER进程进行METADATA导入,然后启动多个WORKER进程导入,所以在前期只会看到1个WOKER在导入METADATA,而且IMPDP如果PARALLE=4也需要>=4个DMP文件,也可以使用%U来进行导入。而对于impdp来说,对单个文件添加parallel也可以实现并行导入。
Parallel在impdp中的参数与expdp中有所不同。