expdp时产生的dmp文件数比PARALLEL参数中指定的多
适用范围
数据库:Oracle 10g 10.2.0.4
平台:AIX 6.1
问题概述
在进行数据库U2L迁移时,源端使用expdp导出时,创建的dmp文件数量比parfile中指定的parallel大。parallel指定的是6,产出了7个dmp文件。
parfile:
prod_full_expdp.par
dumpfile=PROD_FULL_%U.dmp
logfile=exppd_logfile_prodf_ull.log
directory=expdp_dir
parallel=6
logfile:
;;;
Export: Release 10.2.0.4.0 – 64bit Production on Friday, 08 December, 2023 19:42:07Copyright © 2003, 2007, Oracle. All rights reserved.
;;;
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “SYS”.“SYS_EXPORT_FULL_01”: “/******** AS SYSDBA” parfile=prod_full_expdp.par
Estimate in progress using BLOCKS method…
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 250.1 GB
Processing object type DATABASE_EXPORT/TABLESPACE
Processing object type DATABASE_EXPORT/PROFILE
…Master table “SYS”.“SYS_EXPORT_FULL_01” successfully loaded/unloaded
Dump file set for SYS.SYS_EXPORT_FULL_01 is:
/bacup/dumpfile/PROD_FULL_01.dmp
/bacup/dumpfile/PROD_FULL_02.dmp
/bacup/dumpfile/PROD_FULL_03.dmp
/bacup/dumpfile/PROD_FULL_04.dmp
/bacup/dumpfile/PROD_FULL_05.dmp
/bacup/dumpfile/PROD_FULL_06.dmp
/bacup/dumpfile/PROD_FULL_07.dmpJob “SYS”.“SYS_EXPORT_FULL_01” successfully completed at 19:58:57
问题原因
首先,这种现象并不是一个问题,expdp日志没有报错,impdp也正常。PARALLEL参数并没有定义要产出多少个dmp文件,它定义了Data Pump操作可以使用的并行进程的最大数量。dumpfile参数我们可以使用%U通配符可以生产多个dmp文件。
一般情况下,Data Pump Export时PARALLEL参数值应该小于或等于dmp文件数量。Data Pump Import时PARALLEL参数值不应该比转储文件集中的文件数大太多。
解决方案
1、expdp日志正常和impdp正常执行的情况下,可以忽略该现象。
2、如果对dmp文件数量有严格要求,可以在expdp时使用filesise参数。