天萃荷净

Oracle研究中心学习笔记:分享一篇关于Oracle数据库JOBS作业控制的文章.关于dba_datapump_jobs中的not running的作业的清除的方法。

not running状态的作业有两个意思

1.作业被暂停。

2.dw/dm进程crash.但是master table还存在

其实多数情况下是属于2.关于怎么清除相当作业.可以看下面的MOS文件.已经写得相当的好.并且还是中文的

如何清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业 (文档 ID 1626201.1)

clip_image001[4]

文档内容

目标

解决方案

其他资源

适用于:

Oracle Database – Enterprise Edition – 版本 10.1.0.2 到 11.2.0.3 [发行版 10.1 到 11.2]

本文档所含信息适用于所有平台

目标

如何清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

解决方案

用于这个例子中的作业:

– 导出作业 SCOTT.EXPDP_20051121 是一个正在运行的 schema 级别的导出作业

– 导出作业 SCOTT.SYS_EXPORT_TABLE_01 是一个表级别的异常导出作业

– 导出作业 SCOTT.SYS_EXPORT_TABLE_02 是一个表级别的停止导出作业

– 导出作业 SYSTEM.SYS_EXPORT_FULL_01 是一个被暂停的全库导出作业

第1步. 用 SQL*PLUS 判断在数据库中有哪些数据泵作业

%sqlplus /nolog

CONNECT / as sysdba

SET lines 200

COL owner_name FORMAT a10;

COL job_name FORMAT a20

COL state FORMAT a12

COL operation LIKE state

COL job_mode LIKE state

— 查找数据泵作业:

SELECT owner_name, job_name, operation, job_mode,

state, attached_sessions

FROOracle oracleplus.netM dba_datapump_jobs

WHERE job_name NOT LIKE ‘BIN$%’

ORDER BY 1,2;

OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE ATTACHED

———- ——————- ——— ——— ———– ——–

SCOTT EXPDP_20051121 EXPORT SCHEMA EXECUTING 1

SCOTT SYS_EXPORT_TABLE_01 EXPORT TABLE NOT RUNNING 0

SCOTT SYS_EXPORT_TABLE_02 EXPORT TABLE NOT RUNNING 0

SYSTEM SYS_EXPORT_FULL_01 EXPORT FULL NOT RUNNING 0

第2步. 确保在 dba_datapump_jobs 中列出的作业不是活动的数据泵作业: 状态应该是’NOT RUNNING’。

第3步. 同作业属主确认视图 dba_datapump_jobs 中状态为’NOT RUNNING’ 的作业不是被暂停.而失败的作业。

(例如.SYSTEM 用户的全库导出作业不是一个失败的作业.而是一个被故意暂停的作业)

第4步. 通过 SQL*Plus 找到相关的 master 表:

— 查找数据泵的 master 表:

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;

STATUS OBJECT_ID OBJECT_TYPE OWNER.OBJECT

——- ———- ———— ————————-

VALID 85283 TABLE SCOTT.EXPDP_20051121

VALID 85215 TABLE SCOTT.SYS_EXPORT_TABLE_02

VALID 85162 TABLE SYSTEM.SYS_EXPORT_FULL_01

第5步. 对于过去被终止的和根本不会再启动的作业.删除它的 master 表.例如.

DROP TABLE scott.sys_export_table_02;

— 对于启用了 recycle bin 的系统.需要额外运行:

purge dba_recyclebin;

第6步. 重新运行第1步和第4步对 dba_datapump_jobs 和 dba_objects 的查询。

如果 dba_datapump_jobs 里仍然有作业列出.并且这些作业根本没有 master 表.我们就可以以作业属主的身份清除它们。例如.

CONNECT scott/tiger

SET serveroutput on

SET lines 100

DECLARE

h1 NUMBER;

BEGIN

h1 := DBMS_DATAPUMP.ATTACH(‘SYS_EXPORT_TABLE_01′,’SCOTT’);

DBMS_DATAPUMP.STOP_JOB (h1);

END;

/

注意:调用 STOP_JOB 过程以后.可能会花一点时间去清除作业.我们可以查询 user_datapump_jobs 检查作业是否已经被清除掉:

SELECT * FROM user_datapump_jobs;

第7步. 确认作业已经被清除

CONNECT / as sysdba

SET lines 200

COL owner_name FORMAT a10;

COL job_name FORMAT a20

COL state FORMAT a12

COL operation LIKE state

COL job_mode LIKE state

— 查找数据泵作业:

SELECT owner_name, job_name, operation, job_mode,

state, attached_sessions

FROM dba_datapump_jobs

WHERE job_name NOT LIKE ‘BIN$%’

ORDER BY 1,2;

OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE ATTACHED

———- ——————- ——— ——— ———– ——–

SCOTT EXPDP_20051121 EXPORT SCHEMA EXECUTING 1

SYSTEM SYS_EXPORT_FULL_01 EXPORT FULL NOT RUNNING 0

— 查找数据泵的 master 表:

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;

STATUS OBJECT_ID OBJECT_TYPE OWNER.OBJECT

——- ———- ———— ————————-

VALID 85283 TABLE SCOTT.EXPDP_20051121

VALID 85162 TABLE SYSTEM.SYS_EXPORT_FULL_01

摘要:

1. 异常数据泵作业不会影响新的数据泵作业. dba_datapump_jobs 是基于 gv$datapump_job, obj$, com$, and user$ 的一个视图。 这个视图显示仍在运行的数据泵作业.或者作业的 master 表仍然保留在数据库中.或者不正常结束的作业(异常作业)。如果一个新的数据泵作业启动. 会创建一条新的记录.与旧的数据泵作业无关。

2. 当用系统自动生成的作业名启动一个新的数据泵作业时.我们会检查 dba_datapump_job 中现有的名称以保持惟一性。当然.启动这个作业的用户下需要有足够的空间来创建一个新的 master 表。

3. 数据泵作业与用 DBMS_JOBS 包定义的作业不同. DBMS_JOBS 创建的作业使用它自己的进程。 数据泵作业使用一个 master 进程和一些 worker 进程。如果一个数据泵作业被暂停.数据泵作业会一直存在在数据库中(status: NOT RUNNING).这时.master 和 worker 进程会被停止.或者不再存在。客户端之后可以再次挂载到这个作业.并且继续作业的执行(START_JOB)。

4. 如果活动的数据泵作业相关联的 master 表被删除.可能会导致不一致.

4.a. 如果是一个导出作业, 不太可能引起不一致.因为删除 master 表只会导致数据泵的 mater 和 worker 进程中止。这种情况类似于客户端发起的一个意外中止。

4.b. 如果这个作业是一个导入作业.那么情况就有所不同。删除掉 master 表会导致数据泵的 worker 和 mater 进程中断。这有可能会引起不完整的导入。 例如.没有导入表的所有数据.或表.索引.视图等的导入不完整. 这种情况类似于意外中断导入的客户端。删除 master 表本身不会引起任何数据字典的不一致。如果您在作业完成后还保留 master 表(使用非公开的参数:KEEP_MASTER=Y).以后再删除 master表的操作不会造成任何不一致。

其他资源

社区:数据库社区

本文固定链接: http://www.htz.pw/2014/05/28/%e6%b8%85%e9%99%a4-dba_datapump_jobs-%e8%a7%86%e5%9b%be%e4%b8%ad%e7%9a%84%e5%bc%82%e5%b8%b8%e6%95%b0%e6%8d%ae%e6%b3%b5%e4%bd%9c%e4%b8%9a.html | 认真就输

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法

oracle停止job任务视图,【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法...相关推荐

  1. oracle protocol=beq 不可用,学习笔记:Oracle数据库坏块 深入研究obj$坏块导致exp/expdp不能执行原因...

    天萃荷净 深入研究Oracle坏块obj$导致exp/expdp不能执行导出的原因 上篇(案例:Oracle出现obj$坏块exp/expdp导出不能导出的解决办法ORA-01578 ORA-0111 ...

  2. oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...

    天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...

  3. oracle in查询 一直等待,学习笔记:Oracle awr 分析解决inactive transaction branch等待事件...

    天萃荷净 通过Oracle AWR报告分析inactive transaction branch等待事件的原因 分析一份awr,发现不太熟悉的等待事件"inactive transactio ...

  4. oracle 删除awr报告,学习笔记:Oracle awr入门 深入了解AWR报告

    天萃荷净 深入了解AWR报告,ASH与AWR报告的官方说明,数据库进程和性能视图获取 1.AWR与ASH概念 1.ASH 若是一个普通的会话(我是指没有大量地耗费资源),则对于性能调整来说无足轻重.但 ...

  5. oracle 操作系统升级,学习笔记:Oracle升级 linux操作系统10.2.0.1 升级至 10.2.0.3详细过程...

    天萃荷净 记录一次用户现场Oracle 10G数据库升级的过程,Linux操作环境 FOR 10.2.0.1 to 10.2.0.3的版本升级过程 数据库版本linux 32位(10.2.0.1升级到 ...

  6. 数据导不进oracle数据库,学习笔记:Oracle逻辑导出/导入 数据逻辑导出时跳过指定表不进行导出...

    天萃荷净 Oracle数据库逻辑exp导出时,跳过指定某些表,对其表中数据不进行导出 有一个需求,某个用户有很多张表,但是只能使用exp导出,而且想跳过其中某几张表,其他对象包括依赖关系都需要.针对这 ...

  7. oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系

    天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...

  8. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  9. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...

    天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...

最新文章

  1. JavaEE路径陷阱之getRealPath
  2. React 数字取整
  3. Vim文件管理器NERD tree
  4. 关于Unity中的刚体和碰撞器的相关用法(一)
  5. Vue $nextTick
  6. python installer 在 mac 运行_python – 如何在Mac OS X 10.7中的virtualenv中安装PyAudio
  7. Android倒计时效果
  8. 解决Python爬取百度页面出现中文乱码问题
  9. OpenCV绘制朱利亚(Julia)集合图形
  10. MVP框架——Android
  11. 心形符号c语言程序,c语言心形代码及图形
  12. js面向对象编程基础
  13. gitlab-ci docker maven 自动化流水线部署 springboot多模块项目
  14. Proxmox VE退出集群模式
  15. 587所大学90个一流学科榜:电子专业哪家强?
  16. PyTorch随笔 - Sequential 和 ModuleList 的简要介绍
  17. 打印机使用技巧:打印机的另类用法
  18. CSDN 博客周刊怪评榜之“大力丸”
  19. 3D空间中的点坐标转化为屏幕二维点坐标(二)
  20. I I love you

热门文章

  1. [redis] redis
  2. STM32F407虚拟键盘--4.3寸电容屏构建思路以及工程代码例程。(免费)
  3. linux安装时权限不够,linux npm全局安装权限不足问题的正确解决办法
  4. html button形状,一个清爽的button按钮样式
  5. Python网络请求库Requests,妈妈再也不会担心我的网络请求了(一)
  6. python语音识别播放音乐_Python人工智能 : PyAudio 实现录音 自动化交互实现问答
  7. 智能化防控,网易云易盾助力中信证券“内容安全”
  8. SQL——数据控制语言DCL(GRANT,REVOKE,COMMIT,ROLLBACK)
  9. 使用mui开发的抖音、快手互赞互粉的分享类app
  10. react native 原生js整理数据结构 收银付款