[转帖]优化IMPDP/EXPDP导入导出速度

时间:2022-05-23 09:51:50
优化IMPDP/EXPDP导入导出速度
https://www.2cto.com/database/201308/238176.html

一年半没太学习数据库了.. 

其实这个parallel 的参数一直不清不楚的.  本次给一个 700g的数据库执行恢复, 出现了异常,才仔细去查看一下. 

数据据泵与exp/imp 来说性能有很大的提高,其中影响最大的就是paralle。可以这么来看:  expdp/impdp=exp/imp+direct mode  + paralle. 所以,使用数据泵,要想提高速度,就要设置并行参数。(expdp没开并行,基本上和直接路径exp没两样),其他调整比如REDO,tmp表空间等这里就不讲了。

如果我们使用如下语句:

1
expdp full=y directory=dump dumpfile=orcl_%U.dmp parallel=4

那么expdp将为parallel 创建4个文件: ORCL_01.DMP,RCL_02.DMP ,ORCL_03.DMP,RCL_04.DMP。  每个进程一个文件。  这样的话,每个文件的大小会因进程而不同。可以某个文件很大,某个文件却很小。要解决这个问题,就是设置filesize 参数。来指定每个文件的最大值。这样当一个文件达到最大值的之后,就会创建一个新的文件。

如:

1
expdp full=y directory=dump dumpfile=orcl_%U.dmp parallel=4 filesize=50M

导出的dump文件和paralle有关系,那么导入也有关系。 paralle要小于dump文件数。如果paralle 大于dump文件的个数,就会因为超过的那个进程获取不到文件,就不能对性能提高。

一般parall 参数值等于CPU 的个数。而且要小于dump文件的个数。

查看CPU 个数:

1
SQL> show parameter cpu

注意:

导出导入的过程,尽量避免用ssh连上服务器,在客户端的ssh里执行备份恢复命令。因为这样,如果连接中断,备份也就中断了。可以将备份脚本添加到crontab 里。让备份在服务器上执行。这样即使ssh中断,备份和恢复也不受影响。