我的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.   


    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 cpuexp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
    http://blog.csdn.net/tianlesoftware/article/details/60939732. 不知道楼主备份的目的是什么,逻辑备份本身的缺陷就很明显, 建议楼主使用RMAN 来进行备份。
    Nocatalog 下的RMAN 增量备份 shell脚本
    http://blog.csdn.net/tianlesoftware/article/details/6164931
      

  2.   

    确认一下你的服务器磁盘空间是否足够,还有服务器的cpu占用情况。
      

  3.   

    我觉得可能跟DUMP的表的存储的数据也有关。如果是大量的BLOB,CLOB等等大对象的东西,貌似DUMP就是有些慢。
    主要还是建议LZ考虑:
    1.通过网络DUMP还是本地DUMP?如果是通过网络方式,肯定会比本地要慢。
    2.在做DUMP的时候,服务器是不是还有什么应用或者程序还在跑着,占用了CPU、磁盘I/O、内存等资源。
      

  4.   

    我是备份到本地,备份的时候,我监控的cpu占比不高,cpu使用率也就2%,硬盘每秒基本在5M_6M之间,内存没有监控。我觉得应该是clob的原因,只是不知道应该怎么办。