Oracle作业job 没有自动调度起来
问题:有一同事报过来,说有两个job已经近一周没有自动调起了,让我帮忙解决。
1、检查:
(1)在生产库中检查,其他的job都能自动调度
(2)select * from all_jobs where job in(2704,2706); 检查正常,并无异常 (dba_jobs或PL/SQL Developer DBMS_Jobs 也可查看)
(3)select * from dba_jobs_running where job in(2704,2706); 在其列表中
结论:进程挂死未完成,导致不能自动调度!
2、解决:先备份两job的内容再将job删除,然后将进程杀掉,并重建
(1)利用上面查出job运行列表中的sid 如 3695,并查出哪些进程需要杀掉,查询语句如下:
select 'call superkill('||a.sid||','||a.SERIAL#||');' KILL_SID,
'kill -9 '||A.PROCESS||';'KILL_PID,A.SID,A.SERIAL#,A.STATUS, A.SCHEMANAME,A.USERNAME,A.MACHINE,OSUSER,A.PROCESS,A.PROGRAM,A.TERMINAL,
A.SERVICE_NAME,A.LOGON_TIME, A.OWNERID,
D.SQL_TEXT,D.SQL_FULLTEXT
from gv$session a, v$sql d
where a.SQL_ADDRESS=d.ADDRESS(+)
and (a.SCHEMANAME = 'REPORT' or a.USERNAME= 'REPORT')
and a.sid=3695
order by a.MACHINE;
杀进程:
(1)上面的superkill如下:
create or replace procedure system.superkill(SESSION_ID BINARY_INTEGER,SERIAL_NUM
BINARY_INTEGER) is
begin
execute immediate 'alter system disconnect session '''||SESSION_ID||','||SERIAL_NUM||'''
immediate' ;
EXCEPTION
WHEN OTHERS
THEN
RAISE;
end superkill;
(2)也可直接 alter system kill session 'sid,serial#';
上面两个原理都差不多。
(3)重建job
如job:2706 的重建:
begin
sys.dbms_job.isubmit(job => 2706,
what => 'declare
vc_out varchar2(2000);
begin
SP_SAP_NEWINCOME_ALL(to_char(SYSDATE-1,''yyyymmdd''),to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2011.Dic_day_all_report_2011(to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Day_Move_Busi(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Pst_YW(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
end;',
next_date => trunc(SYSDATE)+1+17/24,
interval => 'trunc(SYSDATE)+1+17/24');
commit;
end;
/
第二天检查两job都已正常自动调度。
问题:有一同事报过来,说有两个job已经近一周没有自动调起了,让我帮忙解决。
1、检查:
(1)在生产库中检查,其他的job都能自动调度
(2)select * from all_jobs where job in(2704,2706); 检查正常,并无异常 (dba_jobs或PL/SQL Developer DBMS_Jobs 也可查看)
(3)select * from dba_jobs_running where job in(2704,2706); 在其列表中
结论:进程挂死未完成,导致不能自动调度!
2、解决:先备份两job的内容再将job删除,然后将进程杀掉,并重建
(1)利用上面查出job运行列表中的sid 如 3695,并查出哪些进程需要杀掉,查询语句如下:
select 'call superkill('||a.sid||','||a.SERIAL#||');' KILL_SID,
'kill -9 '||A.PROCESS||';'KILL_PID,A.SID,A.SERIAL#,A.STATUS, A.SCHEMANAME,A.USERNAME,A.MACHINE,OSUSER,A.PROCESS,A.PROGRAM,A.TERMINAL,
A.SERVICE_NAME,A.LOGON_TIME, A.OWNERID,
D.SQL_TEXT,D.SQL_FULLTEXT
from gv$session a, v$sql d
where a.SQL_ADDRESS=d.ADDRESS(+)
and (a.SCHEMANAME = 'REPORT' or a.USERNAME= 'REPORT')
and a.sid=3695
order by a.MACHINE;
杀进程:
(1)上面的superkill如下:
create or replace procedure system.superkill(SESSION_ID BINARY_INTEGER,SERIAL_NUM
BINARY_INTEGER) is
begin
execute immediate 'alter system disconnect session '''||SESSION_ID||','||SERIAL_NUM||'''
immediate' ;
EXCEPTION
WHEN OTHERS
THEN
RAISE;
end superkill;
(2)也可直接 alter system kill session 'sid,serial#';
上面两个原理都差不多。
(3)重建job
如job:2706 的重建:
begin
sys.dbms_job.isubmit(job => 2706,
what => 'declare
vc_out varchar2(2000);
begin
SP_SAP_NEWINCOME_ALL(to_char(SYSDATE-1,''yyyymmdd''),to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2011.Dic_day_all_report_2011(to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Day_Move_Busi(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Pst_YW(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
end;',
next_date => trunc(SYSDATE)+1+17/24,
interval => 'trunc(SYSDATE)+1+17/24');
commit;
end;
/
第二天检查两job都已正常自动调度。
发表评论
-
Oracle函数介绍:decode
2011-12-10 14:49 738Sql代码 select sum( ... -
任重道远迁移路之DB2到Oracle
2011-11-25 10:56 801迁移之路任重而道远, ... -
GLOBAL_NAMES参数的详细研究
2011-11-23 12:59 872Oracle数据库GLOBAL_NAMES参数的相关知识是 ... -
Oracle与MySQL的几点区别
2011-11-21 11:46 722Oracle数据库与MySQL数据库的区别是本文我们主要要介绍 ... -
Oracle 丢失更新问题的解决方案
2011-11-18 14:44 728丢失更新是数据中一个比较常见的经典问题,在做项目时我们有时可能 ... -
ORACLE 临时表空间使用率过高的原因及临时解决方案
2011-11-16 15:47 762数据库temp临时表空间增 ... -
Oracle 10g创建表空间步骤详解
2011-11-15 11:11 743Oracle 10g数据库中,当在数据库中创建用户时,基于应用 ... -
Oracle中的软解析和硬解析
2011-10-14 14:04 661问题一:哪个进程 ... -
F5 BIG-IP支持运行Oracle
2011-10-13 15:14 70410月13日,全球领先的应用交付网络厂商 F5 Netwo ... -
Oracle移动应用跨整个企业应用产品组合,发展势头迅猛
2011-10-12 14:39 1088甲骨文应用开发集 ... -
甲骨文推出oracle社交网络
2011-10-11 14:08 738在甲骨文全球大会 ... -
oracle数据库完整性约束规则
2011-10-10 15:28 621完整性约束用于增强数据的完整性,Oracle提供了5种完整 ... -
Oracle融合应用软件为企业在云计算中带来新的业务变革
2011-10-09 16:18 725Oracle融合应 ... -
Oracle 与戴尔携手:IT与业务融为一体
2011-10-08 14:55 6272011年10月4日,在Oracle Op ... -
应用Oracle组件实现动态Web数据库
2011-09-29 15:45 7751、用Oracle WebServer构建Web数据库应用 ... -
怎样做好数据库管家 怎么管理Oracle数据库
2011-09-28 15:01 685Oracle是一个最早商 ... -
http://www.oracleonline.net/home.php?mod=space&uid=7029&do=blog&quickforward=1&i
2011-09-27 11:56 2239凤凰网科技讯 北京时间9月27日消息,据彭博社报道,甲骨文联席 ... -
甲骨文教育基金会诚邀学生参加2012
2011-09-23 16:38 613· 2012年ThinkQuest竞赛由甲骨文教育基金会( ... -
Oracle在MySQL中新增商业扩展插件
2011-09-20 13:40 558racle目前宣布,支持为MySQL数据库新增商业扩展插件,但 ... -
Oracle认证:提高Oracle10G增量备份速度
2011-09-16 10:52 637问题:怎样才能提高Oracle 10G增量备份的速度? 解答 ...
相关推荐
在Oracle数据库管理中,作业(JOB)是自动化执行任务的重要机制之一。本文将重点探讨Oracle作业中`next_date`字段的更新方式及其背后的工作原理,并通过实际案例深入理解如何设置作业的执行时间。 #### 一、Oracle...
这里分享自己已经跑起来的Oracle版本分布式任务调度平台XXL-JOB资源。 官方只有Mysql版本的DEMO,由于近期单位项目需要,将原来DEMO稍作修改后改成了oracle版本,主要修改工作包括修改配置文件,数据库连接方式,pom...
总的来说,“Java Oracle JOBS 自动调度”这个主题涵盖了Java定时任务的实现、Oracle数据库作业的管理和Java与Oracle的JDBC交互,这些都是在企业级应用中不可或缺的技术点。通过结合这些技术,开发者可以构建出高效...
如果设置的同时运行 job 的数量为 0,则表示 Oracle 定时任务不能自动执行。这可能是由于某个版本的 BUG 导致的。 Step 4:修改设置的同时运行 job 的数量。 输入命令:SQL> ALTER SYSTEM SET JOB_QUEUE_...
在Oracle数据库系统中,"JOB"是用于调度和自动化任务执行的一种功能,它允许你在预定义的时间点运行存储过程、PL/SQL块或其他数据库操作。本文将深入探讨Oracle中的JOB创建,以及如何编写和使用相应的脚本来设定定时...
Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...
Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler(数据库调度器)进行管理。下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler...
Oracle的JOB功能是一种定时任务调度机制,用于在数据库后台自动执行预定义的PL/SQL代码块或存储过程。以下是对Oracle JOB用法的详细总结: 首先,为了启用JOB队列,需要设置初始化参数`job_queue_processes`。通过...
8. **高级特性**:Oracle Job还支持作业链(job chains)、依赖关系、计划窗口(schedule windows)和资源管理,允许根据系统负载或优先级来调度作业。 9. **使用DBMS_ALERT**:对于需要在Job完成时通知用户的场景...
虽然代码中这部分被注释掉了,但它展示了如何使用Oracle的DBMS_JOB包来调度作业。`dbms_job.submit`用于提交一个新的作业,指定作业将执行的过程名称、当前时间以及作业的下一次执行时间。`dbms_job.run`则用于立即...
总的来说,Oracle Job调度存储过程和触发器是数据库管理中不可或缺的工具,它们允许数据库管理员自动化许多常规任务,提高效率,减少人为错误,并确保数据的一致性和准确性。通过灵活地配置和组合这些功能,可以实现...
综上所述,Oracle Job是一个强大的工具,能帮助数据库管理员自动化执行各种任务。通过灵活的配置,可以实现定时执行、根据事件触发、异常处理等功能,极大地提高了数据库的管理和维护效率。理解并熟练掌握这些使用...
- `job_queue_interval` 参数定义了调度作业刷新的频率,单位为秒。默认情况下,Oracle 会每分钟检查一次是否有 Job 需要运行。 3. **查看 Job 参数**: 可以使用 `SHOW PARAMETER job_queue_process` 查看当前的...
- **SGE(Sun Grid Engine / Oracle Grid Engine)**: 功能强大,支持复杂的作业调度策略,适用于大型集群和企业级应用。 - **LSF(Load Sharing Facility)**: 商业软件,提供了高级的功能和更好的技术支持,适用于...
在Oracle数据库系统中,"Job调度存储过程"和"触发器"是两种强大的工具,用于自动化数据库维护和管理任务。本教程将深入探讨这两个概念以及它们如何协同工作以实现定时更新数据库。 首先,我们来理解"Job调度存储...
3. **事务管理**:Oracle支持分布式事务,XXL-JOB在处理多任务调度时,可能会利用Oracle的事务特性来确保数据的一致性。 4. **连接池配置**:使用合适的Oracle数据库连接池,如C3P0或DBCP,以提高数据库连接的复用...
【标题】"Oracle执行调度百度"涉及到的是Oracle数据库系统中的调度功能,这通常指的是Oracle的Automatic Job Queue(AJQ)或者DBMS_SCHEDULER模块。Oracle数据库允许用户在特定时间或间隔执行任务,如数据备份、统计...
Oracle调度程序为数据库管理员和开发人员提供了强大的任务自动化能力。通过合理地设计Job、Program、Chain等组件,并利用Chain Rule来控制任务间的依赖关系,可以构建出高效、灵活的任务执行流程。无论是进行数据...
在Oracle数据库中,Job是一种用于调度定期任务的功能,常被用来自动化执行数据库管理中的各种任务,比如备份、清理临时表空间等。Job主要由`DBMS_JOB`包进行管理和控制,此包提供了提交(new job)、删除(delete job)...
通过合理配置作业队列参数和灵活使用 `dbms_job` 包中的函数,可以有效提高系统的自动化水平和运维效率。希望本文档能够为读者提供实用的指导,帮助大家更好地掌握Oracle作业管理的相关知识和技术。