正德厚生,臻于至善

expdp/impdp job基本管理

一、Data Pump Job 交互命令管理
    在我们使用expdp 或 impdp 时, 当 expdp/impdp 指令发出时,如果不做任何操作,会在终端打印出 expdp/impdp 的过程,我们称之为交互模式。此时如果我们使用 Ctrl+C 组合键,仅仅是退出当前的交互模式,导出操作不会停止。

例如我们执行以下expdp 脚本
cd /backup/scripts
nohup expdp 'userid="/ as sysdba"' parfile=auexpdp.dat 2>&1 &

cat auexpdp.dat
#$Header: auexpdp.dat 120.4 2019/07/24 06:19:27 gong ship $
# 120.1 - Removed exclude, transform parameters
# 120.2 - Added metrics parameter
# 120.3 - Added QUERY parameter
# 120.4 - Added parallel parameter

directory=dmpdir
reuse_dumpfiles=yes
dumpfile=fullexp1_%U.dmp,fullexp2_%U.dmp,fullexp3_%U.dmp,fullexp4_%U.dmp,fullexp5_%U.dmp,fullexp6_%U.dmp,fullexp7_%U.dmp,fullexp8_%U.dmp
filesize=10485760000
full=y
logfile=fullexp_20210723.log
metrics=y
parallel=8
cluster=N
compression=NONE
estimate=STATISTICS
exclude=TABLE_STATISTICS,INDEX_STATISTICS
#exclude=TABLE:"like 'XLA_GLT%'"
#exclude=INDEX:"like 'XLA_GLT%'"
QUERY=applsys.wf_item_attribute_values:"where item_type!='WFERROR' and name != 'EVENT_MESSAGE'"

dumpfile=fullexp1_%U.dmp,fullexp2_%U.dmp,fullexp3_%U.dmp,fullexp4_%U.dmp,fullexp5_%U.dmp,fullexp6_%U.dmp,fullexp7_%U.dmp,fullexp8_%U.dmp,fullexp9_%U.dmp,fullexp10_%U.dmp,fullexp11_%U.dmp,fullexp12_%U.dmp,fullexp13_%U.dmp,fullexp14_%U.dmp,fullexp15_%U.dmp,fullexp16_%U.dmp

退出之后,要重新查看进程,执行如下命令可以附加job , 会再次进入交互状态 。
expdp 'userid="/ as sysdba"' attach=SYS_EXPORT_FULL_01
Export> STOP_JOB=IMMEDIATE
Are you sure you wish to stop this job ([yes]/no): yes

交互模式常用命令
HELP : 交互命令汇总
KILL_JOB : 删除作业。
PARALLEL :   更改当前作业的活动 的并行数
STATUS: 查看当前 JOB 的状态
STOP_JOB :   顺序关闭执行的作业并退出客户 端 。
STOP_JOB=IMMEDIATE :   将立即关闭数据泵作业。
START_JOB :  启动/恢复当前作业。

二、如何清理已经没用的job
1.  使用sqlplus 查看当前存在的 job
SQL> set lines 200 pages 50000
col operation for a30
col job_mode for a30
SELECT owner_name, job_name, rtrim(operation) "OPERATION", rtrim(job_mode)
"JOB_MODE", state, attached_sessions FROM dba_datapump_jobs
WHERE job_name NOT LIKE 'BIN$%' ORDER BY 1,2;

2.  确保db_datapump_jobs 列表中要删除的 jobs 状态为 ” NOT RUNNING ”
3.  查看控制表信息
SQL> COL owner.object FORMAT a50
SELECT o.status, o.object_id, o.object_type,
o.owner||'.'||object_name "OWNER.OBJECT"
FROM dba_objects o, dba_datapump_jobs j
WHERE o.owner=j.owner_name AND o.object_name=j.job_name
AND j.job_name NOT LIKE 'BIN$%' ORDER BY 4,2;

4.  删除上面查询到的表
SQL> drop table SYS.SYS_EXPORT_FULL_01 purge;
SQL> drop dba_recyclebin;

附加:清除stoped impdp/expdp job的方法
stoped impdp/expdp job会在dba_datapump_jobs中留下一条记录,显示为not running.
清除stopped job分两种情况:
1) job能够attach
如果job能够attach, 则可以attach后再kill job.
如:expdp system/**** attach=SYS_EXPORT_TABLE_01
    kill_job

2) job无法attach
如果job无法attach, 则需要删除连接DataPump的用户下的master table.
如:conn system/*****
        drop table SYS_EXPORT_TABLE_01 (master table名称一般与job name相同)

以上的用户名和job name都可以从dba_datapump_jobs中得到。
赞(0) 打赏
未经允许不得转载:徐万新之路 » expdp/impdp job基本管理
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏