怎样在 Oracle RAC 环境下使用 Parallel 参数提高 Data Pump job 的性能
来源:互联网 发布:cloud outliner 知乎 编辑:程序博客网 时间:2024/05/22 12:04
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对象所指的位置为非共享存储,则极可能报如下错误:
Starting"SYSTEM"."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
原文链接:http://blog.csdn.net/xiangsir/article/details/9061365
QQ:444367417
MSN:xiangsir@hotmail.com
- 怎样在 Oracle RAC 环境下使用 Parallel 参数提高 Data Pump job 的性能
- Parallel Capabilities of Oracle Data Pump (Doc ID 365459.1)
- Oracle在RAC环境下远程客户端连接的问题
- oracle data pump 应用
- Oracle Data Pump
- Oracle Data Pump
- 在RAC环境下修改Oracle字符集
- 使用data pump工具的准备
- Oracle Data Pump 工具系列:Data Pump 使用权限配置详解
- RAC 环境下的重要参数
- Data Pump的体系结构
- Data Pump的功能
- Oracle Data Pump 工具系列:使用 %U 和 filesize 参数将大数据拆分成小文件导出
- Oracle RAC 环境下的连接管理
- Oracle RAC 环境下的连接管理
- Oracle RAC 环境下的连接管理
- Oracle RAC 环境下的连接管理
- Oracle RAC 环境下的连接管理
- 6.9.2013 原码 反码 补码。
- Cocos2d-x 剖析HelloWorld
- 现代通用编程语言简介
- 老生常谈之Android里的dp和sp
- 无线传感器网络节点太阳能电源系统设计
- 怎样在 Oracle RAC 环境下使用 Parallel 参数提高 Data Pump job 的性能
- IE盒子模型和标准W3C盒子模型
- Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux
- 禁止uiscrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动
- sqlserver中判断表或临时表是否存在
- 富文本编辑框的使用
- EXTJS与java后台交互(一)DWR使用 很实用的方法
- 怎样新建一个Java的Web Service
- 《连线》:PC虽将死 计算已无处不在