一、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> purge 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中得到。
expdp/impdp job基本管理
未经允许不得转载:徐万新之路 » expdp/impdp job基本管理
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。