优化IMPDP/EXPDP

优化IMPDP/EXPDP

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

       如果我们使用如下语句:

expdp full=y directory=dump dumpfile=orcl_%U.dmpparallel=4

       那么expdp将为parallel创建4个文件 ORCL_01.DMPRCL_02.DMPORCL_03.DMPRCL_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   

 

注意

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


-----------------------------

一、停止EXP/IMP优化速度

可以直接KILL 进程,但先要KILL父进程,然后KILL子进程,只KILL子进程,EXP/IMP还会在后台执行的

样例:ps -ef |grep imp 查询到pid,kill -9 pid 、kill -9 ppid,就可以了

 

二、停止EXPDP/IMPDP

这里就不能简单的用KILL进程来处理了,因为这里是一个JOB

1EXPDP/IMPDP参数:

       ATTACH连接到现有作业,例如 ATTACH [=作业名]

JOB_NAME可以通过dba_datapump_jobs来查询:

sql>select * from dba_datapump_jobs

OWNER_NAME                     JOB_NAME                      OPERATION

------------------------------ ------------------------------ ------------------------------------------------------------

JOB_MODE                                                    STATE                              DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS

------------------------------------------------------------ ------------------------------ ---------- ----------------- -----------------

SYSTEM                         SYS_EXPORT_FULL_01         EXPORT

FULL                                                         EXECUTING                               1                 1                 3

 

样例1:

C:\Documents and Settings\Administrator>expdp system/sys attach=SYS_EXPORT_FULL_01

Export: Release 11.2.0.1.0 - Production on星期六 7 13 23:53:55 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

作业: SYS_EXPORT_FULL_01

  所有者: SYSTEM

  操作: EXPORT

  创建者权限: TRUE

  GUID: 7374DCC3E7D547B3B755865E4DB59F10

  开始时间:星期六, 13 7, 2013 23:53:57

  模式: FULL

  实例: tony

  最大并行度: 1

  EXPORT 个作业参数:

  参数名     参数值:

     CLIENT_COMMAND       system/******** directory=dir_dump dumpfile=dir_dump:bigtable.dmp logfile=dir_dump:bigtable.log full=y

  状态: IDLING

  处理的字节: 0

  当前并行度: 1

  作业错误计数: 0

  转储文件: d:\impdp\bigtable.dmp

    写入的字节: 5,177,344

Worker 1 状态:

  进程名: DW00

  状态: UNDEFINED

 

Export> stop_job

是否确实要停止此作业 ([Y]/N): y

是否确实要停止此作业 ([Y]/N): Y

是否确实要停止此作业 ([Y]/N): Y

是否确实要停止此作业 ([Y]/N): Y

是否确实要停止此作业 ([Y]/N): Y ---------------就是停止不了,在dba_datapump_jobs还是能查到记录,只是JOB已经停止了。

-----已经解决了,需要输入YES

       Export> KILL_JOB

       是否确实要停止此作业 ([Y]/N): YES

在执行的时候CTL+C就可以进入交互模式,windowsLINUX下都是一样的。

重新进入EXPDP/IMPDP,就可以执行下面的交互命令:

$expdp username/password,

交互模式常用命令

CONTINUE_CLIENT返回到记录模式。假如处于空闲状态,将重新启动作业。

START_JOB 启动恢复当前作业。

STATUS在默认值 (0)将显示可用时的新状态的情况下,要监视的频率 (以秒计)作业状态。

STATUS=[interval]

STOP_JOB顺序关闭执行的作业并退出客户机。

STOP_JOB=IMMEDIATE将立即关闭数据泵作业。

 

还有其他命令:

ADD_FILE向转储文件集中添加转储文件。

ADD_FILE=dirobjdumpfile-name

CONTINUE_CLIENT 返回到记录模式。假如处于空闲状态,将重新启动作业。

EXIT_CLIENT 退出客户机会话并使作业处于运行状态。

HELP总结交互命令。

KILL_JOB分离和删除作业。

PARALLEL更改当前作业的活动 worker的数目。

PARALLEL=worker 的数目。

START_JOB 启动恢复当前作业。

STATUS在默认值 (0)将显示可用时的新状态的情况下,

要监视的频率 (以秒计)作业状态。

STATUS=[interval]

STOP_JOB顺序关闭执行的作业并退出客户机。

STOP_JOB=IMMEDIATE 将立即关闭


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值