ORACLE停止一个JOB

Oracle停止job的正确方式 Oracle停止job的正确方式 1、改job状态broken由N为Y 2、删除job 阅读详情

1      相关表、视图

 dba_jobs

  all_jobs

  user_jobs 包含登录用户所有的JOB信息

  dba_jobs_running 包含正在运行job相关信息

注意

  须使用oracle的sys用户登录到数据库,才能查看dba_jobs_running, v$process, v$session表的信息。同时,登录操作系统时,要用oracle用户。

2      问题描述

为同事解决一个因为网络连接情况不佳时,执行一个超长时间的SQL插入操作。

既然网络状况不好,就选择了使用一次性使用JOB来完成该插入操作。在JOB执行一段时间后,我发现被插入表有些问题(惭愧,当时也没有先检查检查就做了)。准备停止JOB,因为在JOB运行情况下,我的所有修改都会报系统资源忙的错误。

强行KILL SESSION是行不通的,因为过会儿,JOB还会重新启动,如果执行的SQL也被KILL了通过重新启动的JOB还是会被再次新执行的。

3      解决办法

   比较好的方法应该是;

1. 首先确定要停止的JOB号

    在10g中可通过Dba_Jobs_Running进行确认。

    查找正在运行的JOB:

    select sid from dba_jobs_running;

 

    查找到正在运行的JOB的spid:

    select a.spid from v$process a ,v$session b where a.addr=b.paddr  and b.sid in (select sid from dba_jobs_running);

 

 2. Broken你确认的JOB    

    注意使用DBMS_JOB包来标识你的JOB为BROKEN。

    SQL> EXEC DBMS_JOB.BROKEN(job#,TRUE);

   注意:当执行完该命令你选择的这个JOB还是在运行着的。

 

3. Kill 对应的Oracle Session

    应为BROKEN后该JOB还在运行,如果要求该JOB立刻停止,就需要找到该job的对应SESSION(SID,SERIAL#),然后执行以下命令:

    ALTER SYSTEM KILL SESSION 'sid,serial#';

     或者直接KILL对应的操作系统的SESSION,如果使用ALTER SYSTEM KILL SESSION执行很长时间,其实可以使用OS的命令来快速KILL掉SESSION.

     For Windows, at the DOS Prompt: orakill sid spid

     For UNIX at the command line> kill –9 spid

 

4. 检查你的JOB是否还在运行

   检查你要停止的JOB是否还在运行,其实多数情况下,应该都已经停止了。尤其执行的第三步的“杀手”命令。如果真的还是没有停止,只好从第一道第三步重新做一下了。

 

5. 将Job Queue Processes的数目修改为0  

    首先确认当前的Job Queue Processes的数目

    SQL> col value for a10

    SQL> select name,value from v$parameter where name ='job_queue_processes';     

    然后将Job Queue Processes的数目修改为0

    SQL> ALTER SYSTEM SET job_queue_processes = 0;

     保证所有的JOB都会停止。

 

6. 修改你要修改的任何东西,甚至是JOB内的内容。

 

7. 修改完成后,将job的BROKEN状态停止。

SQL>EXEC DBMS_JOB.BROKEN(job#,FALSE):

 

8. 恢复job_queue_processes的原始值

     ALTER SYSTEM SET job_queue_processes = original_value;

    至此整个停止并修改JOB完成.

    

    但是需要另外注意一下的是,在MARK一个BROKEN状态的时候,因为JOB内部执行SQL的原因,所以执行时或许要“煎熬”一段时间。所以在建立JOB时一定要仔细考虑,同时如果可能可以在你设计的PL/SQL代码中,增加一些判断“停止信号”的部分。来避免费力执行上面的步骤。

    毕竟,ORACLE在执行JOB时,还是很“倔强”的 -:)

 

4      附件:ORAKILL用法

oracle的锁表解决 ORA-00031: session marked for kill

很多时候遇到某个session一直处于active,使得CPU一直处于搞使用状态,虽然kill 了,但是却不能够使得使得线程结束。 kill session只是kill这个进程,但是线程一直处于活动状态。需要真正的kill线程才能够解决cpu使用率高的问题。

os :windows2003

ORAKILL用法是 orakill sid spid 其中sid为实例名,spid为线程号。

怎么样取得这个spid呢?

以下给出查找spid的语句。

select spid, osuser, s.program from  v$process p, v$session s

where p.addr=s.paddr  and s.sid = XXX;

--说明:XXX为session的sid (不是数据库SID 呵呵)。自己输入就可以。
orakill instance_name spid

这样就能够成功解决cpu使用率高的问题

【Oracle】Oracle JOB常用操作 【代码】Oracle job常用操作。 阅读详情

相关推荐

ORACLE如何停止一个JOB

描述了oracle停止一个job的详细的操作步骤介绍。

oracle-job创建,停止,以及查询

COMMENTS => '执行代理商清分程序', --注释,可不写。INTERVAL=1;BYMINUTE=0;BYSECOND=0', -- 按天,间隔一天,每天1点执行。INTERVAL=1;BYMINUTE=0;BYSECOND=0', -- 按天,间隔一天,每天1点执行。START_DATE => SYSDATE, --开始时间。ENABLED => TRUE, --使JOB生效。', --JOB名称,根据自己的需要修改。', --调用的存储过程名。

weixin_42115825的博客 3041

五大经典遥感数据集对比:LoveDA、Potsdam、Toronto、Vaihingen、Massachusetts Roads选哪个?

本文深度对比了LoveDA、Potsdam、Vaihingen、Toronto和Massachusetts Roads五大经典遥感数据集。针对城市监测、道路提取、土地分类等不同任务,从分辨率、标注质量、数据规模及场景多样性等核心维度进行分析,为研究者根据项目目标、硬件条件与应用场景选择最合适的遥感数据集提供决策指南。

weixin_29057065的博客 237

Oracle 如何停止正在运行的 Job

停止链式作业(chain job)时可能需要停止整个链。

文牧之的博客 2671

WinForm多语言切换实战:5分钟搞定中英文界面(附完整代码)

本文提供了WinForm应用实现中英文界面切换的两种高效实战方案。通过利用内置的本地化机制和资源文件,开发者可以在5分钟内为窗体添加多语言支持,并附有完整代码示例,帮助快速应对软件国际化需求。

weixin_29230773的博客 409

Modelsim安装教程以及管理员身份运行patch_dll.bat时找不到文件mgls.dll的解决

Modesim安装教程 Modesim版本有很多,但是安装方式大都相同,我们以modesim.10.5为例,电脑使用的是win10 64位,讲一下安装过程中的步骤以及出现问题的解决方法 一 安装 1.首先解压安装包,在解压的安装包内选择应用程序,右键选择管理员运行。 2.稍等一会,有的电脑会弹出是否允许modesim进行更改,选择 是 即可,然后出现下面的界面,点击下一步。 3.弹出此界面选择安装路径,选择安装路径,我是在D盘新建的文件夹,直接把文件夹中的路径复制在框内。文件夹名称切记不要带中文 4.

weixin_48564372的博客 1万+

ORACLE JOB以及如何停止一个正在运行的JOB

niudba的专栏 2078

论文阅读 Quantum Convolutional neural network

在传统的局域序参量(如磁化强度 ⟨Xi⟩)无法有效区分某些拓扑相(如 Haldane 相)时,字符串序参量(SOP)提供了一种方法来识别这些相。字符串序参量的定义通常涉及多个远离的站点之间的长程关联,通常具有如下形式:Zi,Xk,Zj是泡利矩阵(Pauli operators)。指数项 eiπ∑k=ijXk表示一个相位因子。这意味着我们要计算两个远离站点 i,j 的Z 分量的关联,同时考虑它们之间的X 作用。这个非局域的字符串序参量可以用来检测对称保护拓扑(SPT)相。

m0_54373077的博客 2005

oracle怎么停止job,ORACLE如何停止一個正在運行的JOB

1 相關表、視圖dba_jobsall_jobsuser_jobs 包含登錄用戶所有的JOB信息dba_jobs_running 包含正在運行job相關信息注意須使用oracle的sys用戶登錄到數據庫,才能查看dba_jobs_running, v$process, v$session表的信息。同時,登錄操作系統時,要用oracle用戶。2 問題描述為同事解決一個因為網絡連接...

weixin_39781599的博客 3054

从零到一:3D Slicer与MONAI在医学影像中的AI革命

本文探讨了3D Slicer与MONAI在医学影像分析中的革命性应用,展示了如何通过开源工具实现高效的三维影像处理和AI增强分析。结合临床案例,详细介绍了从数据准备到AI分析的全流程,显著提升诊断效率和精度,推动医学影像技术迈向新纪元。

tcp8optimizer的博客 342

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1899

ORACLE如何停止一个正在运行的JOB

1      相关表、视图  dba_jobs   all_jobs   user_jobs 包含登录用户所有的JOB信息   dba_jobs_running 包含正在运行job相关信息 注意 须使用oracle的sys用户登录到数据库,才能查看dba_jobs_running, v$process, v$session表的信息。同时,登录操作系统时,要用oracle用户。 2

heqiyu34的专栏 3091

YOLO26 魔术师专栏|全网独家首发!2026 原创级创新赋能 CV 全场景

基于 YOLO26 核心架构迭代,融合原创自研、2026 AAAI/CVPR/ICCV 顶会前沿成果,打造更高效、更灵活、更具创新性的计算机视觉解决方案!

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4380

如何停oracle的job,ORACLE如何停止一个JOB

ORACLE如何停止一个JOB2010-06-08 11:231 相关表、视图dba_jobsall_jobsuser_jobs 包含登录用户所有的JOB信息dba_jobs_running 包含正在运行job相关信息注意须使用oracle的sys用户登录到数据库,才能查看dba_jobs_running,v$process, v$session表的信息。同时,登录操作系统时,要用oracle用户...

weixin_35572715的博客 594

webrtc+uniapp(h5和app)实现在线聊天功能 uniapp+网页+服务端源码

uniapp端代码 服务端代码 public/index.html

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 755

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ORACLE 停止运行一个job

今天有厂家说他们想停止运行一个job,发现停不下来,让我们帮忙 1)查看现在正在运行的job SQL>  select OWNER,JOB_NAME,SESSION_ID from dba_scheduler_running_jobs; OWNER                          JOB_NAME                       SESSION_ID

dba_lily的博客 583

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ORCLE 如何停止一个JOB【HOW TO STOP A JOB IN THE ORACLE】

为同事解决一个因为网络连接情况不佳时,执行一个超长时间的SQL插入操作。 既然网络状况不好,就选择了使用一次性使用JOB来完成该插入操作。在JOB执行一段时间后,我发现被插入表有些问题(惭愧,当时也没有先检查检查就做了)。准备停止JOB,因为在JOB运行情况下,我的所有修改都会报系统资源忙的错误。 强行KILL SESSION是行不通的,因为过会儿,JOB...

weixin_34072458的博客 91

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ORCLE 如何停止一个JOB【HOW TO STOP A JOB IN THE ORACLE?】

为同事解决一个因为网络连接情况不佳时,执行一个超长时间的SQL插入操作。 既然网络状况不好,就选择了使用一次性使用JOB来完成该插入操作。在JOB执行一段时间后,我发现被插入表有些问题(惭愧,当时也没有先检查检查就做了)。准备停止JOB,因为在JOB运行情况下,我的所有修改都会报系统资源忙的错误。 强行KILL SESSION是行不通的...

weixin_34085658的博客 147
上一篇: Oracle入门理论
下一篇: mysql 忘记了 root 密码
VagueCoder
博客等级 码龄13年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值