千家信息网

使用Exp和Expdp导出数据的性能有什么区别

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍使用Exp和Expdp导出数据的性能有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.前言数据备份对信息系统的安全运行至关重要,我们的用户中,使用RM
千家信息网最后更新 2024年11月22日使用Exp和Expdp导出数据的性能有什么区别

这篇文章主要介绍使用Exp和Expdp导出数据的性能有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.前言

数据备份对信息系统的安全运行至关重要,我们的用户中,使用RMan或第三方专业备份软件的越来越多,但是很多用户仍然保留了传统的Exp作为备份策略的一部分,主要是由于这种备份方式简单易用,而且恢复到其他机器上也很方便,所以,虽然有其他的备份方式,但是Exp方式仍然会同时使用,甚至还有不少的用户只有这种备份方式(可能因为他们觉得掌握其他技术太复杂)。

随着用户的数据量增长,Exp导出方式存在的问题也日渐突出,主要就是耗时长,有的甚至超过3个小时,加上常见的后台自动作业:汇总表的计算,自动费用的计算,统计信息的收集等工作,使一个晚上的时间安排越来越紧张。

有没有办法提高Exp执行的性能呢?以前我做过一些试验,查阅了很多资料,总结过一些经验,最近拿到了一个用户的近300G数据,再次进行了一系列大数据量的导出对比试验,发现几个参数的设置对Exp导出耗时的影响较大,经过优化后,Exp导出的性能得到了较大提升,但是与Expdp相比,仍然是后者要快得多,下面将试验情况和相关知识做一个介绍,以便我们在帮助用户制定备份策略时参考。

2.试验情况

2.1试验环境

硬件:

CPU :至强5405,4*2G

内存:DDR2,4G

硬盘:IDE 1T

软件:Windows+Oracle 10.2.0.3

数据:XX医院全库导入的ZLHIS10.30数据,原始共300G,经过收缩回滚表空间、临时表空间,以及一些表空间文件未使用的空间后,总共占用267G,其中包含了大量电子病历相关的LOB数据。

其他说明:由于该院使用时间较长,DB Control Repository包含了大量历史监控数据,表SYSMAN.MGMT_METRICS_RAW中的1300万条LOB格式数据,仅该表的导入耗时超过24小时,为了便于测试,清空了该表的数据。

2.2试验方法

在相同环境下,试验4种不同的导出数据的方式的耗时

1) 使用Exp常规路径导出,不加参数优化

2) 使用Exp直接路径导出,不加参数优化

3) 使用Exp直接路径导出,参数优化

4) 使用Expdp导出,参数优化

2.3试验结果

方式

耗时

说明

Exp常规路径,未优化

5小时15分

不加参数

Exp直接路径,未优化

2小时38分

direct=y

Exp直接路径,优化

1小时40分

direct=y recordlength=65535 buffer=104857600

Expdp,优化

59分

parallel=3 dumpfile=

expdp_0225_1.dmp,expdp_0225_2.dmp,

expdp_0225_3.dmp

结果表明:

速度最快的是Expdp方式,而Exp方式经过参数优化后,相对于不加任何参数的情况,快了近3倍。

下面对相关的原理及参数进行详细说明。

3.原理说明

Exp默认是传统路径,这种模式下,是用Select来查询数据,然后写入buffer cache,在将这些数据写入evaluate buffer,最后传到Export客户端,再写入dump文件。

直接路径模式下,直接从硬盘读取数据,然后写入PGA,格式就是Export的格式,不需要转换,数据再直接传到Export客户端,写入dump文件。这种模式没有经过evaluation buffer,少了一个过程,导出速度提高也是很明显。

Exp没有并行参数,要进行并行导出,可以写多条命令同时导出,这种方式可用于特定的数据迁移情况,按表或表空间进行快速数据迁移。

Expdp是Oracle 10G上推出的一种先进的数据导出方式,比Exp有较大的性能提升,Expdp可以看成是Exp的升级版,相当于exp + direct mode + parallel。

Expdp缺省是直接路径方式,它有4种方式,另外3种分别是:
外部表模式(相当于Exp的常规路径导出);

数据文件拷贝模式(表空间传输);

网络链路导入(通过数据链路导出导入)

一般情况可以替代Exp,但是还无法完全替代,主要是它需要在数据库服务器上执行,而Exp可以在任何一台客户端上执行。另外,据测试,Expdp在导出大型分区表(1T以上)的时候,光是分析的时间就超过2个小时,而且存在一些BUG。所以,有些用户仍然会使用Exp来进行数据备份。

4. 参数优化

Exp相关参数

通过上面的分析,我们知道采用"直接路径"可以提高导出速度,这种模式重点说明2个参数:DIRECT和RECORDLENGTH参数。

  DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N)。常规路径导出使用SELECT语句从表中抽取数据,评估后再写入,而直接路径导出则是将数据直接从磁盘读到PGA再原样写入导出文件,从而避免了SQL命令处理层的数据转换过程,大大提高了导出效率。

BUFFER参数用于设置了读取记录的缓存的大小,以字节为单位,即在array中最大数量的记录,该参数只对常规路径模式导出有效。

RECORDLENGTH参数是跟DIRECT=Y配合使用的参数,它定义了Export I/O缓冲的大小,作用类似于常规路径导出使用的BUFFER参数。建议设置RECORDLENGTH参数为最大I/O缓冲,即65535(64kb)。

需要强调是即使用直接路径导出模式,其中涉及LOB对象的表只会通过传统模式导出,所以,DIRECT=Y时,除了设置RECORDLENGTH参数之外,也需要设置BUFFER参数,一般情况可设置为104857600(100M),这一点是网上很多优化文章所忽略的。

另外,还可以修改Oracle初始化参数Multiple Block Read来提交读取数据的性能,经测试,效果不是很明显,前面的测试环境下,可减少10分钟左右的耗时。

按照上面的参数优化设置,下面给出一个导出脚本示例:

exp userid=sys/his@zyyy full=y direct=y recordlength=65535 buffer=104857600 file=F:\zyyy\exp20120218.dmp log=F:\zyyy\exp20120218.log feedback=10000

Expdp相关参数

这里只说明两个参数:Parallel和Dumpfile

Parallel参数指明了导出并行度,根据CPU的个数进行设置,缺省是1,如果不设置,导出性能与Exp的直接路径导出模式差不了多少,就没有发挥出它的优势。

Dumpfile参数可配合Parallel参数指定多个导出文件,用于减少并发写入时的IO争用。

结合这两个参数,下面给出一个导出脚本示例:

SQL>create directory dump_dir as 'F:\data\zyyy';

Cmd:

expdp sys/his@zyyy full=y directory=dump_dir parallel=3

dumpfile=expdp_0225_1.dmp,expdp_0225_2.dmp,expdp_0225_3.dmp logfile=expdp_0225.log

5.小结

如果你仍然习惯使用Exp方式,如果要减少耗时,最好采用直接路径方式,并且设置RECORDLENGTH和BUFFER两个参数的值,可以大大提高导出性能。 如果你掌握了Expdp方式,使用合适的Parallel参数,实现快速导出,更重要的是Impdp的性能提升才是数据泵模式的真正优势所在,从一些Oracle爱好者的测试结果来看,确实差别非常大。

以上是"使用Exp和Expdp导出数据的性能有什么区别"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

参数 数据 路径 方式 模式 性能 备份 试验 常规 用户 小时 情况 文件 空间 测试 较大 两个 传统 客户 客户端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库的时间转化 中信银行软件开发类笔试题 邹平应用软件开发咨询 数据库系统的组成及其功能 ebay服务器时间 我的世界服务器god模式 软件开发电脑上网教程 关于网络安全法的手抄报 国家网络安全宣传周青少年日危害 普通党员应该怎么做网络安全 大学专科计算机网络技术 咨询软件开发易聊技术强 路由器搭建mysql数据库 数据库系统及应用教程书后习题 上海高校网络安全招标 Fiery服务器添加IP 网络安全主体手抄报 华为云服务器网卡配好后怎么保存 四川软件开发人员费用标准 阿里云服务器没通过备案怎么使用 流媒体服务器软件费用 数据库数字用什么表示 软件开发流程控制层 航天税盘 什么数据库 常州好的软件开发 上海晶选互联网科技有限公司 wcf 服务器配置 怎样向软件开发公司提需求 开封市裕鸿软件开发有限公司 东莞优诺网络软件开发
0