ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle job 介绍

oracle job 介绍

原创 Linux操作系统 作者:wuxidba 时间:2010-10-21 19:12:09 0 删除 编辑

 

 

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

  1. sql> alter system set job_queue_processes=n;(n>0)  
  2. job_queue_processes 

最大值为1000

查看job queue 后台进程

  1. 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。

  1. PROCEDURE Broken (job  IN binary_integer,  
  2. BrokenIN boolean,  
  3. next_date IN date :=SYSDATE)  

job参数是工作号,它在问题中唯一标识工作。

broken参数指示此工作是否将标记为破――TRUE说明此工作将标记为破,而FLASE说明此工作将标记为未破。next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。

job如果由于某种原因未能成功之行,Oracle将重试16次后,还未能成功执行,将被标记为broken重新启动状态为broken的job,有如下两种方式;

a、利用dbms_job.run()立即执行该job

  1. sql>begin  
  2. sql>dbms_job.run(:jobno)  

该jobno为submit过程提交时返回的job number

  1. sql>end;  
  2. sql>/  

b、利用dbms_job.broken()重新将broken标记为false

  1. sql>begin  
  2. sql>dbms_job.broken (:job,false,next_date)  
  3. sql>end;  
  4. sql>/  

以上的相关内容就是对Oracle job的用法的部分介绍,望你能有所收获。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23895263/viewspace-676493/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle job用法
下一篇: oracle job 用法2
请登录后发表评论 登录
全部评论

注册时间:2010-05-12

  • 博文量
    64
  • 访问量
    73601