热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

怎样在OracleRAC环境下使用Parallel参数提高DataPumpjob

DataPump可以并行运行多个worker进程来提高DataPumpjob的性能。将PARALLEL参数设置为合理并行度可以充分利用当前的条件来提高性能。为了限制DataPumpjob对生产系统的影响,DBA可以对job的并行度进行限制。例如,在业务系统生产期间可以将P

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对象所指的位置为非共享存储,则极可能报如下错误:

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';

当我们无法使用类似于 ASMACFSNFS之类的共享存储时,如果想要使用

PARALLEL参数来执行 Data Pump job,还是有一些方法的:

1、在一个节点上执行 Data Pump进程,关闭其他节点

2、在 Data Pump job中指定 CLUSTER参数(YESNO),该参数指定 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

推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
author-avatar
JohnBeanLee
A PHP Coder
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有