故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

news/2025/9/22 14:34:45/文章来源:https://www.cnblogs.com/www-htz-pw/p/19105235

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

今天群里面有兄弟在问关于dba_datapump_jobs中的not running的作业的清除的方法及not running状态的代表什么意思。
not running状态的作业有两个意思
1,作业被暂停。
2,dw/dm进程crash,但是master table还存在
其实多数情况下是属于2,关于怎么清除相当作业,可以看下面的MOS文件,已经写得相当的好,并且还是中文的
欢迎大家加入ORACLE超级群:17115662 免费解决各种ORACLE问题,以后BLOG将迁移到http://www.htz.pw

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

适用于:

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 /nologCONNECT / as sysdbaSET lines 200COL owner_name FORMAT a10;COL job_name FORMAT a20COL state FORMAT a12COL operation LIKE stateCOL job_mode LIKE state

— 查找数据泵作业:

SELECT owner_name, job_name, operation, job_mode,state, attached_sessionsFROM dba_datapump_jobsWHERE job_name NOT LIKE ‘BIN$%’ORDER BY 1,2;OWNER_NAME JOB_NAME            OPERATION JOB_MODE  STATE       ATTACHED———- ——————- ——— ——— ———– ——–SCOTT      EXPDP_20051121      EXPORT    SCHEMA    EXECUTING          1SCOTT      SYS_EXPORT_TABLE_01 EXPORT    TABLE     NOT RUNNING        0SCOTT      SYS_EXPORT_TABLE_02 EXPORT    TABLE     NOT RUNNING        0SYSTEM     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 jWHERE o.owner=j.owner_name AND o.object_name=j.job_nameAND j.job_name NOT LIKE ‘BIN$%’ ORDER BY 4,2;STATUS   OBJECT_ID OBJECT_TYPE  OWNER.OBJECT——- ———- ———— ————————-VALID        85283 TABLE        SCOTT.EXPDP_20051121VALID        85215 TABLE        SCOTT.SYS_EXPORT_TABLE_02VALID        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/tigerSET serveroutput onSET lines 100DECLAREh1 NUMBER;BEGINh1 := 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 sysdbaSET 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          1SYSTEM     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 jWHERE o.owner=j.owner_name AND o.object_name=j.job_nameAND j.job_name NOT LIKE ‘BIN$%’ ORDER BY 4,2;STATUS   OBJECT_ID OBJECT_TYPE  OWNER.OBJECT——- ———- ———— ————————-VALID        85283 TABLE        SCOTT.EXPDP_20051121VALID        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表的操作不会造成任何不一致。

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web自动化测试智能体详解

自然语言驱动Web自动化,让测试更智能、更高效 本次Web 自动化测试智能体课程将带您探索如何利用自然语言驱动 Web 自动化测试,显著提升测试效率与智能化水平。 课程亮点 本公开课将聚焦以下核心内容: Web 常见自动化…

Queue 配合Thread使用

Queue 配合Thread使用 生产消费者模型 结果 线程【3】开始下载https://picsum.photos/200/300线程【0】开始下载https://picsum.photos/300/300线程【4】开始下载https://picsum.photos/400/300 线程【1】开始下载http…

MyEMS 进阶应用:从单厂能耗管理到集团跨区域能源数据协同分析

对于许多现代化集团企业而言,能源成本是运营管理中不可忽视的核心支出。当业务遍布全国乃至全球时,能源管理便从单一的“点”(单个工厂、楼宇)上升为复杂的“面”(整个集团网络)的挑战。传统的单点能耗管理系统已…

Playwright自动化测试框架与AI智能体应用

自动化 数据驱动 MCP协议 智能体,四位一体打造下一代测试体验 本次Playwright自动化测试框架与AI智能体应用的课程将带您深入了解如何利用Playwright这一现代Web自动化测试框架,结合AI智能体技术,提升测试效率与…

快速搞定Dify+Chrome MCP:打造能操作网页的AI助手

你是否想过让AI不仅能回答问题,还能直接操作浏览器帮你做事?比如自动填写网页表单、抓取特定数据、或者点击按钮?现在,通过Dify和Chrome MCP的结合,你可以在3分钟内搭建一个能真正"动手"操作网页的AI助…

以下内容在if判定的时候会被判定为 假

Javascript中被判定为 假 值的情况false 0 和 -0 "" 空字符串 null undefined NaN望粥汁!

Python __init__.py文件

作用在python中,存在__init__.py的文件夹被认为是包。 __init__.py文件一般用来加载包内代码依赖资源和设定包的导出行为。执行时机第一次通过"import xxx"或"from xxx import yyy"的方式, 导入包…

20250330_信安一把梭_考试篇

流量分析, 应急响应, http, ssh, icmp, ftp, telnet, 信安一把梭Tags:流量分析, 应急响应, http, ssh, icmp, ftp, telnet, 信安一把梭 0x00. 题目 某集团的路由器设备被黑客攻击了,运维工程师小辉辉正在打王者走不开…

VS Code配置Conda环境完整指南

1. 配置Anaconda PowerShell Prompt 找到Miniconda路径 [安装路径]\miniconda3\Scripts\activate.bat # 例如: D:\miniconda3\Scripts\activate.bat # 或: C:\Users\[用户名]\miniconda3\Scripts\activate.bat配置VS C…

不同Windows系统中支持的最新.Net Framework/.NET版本

在前面我写过一篇关于不同系统版本中,支持.Net Framework版本情况的文章。 https://www.cnblogs.com/zhaotianff/p/16963712.html 最近在技术群里讨论时,有涉及到Windows XP最高支持到哪个.Net Framework版本的问题。…

avalonia android TextBox多行模式下回车会关闭输入法问题

参考:https://github.com/AvaloniaUI/Avalonia/issues/19220 设置一下就行了。TextInputOptions.SetMultiline(textBox, true); TextInputOptions.SetReturnKeyType(textBox, TextInputReturnKeyType.Return);

每周读书与学习-初识JMeter 元件(二)

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 1、前置处理器 在Jmeter…

深入解析:【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !

深入解析:【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !2025-09-22 14:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wr…

client-go限速之QPS、Burst 和 RateLimiter

QPS、Burst这两个是rest.Config里的配置,由ctrl.GetConfigOrDie()获得 QPS、Burst的默认值为: k8s.io/client-go@v0.25.0/rest/config.go1 const ( 2 DefaultQPS float32 = 5.0 3 DefaultBurst int = …

三度蝉联Gartner SASE领导者:唯一厂商的技术实力解析

帕洛阿尔托网络凭借Prisma SASE平台第三次获评Gartner SASE魔力象限领导者,该平台集成AI驱动的安全与网络能力,提供零信任访问、多云高可用架构及5倍应用性能提升,为企业提供全球规模的安全连接解决方案。2025年Gar…

水水水 || CSP-S 2025 初赛

95.5pts.初赛随便玩玩。 已严肃完成今日「You have no egg!!!」大学习。Day -1 甚至没有 Day -1.Day 0 只打 S,所以上午没事,摆摆摆。 J 填程最后一题黑题弱化版这么恐怖吗,还是个交互题。 下午出发,结果车上上来一…

python实现网站登录会话脚本 - wanghongwei

# -*- coding: utf-8 -*- import os import requests from bs4 import BeautifulSoupdef login(username, password):"""Args:username: 用户名password: 密码Returns:session: 登录后的会话对象"…

HCM 性能优化函数

HR_INITIALIZE_BUFFER 功能:为特定员工(通过参数 pernr 指定)初始化人事数据缓冲区。作用机制: 加载该员工的主数据(如组织分配、工资信息等)到内存缓冲区中,后续访问同一员工数据时直接从内存读取,避免重复查…

Nginx配置里alias和root的区别

我们用一种非常容易理解的方式来解释 alias 和 root 的区别。 核心比喻:问路 想象一下你在问路:root 就像告诉你一个「大本营」的地址alias 就像给你一个「精确的目的地」地址1. root 指令:告诉你大本营在哪里 工作…

国产DevOps生态崛起:Gitee如何赋能企业数字化转型

国产DevOps生态崛起:Gitee如何赋能企业数字化转型 在数字化转型浪潮席卷全球的当下,中国企业的IT架构正在经历前所未有的变革。根据《中国DevOps现状调查报告》最新数据显示,2022年国内企业DevOps实践率实现了显著增…