首页 > Linux操作系统 > Linux操作系统 > oracle job 介绍
1. Enable job queue
SQL> alter system enable restrict session;
2. make sure oracle has set the job queue parameter
in orcl(oracle sid).ora,
need to add
job_queue_process = N (process number)
job_queue_interval= N (awake interval)
3. add job to job queue
dbms_job.summit(jobnumber, procedure+parameter,whentorun, next_run_interval)
If next_run_interval is null, then the job will be deleted from queue after running.
next_run_interval will be set as sysdate+interval_time.
sysdate+1/48 = 半小时一次 (1×24×60/48=30min)
sysdate+1/360 = 4分钟一次(1×24×60/360=4min)
4. run the job
SQL>; grant execute on dbms_job to scott;
begin
dbms_job.run(47); --47 is job number in user_jobs
end;
5.check job result
sql>select job,next_date,next_sec,failures,broken from user_jobs;
job next_date next_sec failures broken
300 2000/10/10 11:45:15 0 N
这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来重新执行它。
dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。
以下的文章主要是介绍 Oracle job的用法的实际操作步骤,本文主要告诉你在在进行Oracle job中,如何设置初始化的参数job_queue_processes,以及相关重要步骤的详细解析,以下就是文章的详细介绍。
一、设置初始化参数job_queue_processes
- sql> alter system set job_queue_processes=n;(n>0)
- job_queue_processes
最大值为1000
查看job queue 后台进程
- sql>select name,description from v$bgprocess;
二,dbms_job package 用法介绍
包含以下子过程:
Broken()过程。
change()过程。
Interval()过程。
Isubmit()过程。
Next_Date()过程。
Remove()过程。
Run()过程。
Submit()过程。
User_Export()过程。
What()过程。
1、在Oracle job的用法中Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。
这个过程有三个参数:job 、broken与next_date。
- PROCEDURE Broken (job IN binary_integer,
- BrokenIN boolean,
- next_date IN date :=SYSDATE)
job参数是工作号,它在问题中唯一标识工作。
broken参数指示此工作是否将标记为破――TRUE说明此工作将标记为破,而FLASE说明此工作将标记为未破。next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。
job如果由于某种原因未能成功之行,Oracle将重试16次后,还未能成功执行,将被标记为broken重新启动状态为broken的job,有如下两种方式;
a、利用dbms_job.run()立即执行该job
- sql>begin
- sql>dbms_job.run(:jobno)
该jobno为submit过程提交时返回的job number
- sql>end;
- sql>/
b、利用dbms_job.broken()重新将broken标记为false
- sql>begin
- sql>dbms_job.broken (:job,false,next_date)
- sql>end;
- sql>/
以上的相关内容就是对Oracle job的用法的部分介绍,望你能有所收获。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23895263/viewspace-676493/ ,如需转载,请注明出处,否则将追究法律责任。