重庆思庄Oracle、Redhat认证学习论坛
标题: oracle查询Scheduler Job [打印本页]
作者: 王亮 时间: 2019-12-27 17:12
标题: oracle查询Scheduler Job
本帖最后由 王亮 于 2019-12-27 17:16 编辑
Oracle的Scheduler不仅仅可以提供自动运行本地Oracle程序单元(包括PL/SQL匿名块,PL/SQL存储过程,JAVA存储过程),还可以运行Oracle数据库之外的本地或者远程服务器上的可以执行程序,例如应用,shell脚本或者批处理文件。
对于Scheduler的定义方式,Oracle提供了以下三种方式:
1.基于时间(Time-based scheduling)的日程
这种方式就是我们最常见到的,功能类似于anacron的定义方式,它可以通过指定一段时间,甚至永久的日程,来重复的在指定的时间点完成某项特定的任务。
2.基于事件(Events-based scheduling)的日程
可以在发生系统事件或者业务事件的时候,对它们进行回应来触发相关的计划任务,就像触发器,满足特定条件,或者发生指定事件,就可以触发相关的任务。这也是通过anacron没有办法完成的一种强大功能。
3.独立(Dependency scheduling)日程
这一类的日程是可以通过上一件日程的完成来触发的,上一次的Job完成之后,则会触发下一个Job,这样就形成了一条“作业链”(Job Chain),需要和基于事件的日程区分的是,系统事件和业务事件并不是一丁是之前的Job。
检查job经常使用的视图:
*_SCHEDULER_RUNNING_JOBS:描述正在运行的Job的相关信息
*_SCHEDULER_JOB_RUN_DETAILS:描述已经完成的Job是否成功,记录相关日志的视图,这里记录着所有已经执行完毕的日程
*_SCHEDULER_SCHEDULES:描述当前数据库所有已知的日程。
*_SCHEDULER_PROGRAMS:描述当前数据库已经定义完毕的程序。
*_SCHEDULER_JOBS:描述当前数据库已经定义完毕的作业。
要看系统中Job的信息与执行后状态,可以使用以下SQL
查询scheduler job信息
Selectschedule_name,start_date,repeat_interval,end_date from dba_scheduler_schedules;
查询scheduler job运行状态
selectlog_id,log_date,status,additional_info from dba_scheduler_job_run_details;
或
selectjob_name,job_creator,program_name,schedule_name,to_char(start_date,'yyyy-mm-ddhh24:mi:ss'),state from dba_scheduler_jobs;
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) |
Powered by Discuz! X3.2 |