前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的。这里通过一个例子简单比较一下。
这篇文章同时使用直接路径和并行来加速数据泵导入。
10g数据泵和导入导出性能对比(一):http://yangtingkun.itpub.net/post/468/321482
10g数据泵和导入导出性能对比(二):http://yangtingkun.itpub.net/post/468/323899
10g数据泵和导入导出性能对比(三):http://yangtingkun.itpub.net/post/468/328465
10g数据泵和导入导出性能对比(四):http://yangtingkun.itpub.net/post/468/457459
10g数据泵和导入导出性能对比(五):http://yangtingkun.itpub.net/post/468/486194
上一篇结束了数据泵导入在非归档模式下获得大幅的性能提高,当然IMP也能从非归档模式中得到性能的提升,当前环境下,imp导入的例子:
bash-2.03$ imp zhejiang/zhejiang file=/data1/backup/zhejiang_regular.dmp full=y buffer=20480000 log=/data1/zj_regular.log
Import: Release 10.2.0.3.0 - Production on 星期三 4月 22 21:36:51 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
经由直接路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 ZHEJIANG 的对象导入到 ZHEJIANG
. . 正在导入表 "A"导入了 1216 行
. . 正在导入表 "ASS_BBS_ARTICLE"导入了 0 行
. . 正在导入表 "ASS_BBS_CATALOG"导入了 0 行
.
.
.
. . 正在导入表 "Z_INVITE_COMM_PUB"导入了 147 行
即将启用约束条件...
成功终止导入, 但出现警告。
bash-2.03$ ls -l /data1/zj_regular.log
-rw-r--r-- 1 oracle oinstall 41303 Apr 23 00:33 /data1/zj_regular.log
在非归档模式下,常规导入方法用了2小时57左右,比归档模式下的3小时17分提高了20分钟。
而上一篇文章中测试的数据泵提高了46分钟,显然数据泵与常规导入相比,使用了直接路径的导入方式,更能利用非归档的优势。
在前面的文章中提到过使用并行能极大的提高导入性能,而上一篇文章也展示了数据泵的直接路径方式的导入性能,下面将两个方面结合在一起,检查数据泵的导入性能。
首先仍然是导出,为了导入可以使用并行,在导出的时候也使用相同的并行度:
bash-2.03$ expdp zhejiang/zhejiang dumpfile=zhejiang_p1.dp, zhejiang_p2.dp directory=d_test parallel=2
Export: Release 10.2.0.3.0 - 64bit Production on 星期三, 22 4月, 2009 18:41:45
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
启动 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01": zhejiang/******** dumpfile=zhejiang_p1.dp, zhejiang_p2.dp directory=d_test parallel=2
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 22.69 GB
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/SYNONYM/SYNONYM
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC
处理对象类型 SCHEMA_EXPORT/DB_LINK
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_BODY
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "ZHEJIANG"."ORD_HIT_COMM" 3.255 GB 4176146 行
. . 导出了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行
.
.
.
. . 导出了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行
. . 导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行
已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
ZHEJIANG.SYS_EXPORT_SCHEMA_01 的转储文件集为:
/data1/backup/zhejiang_p1.dp
/data1/backup/zhejiang_p2.dp
作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 18:51:09 成功完成
利用并行的导出,只用了10分钟不到。
下面删除浙江用户,重建浙江用户并授权:
SQL> drop user zhejiang cascade;
用户已删除。
SQL> create user zhejiang identified by zhejiang default tablespace zhejiang;
用户已创建。
SQL> grant connect, resource to zhejiang;
授权成功。
SQL> grant create database link, create synonym, create view to zhejiang;
授权成功。
SQL> grant read, write on directory d_test to zhejiang;
授权成功。
执行导入操作,并设置并行度为2:
bash-2.03$ impdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p1.dp, zhejiang_p2.dp parallel=2 logfile=zhejiang_p.log
Import: Release 10.2.0.3.0 - 64bit Production on 星期三, 22 4月, 2009 19:04:02
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
已成功加载/卸载了主表 "ZHEJIANG"."SYS_IMPORT_FULL_01"
启动 "ZHEJIANG"."SYS_IMPORT_FULL_01": zhejiang/******** directory=d_test dumpfile=zhejiang_p1.dp, zhejiang_p2.dp parallel=2 logfile=zhejiang_p.log
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/SYNONYM/SYNONYM
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC
处理对象类型 SCHEMA_EXPORT/DB_LINK
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 导入了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647 行
. . 导入了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行
.
.
.
. . 导入了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行
. . 导入了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_BODY
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "ZHEJIANG"."SYS_IMPORT_FULL_01" 已经完成, 但是有 34 个错误 (于 20:58:34 完成)
导入总用时1小时54分32秒,比不使用并行提高了将近30分钟,比非直接路径的并行导入也提高了35分钟左右。
因此优化数据泵的导入性能可以从并行和直接路径两个主要方面入手。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-607202/ ,如需转载,请注明出处,否则将追究法律责任。