Oracle 如何停止正在运行的 Job

Oracle 如何停止正在运行的 Job

先了解是dbms_job 还是 dbms_scheduler,再确定操作命令。

一 使用 DBMS_JOB 包停止作业(适用于旧版 Job)

1.1 查看正在运行的 Job

SELECT job, what, this_date, this_sec, failures, broken 
FROM user_jobs 
WHERE running = 1;

1.2 停止正在运行的 Job

-- 方法1:将作业标记为 broken 状态
BEGINDBMS_JOB.BROKEN(job_id, TRUE);COMMIT;
END;
/-- 方法2:直接删除作业
BEGINDBMS_JOB.REMOVE(job_id);COMMIT;
END;
/

二 使用 DBMS_SCHEDULER 包停止作业(推荐用于新版 Scheduler Job)

2.1 查看正在运行的 Scheduler Job

SELECT job_name, status, elapsed_time 
FROM user_scheduler_running_jobs;

2.2 停止正在运行的 Scheduler Job

-- 方法1:停止单个作业
BEGINDBMS_SCHEDULER.STOP_JOB(job_name => 'YOUR_JOB_NAME', force => TRUE);
END;
/-- 方法2:停止所有运行中的作业(谨慎使用)
BEGINFOR r IN (SELECT job_name FROM user_scheduler_running_jobs) LOOPDBMS_SCHEDULER.STOP_JOB(r.job_name, force => TRUE);END LOOP;
END;
/

三 通过会话级别终止 Job

3.1 查找 Job 对应的会话

SELECT s.sid, s.serial#, s.username, s.program, j.job, j.what
FROM v$session s, dba_jobs_running jr, dba_jobs j
WHERE s.sid = jr.sid
AND jr.job = j.job;

3.2 终止会话

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

四 注意事项

  1. 强制停止 vs 正常停止

    • force => FALSE(默认):等待当前操作完成
    • force => TRUE:立即中断
  2. 状态检查

    -- 检查作业状态
    SELECT job_name, state FROM user_scheduler_jobs;-- 检查作业运行历史
    SELECT * FROM user_scheduler_job_run_details 
    ORDER BY log_date DESC;
    
  3. 自动重试:停止作业不会自动禁用,如需永久禁用:

    BEGINDBMS_SCHEDULER.DISABLE('YOUR_JOB_NAME');
    END;
    /
    
  4. 依赖关系:停止链式作业(chain job)时可能需要停止整个链

五 最佳实践

  1. 先检查后停止

    -- 检查作业详情
    SELECT job_name, enabled, state, run_count, failure_count
    FROM user_scheduler_jobs
    WHERE job_name = 'YOUR_JOB_NAME';
    
  2. 记录操作

    -- 记录停止作业的操作
    INSERT INTO job_control_log 
    VALUES('YOUR_JOB_NAME', 'STOPPED', SYSDATE, USER);
    COMMIT;
    
  3. 后续处理

    • 停止后可能需要手动清理残留数据
    • 对于重要作业,停止后应考虑重新调度

更详细的内容请查看官方文档:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/DBMS_JOB.html#GUID-8C62D808-D7A3-4D21-B87F-A229B7CE1956

谨记:心存敬畏,行有所止。

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

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

相关文章

真实波幅策略思路

该策略是一种基于ATR(Average True Range)指标的交易策略,主要用于期货市场中的日内交易。策略的核心思想是利用ATR指标来识别市场的波动范围,并结合均线过滤来确定买入和卖出的时机。 交易逻辑思维 1. 数据准备与初始化 - 集合竞…

Web3技术如何提升用户数据保护

在这个信息爆炸的时代,用户数据保护已成为全球关注的焦点。Web3 技术,作为下一代互联网的代表,以其去中心化、安全性和用户主权等特点,为用户数据保护提供了新的解决方案。本文将探讨 Web3 技术如何提升用户数据保护。 去中心化存…

银河麒麟系统 达梦8 安装 dlask 框架后端环境

适配的一套环境为 dmPython2.5.8 dmSQLAlchemy1.4.39 Flask2.0.3 Flask-Cors3.0.10 Flask-SQLAlchemy2.5.1 SQLAlchemy1.4.54 Werkzeug2.2.2其中 # sqlalchemy-dm1.4.39 通过dmdbms目录内文件进行源码安装 (MindSpore) [ma-user python]$pwd /home/syl/dmdbms/drivers/python…

利用 i2c 快速从 Interface 生成 Class

利用 i2c 快速从 Interface 生成 Class(支持 TS & ArkTS) 在日常 TypeScript 或 ArkTS 开发中,需要根据 interface 定义手动实现对应的 class,这既重复又容易出错。分享一个命令行工具 —— interface2class,简称…

015-C语言字符函数和字符串函数

C语言字符函数和字符串函数 文章目录 C语言字符函数和字符串函数1. 字符分类函数2. 字符转换函数3. strlen4. strcpy5. strcat6. strcmp7. strncpy8. strncat9. strncmp10. strstr11. strtok12. strerror 1. 字符分类函数 C语言中有一系列函数是专门做字符分类的,也…

CGAL边折叠edge_collapse的问题

使用edge_collapse对一个模型简化,之后回收垃圾,collect_garbage 处理之前的顶点和三角形数量: number_of_vertices: 955730 number_of_faces: 1903410 num_vertices: 955730 num_faces: 1903410 处理之后的顶点和三角形数量:…

用c语言实现——顺序队列支持用户输入交互、入队、出队、查找、遍历、计算队列长度等功能。确定判断判满的方法为:牺牲一个存储单元方式

一、知识介绍 1.基本原理 在顺序队列中,我们使用一个固定大小的数组来存储队列中的元素,并使用两个指针(front 和 rear)来分别表示队头和队尾的位置。 队列为空的条件:front rear 队列满的条件:rear 1…

JVM 系列:JVM 内存结构深度解析

你点赞了吗?你关注了吗?每天分享干货好文。 高并发解决方案与架构设计。 海量数据存储和性能优化。 通用框架/组件设计与封装。 如何设计合适的技术架构? 如何成功转型架构设计与技术管理? 在竞争激烈的大环境下&#xff0c…

手机上的APN是什么,该怎么设置

网上说改个APN就可以让网速快几倍,那到底APN是个什么东西,真的能让网速快几倍吗? APN的作用 网络连接基础:APN(接入点名称)是手机连接移动网络的“桥梁”,负责识别运营商网络类型(…

微服务治理与可观测性

服务注册与发现 核心功能 服务实例动态变化:实例可能因扩缩容、故障或迁移导致IP变动。服务依赖解耦:调用方无需硬编码服务地址,降低耦合度。负载均衡:自动选择健康实例,提升系统可用性。 核心组件 服务注册中心&am…

嵌入式linux系统中内存管理的方法与实现

第一:linux内核管理详解图形 第二:Linux内存管理详细分析 深入剖析Linux内核内存管理 作为嵌入式系统开发者,理解Linux内核的内存管理对于开发高效、稳定的系统至关重要。在这篇文章中,我们将详细解析Linux内核如何划分物理内存和虚拟内存,页表、MMU(内存管理单元)与TL…

【dataframe显示不全问题】打开一个行列超多的excel转成df之后行列显示不全

出现问题如下图: 解决方案~ display.width解决列显示不全 pd.set_option(display.max_columns,1000) pd.set_option(display.width, 1000) pd.set_option(display.max_colwidth,1000) pd.set_option(display.max_rows,1000)

Linux——Shell编程之正则表达式与文本处理器(笔记)

目录 基础正则表达式 1:基础正则表达式示例 (4)查找任意一个字符“.”与重新字符“*” (5)查找连续字符范围“{ }” 文本处理器 一、sed工具 二、awk工具 (1)按行输出文本 (2&#xff0…

OpenHarmony系统-源码下载,环境搭建,编译,烧录,调试

获取源码 以OpenHarmony5.0.3为例 repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-5.0.3-Release --no-repo-verify repo sync -c repo forall -c git lfs pull搭建环境 安装必要的工具和命令 apt-get install -y apt-utils binutils bison flex bc …

Vue3 本地打包启动白屏解决思路!! !

“为什么我访问 http://127.0.0.1:5501/index.html 白屏,删了 index.html 再访问 / 就又活过来了?” —— 你的项目与 SPA 路由的“宫斗大戏” 一、问题复现 场景 本地通过 VSCode Live Server(或其他静态服务器)启动了打包后的 V…

数字人(2):数字人技术全景透视(2025演进版)

随着人工智能技术的迅猛发展,数字人技术发展也是一日千里。站在当下,着眼未来,我们一起在回眸透视过去的基础上,一起共同眺望数字人技术的未来。 一、数字人技术体系重构 我们可以用三维定义对数字人技术进行框架重构 维度 技术内涵 典型特征 物理层 人体数字化建模技术 …

小刚说C语言刷题——1035 判断成绩等级

1.题目描述 输入某学生成绩,如果 86分以上(包括 86分)则输出 VERY GOOD ,如果在 60到 85之间的则输出 GOOD (包括 60和 85),小于 60 的则输出 BAD。 输入 输入只有一行,包括 1个整数。 输出 输出只有一行&#xf…

React-在使用map循环数组渲染列表时须指定唯一且稳定值的key

在渲染列表的时候,我们须给组件或者元素分配一个唯一值的key, key是一个特殊的属性,不会最终加在元素上面,也无法通过props.key来获取,仅在react内部使用。react中的key本质是服务于diff算法, 它的默认值是null, 在diff算法过程中…

Zookeeper的通知机制是什么?

大家好,我是锋哥。今天分享关于【Zookeeper的通知机制是什么?】面试题。希望对大家有帮助; Zookeeper的通知机制是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 的通知机制是其核心特性之一&#xf…

【LangChain实战】构建下一代智能问答系统:从RAG架构到生产级优化

打破传统问答系统的次元壁 当ChatGPT在2022年掀起AI革命时,开发者们很快发现一个残酷现实:通用大模型在专业领域的表现如同拿着地图的盲人,既无法理解企业私有数据,也无法保证事实准确性。这催生了RAG(检索增强生成&a…