data pump 可以并行运行多个 worker 进程来提高 datapump job 的性能。将 parallel 参数设置为合理并行度可以充分利用当前的条件来提高性能。为了限制 data pump job 对生产系统的影响, dba 可以对 job 的并行度进行限制。例如,在业务系统生产期间可以将 p
data pump可以并行运行多个 worker进程来提高 datapump job的性能。将 parallel参数设置为合理并行度可以充分利用当前的条件来提高性能。为了限制 data pump job对生产系统的影响,dba可以对 job的并行度进行限制。例如,在业务系统生产期间可以将 parallel设置为 2,在非生产期间可以将并行度设置为 8,可以在 job运行的任何时间调整 parallel参数的值。并行度设置由 master进程实施,该进程负责为执行数据和元数据处理操作的每个 worker进程分配任务。worker进程以并行方式运行。一般而言,并行度不应超过数据库实例所在服务器 cpu数量的两倍。
仅支持在enterprise edition of oracle database中调整并行度,在 standardedition of oracle database中
并行度的值限制为 1。
worker进程就是实际并行执行元数据和表数据导入导出操作的的进程。data pump job运行期间会根据需要创建 worker进程,work进程的数量小于等于parallel参数所设置的值。worker进程的数量可以在整个job的运行周期内随时调整。在 oracle rac环境下,worker进程可以在 rac上的任意节点上启动。在oracle rac环境下,如果 parallel=1,则 data pump进程会在启动 job的实例上运行,因此,在单实例场景或者 rac场景下(parallel=1时)directory对象可以指向实例所在的本地存储。
单实例场景下parallel参数使用示例:
sql> createdirectory dp_dir as '/home/oracle/backup';
sql> grantread,write on directory dp_dir to system;
[oracle@prod ~]$expdp system/oracle123 parallel=2 schemas=scott \
>directory=dp_dir dumpfile=scott_%u.emp
[oracle@prod ~]$expdp system/oracle123 attach=sys_export_schema_01
job:sys_export_schema_01
owner: system
operation: export
creator privs: true
guid: de906ba6fc730f15e043b408a8c049cd
start time: friday, 07 june, 2013 20:18:03
mode: schema
instance: prod
max parallelism: 2
export job parameters:
parameter name parameter value:
client_command system/******** parallel=2schemas=scott directory=dp_dir dumpfile=scott_%u.emp
state: executing
bytes processed: 0
current parallelism: 2
job error count: 0
dump file: /home/oracle/backup/scott.emp
bytes written: 4,096
worker 1 status:
process name: dw00
state: executing
export> status
job:sys_export_schema_01
operation: export
mode: schema
state: executing
bytes processed: 0
current parallelism: 2
job error count: 0
dump file: /home/oracle/backup/scott.emp
bytes written: 4,096
worker 1 status:
process name: dw00
state: executing
object schema: scott
object name: test
object type: schema_export/table/table_data
completed objects: 5
total objects: 5
worker parallelism: 1
worker 2 status:
process name: dw01
state: executing
object schema: scott
object name: dept
object type: schema_export/table/table_data
completed objects: 1
total objects: 5
worker parallelism: 1
在 oracle rac环境下,如果 parallel的值大于1,则 data pump进程可能会在启动 job的实例以外的其他实例上运行。因此,在rac环境(parallel不等于1时),directory对象必须指向oracle rac的所有实例都能访问的共享存储上。如果 directory对象所指的位置为非共享存储,则极可能报如下错误:
startingsystem.sys_export_schema_01: system/******** schemas=hx_sb,hx_zs,hx_pzdumpfile=expdp_hxsb7_%u.dmp logfile=expdp_hxsb7.log directory=dp_dircompression=all exclude=grant,trigger,
statisticsparallel=3 flashback_scn=13374657833367
ora-31693: tabledata object hx_sb.sb_sbxx:p25001_pre failedto load/unload and is being skipped due to error:
ora-31617: unable toopen dump file /home/oracle/backup/expdp_hxsb7_03.dmp for write
ora-19505: failed toidentify file /home/oracle/backup/expdp_hxsb7_03.dmp
ora-27037: unable toobtain file status
ibm aix riscsystem/6000 error: 2: no such file or directory
additionalinformation: 3
在实际的生产或测试环境中,我们可以使用 asm来存放 datapump dump文件,使用如下命令创建 directory对象即可:
createdirectory dp_dir as '+data/dump';
当我们无法使用类似于 asm、acfs、nfs之类的共享存储时,如果想要使用
parallel参数来执行 data pump job,还是有一些方法的:
1、在一个节点上执行 data pump进程,关闭其他节点
2、在 data pump job中指定 cluster参数(yes或no),该参数指定 data pump job 是否可以使用 oracle rac的资源以及是否可以在其他 rac实例上启动 worker进程。
将 cluster参数设置为 no可以强制使 datapump job只使用启动 job的实例上的资源。
将 cluster参数设置为 yes,并设置service_name定义一个资源组,将特定的数据库实例包含到该资源组中,可以使 data pump job使用特定的rac实例上的资源。
影响 data pump性能调整建议:
确保 dump文件各成员最好存储在单独的磁盘上,因为 dump文件的读和写是并行性的。同时 dump文件不应与 source表空间和 target表空间放在相同的磁盘上。
使用压缩和加密相关的参数也会影响 data pump的性能,对原始数据执行这些转换操作会消耗额外的 cpu资源。
影响 data pump性能的初始化参数:
disk_asynch_io=true
db_block_checking=false
db_block_checksum=false
shared_pool_size
undo_tablespace
streams_pool_size
data pump使用 stream功能在各个进程之间进行通信,如果设置了 sga_target,则该参数会自动设置为合理的值。
如果未设置sga_target,则streams_pool_size的值默认会自动设置为 shared pool大小的 10%。oracle推荐streams_pool_size的值不应小于 10mb.
为了提高并行度,还需要将如下参数设置为足够的值:
processes
sessions
parallel_max_servers
作者:xiangsir
9061365
qq:444367417
msn:xiangsir@hotmail.com