日期:2014-05-17  浏览次数:20960 次

我用expdp备份一个500G的库,为什么2个多小时过去,只备份了20多G

我的oracle版本是11G,数据库的数据大约有500G我执行下面的命令

/data/app/oracle/product/11.1.0/db_1/bin/expdp system/password DIRECTORY=bk DUMPFILE=test1.dmp FULL=Y

执行了2个半小时,才备份了20多G的文件,最后不得已,我只能先终止了备份操作。
我想用exp也不会这么慢啊。
原因是什么,用expdp如何改进?

------解决方案--------------------

1.楼主的这个时间很不正常,在备份的时候看下服务器的IO情况,另外对这么大的库,在CPU 资源足够的情况下,可以考虑使用并行来操作。

 expdp将为parallel 创建4个文件: ORCL_01.DMP,RCL_02.DMP,ORCL_03.DMP,RCL_04.DMP。 每个进程一个文件。 这样的话,每个文件的大小会因进程而不同。 可以某个文件很大,某个文件却很小。 要解决这个问题,就是设置filesize 参数。 来指定每个文件的最大值。 这样当一个文件达到最大值的之后,就会创建一个新的文件。
 
如:
expdp full=y directory=dump dumpfile=orcl_%U.dmp parallel=4 filesize=50M
 
导出的dump文件和paralle有关系,那么导入也有关系。 paralle要小于dump文件数。 如果paralle 大于dump文件的个数,就会因为超过的那个进程获取不到文件,就不能对性能提高。
 
一般parall 参数值等于CPU 的个数。而且要小于dump文件的个数。
 
查看CPU 个数:
SQL> show parameter cpu

exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
http://blog.csdn.net/tianlesoftware/article/details/6093973

2. 不知道楼主备份的目的是什么,逻辑备份本身的缺陷就很明显, 建议楼主使用RMAN 来进行备份。
Nocatalog 下的RMAN 增量备份 shell脚本
http://blog.csdn.net/tianlesoftware/article/details/6164931