`

oracle-job管理(转)

阅读更多

 

Oracle Job 管理

 

1.实验环境

      Oracle 9i
 
2.实验资源    
--为了能清楚看到定时器的运行情况,创建一个表
create table job_table(run_time date);

--创建表和存储过程,向表中插入数据
create or replace procedure job_proc is
begin
   insert into job_table(run_time) values(sysdate);
end;
  
3.实验内容
       创建JOB,定期调用 job_proc 存储过程,向job_table表中插入数据
 
4.实验目的
       了解使用命令,来管理oracle Job.
 
5.相关知识
    1、job相关的系统参数 
/*
 * 这个是运行JOB时候所起用的进程数,当然系统里面JOB大于这个数值后,
 * 就会有排队等候的,最小值是0,表示不运行JOB,最大值是36
*/
Job_queue_processes = 2; 
--例       
Alter system set job_queue_processes = 2;

/*
 * 范围在13600之间,单位是秒。定期唤醒进程,判断有没有要执行的job. 
 * 任务调度程序每30秒唤醒一次来确定是否要执行任务
 */
Jpb_queue_interval = 30;
  
/*
 * 修改参数可以通过下面的方法重启进程一次指令(将job_queue_processes设置为0,
 * 在设置为原来的值)如下:
 */
--关闭job进程,等待5--10秒钟
alter system set job_queue_processes=0 
--恢复原来的值
alter system set job_quene_processes=5 
  2、Job相关命令    
/*
    * 注意:执行命令后,要执行commit;
    * 除了删除和启动外,其他的命令大部分可以通过dbms_job.user_jobs表的字段来实现
    */
  --删除job任务jobno:job编号
  dbms_job.remove(jobno);
  --修改job执行的存储过程jobno:job编号,what:存储过程名(也可以是其它)
  dbms_job.what(jobno,what); 
  --修改下次执行时间
  dbms_job.next_date(jobno,next_date);
  --修改间隔时间
  dbms_job.interval(jobno,interval);
  --停止
  dbms_job.broken(jobno,true);
  --启用,next_date,下次执行时间如果不填next_date参数,则马上执行job
  dbms_job.broken(jobno,false,next_date);
  --启动
  dbms_job.run(jobno);
 
6.实验步骤
       第1步创建job任务
    在sql界面和命令行界面都行
--必须申明job,申明后然后由系统自动分配
--job_proc 存储过程名称
--sysdate 下次执行时间
--'TRUNC(sysdate,''mi'') + 1 / (24*60)' 执行频率
declare  
  job number;  
begin  
  dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');   
commit;
end;

     第2步查看 job执行情况(查看user_jobs)   
-- 查看job状态
   select * from user_jobs;
    
    -- user_job部分字段意识
    JOB           --job编号
    LAST_DATE     --job最后一次成功执行的时间
    LAST_SEC      --job最后一次成功执行的开始时间
    THIS_DATE     --job正在执行,但是还没执行完时,这个字段有值,表示本次执行的时间
    THIS_SEC      --job正在执行,但是还没执行完时,这个字段有值,表示本次执行的开始时间
    NEXT_DATE     --下次执行时间
    NEXT_SEC      --下次执行开始时间
    TOTAL_TIME    --job执行的总的时间,以秒为单位(第1次执行时间+第2次执行时间+第3次执行时间)
    BROKEN        --是否终端  Y 是  N没有
    INTERVAL      --运行周期
    FAILURES      --失败次数
    WHAT          --job运行的程序,可以试存储过程也可以试其他
 
   第3步 停止job
SQL>  exec dbms_job.broken(5,true);commit;
 
   第4步  启动job
SQL>  exec dbms_job.broken(5,false);commit; 

   第5步  修改job下次执行时间
SQL> exec dbms_job.next_date(5,to_date('2013-11-01','yyyy-MM-dd'));commit;
          
   第6步 修改job执行频率  
SQL> exec dbms_job.interval(5,'sysdate+3/(24*60)'); commit;
          或者
SQL>  exec dbms_job.interval(5,'trunc(sysdate)+1+1/24'); commit;
   
    第7步骤 删除JOB
SQL> exec dbms_job.REMOVE(5);commit;
 
 
 
7.附录:
   1、DBA_JOBS字段(列) 类型 描述
JOB NUMBER 任务的唯一标示号
LOG_USER VARCHAR2(30) 提交任务的用户
PRIV_USER VARCHAR2(30) 赋予任务权限的用户
SCHEMA_USER VARCHAR2(30) 对任务作语法分析的用户模式
LAST_DATE DATE 最后一次成功运行任务的时间
LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小时,分钟和秒
THIS_DATE DATE 正在运行任务的开始时间,如果没有运行任务则为null
THIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小时,分钟和秒
NEXT_DATE DATE 下一次定时运行任务的时间
NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小时,分钟和秒
TOTAL_TIME NUMBER 该任务运行所需要的总时间,单位为秒
BROKEN VARCHAR2(1) 标志参数,Y标示任务中断,以后不会运行
INTERVAL VARCHAR2(200) 用于计算下一运行时间的表达式
FAILURES NUMBER 任务运行连续没有成功的次数
WHAT VARCHAR2(2000) 执行任务的PL/SQL块
CURRENT_SESSION_LABEL RAW MLSLABEL 该任务的信任Oracle会话符
CLEARANCE_HI RAW MLSLABEL 该任务可信任的Oracle最大间隙
CLEARANCE_LO RAW MLSLABEL 该任务可信任的Oracle最小间隙
NLS_ENV VARCHAR2(2000) 任务运行的NLS会话设置
MISC_ENV RAW(32) 任务运行的其他一些会话参数
 
 2、描述 INTERVAL参数值
每天午夜12点 'TRUNC(SYSDATE + 1)'
每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
 
分享到:
评论

相关推荐

    oracle-Job-管理.pdf

    。。。

    oracle-Job-管理.docx

    。。。

    Oracle创建job

    oracle Job创建、管理、监控,Job运行情况分析,如果创建、删除、停止、修改Job.

    详解 Oracle job 的使用与管理技巧!

    详解 Oracle job 的使用与管理技巧

    Oracle+job+的使用与管理技巧[借鉴].pdf

    Oracle+job+的使用与管理技巧[借鉴].pdf

    Oracle数据库恢复管理器及特殊包应用 (2)

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    job(oracle定时任务)界面管理工具

    job的界面配置管理工具,为你更方便快捷定制定时任务,提高维护者的时间成本,更加安全实用

    用Oracle的DBMS_JOB来实现任务计划管理.pdf

    用Oracle的DBMS_JOB来实现任务计划管理.pdf

    Oracle数据库恢复管理器及特殊包应用 (1)

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    Oracle用RMAN和DBMS_JOB包实现自动存储2

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    oracle定时任务详解

    Oracle中的定时任务是在Oracle系统中是一个非常重要的子系统,运用得当,可以极大的提高我们的系统...而Oracle数据复制的延迟事务队列管理完全是基于Oracle的队列任务,对其的深刻理解有助于我们更好地管理数据复制。

    Oracle数据库维护培训

    描述 Oracle 服务器的体系结构及其主要构件 列举用户连接到 Oracle 实例所涉及的...检查job状态 监听管理 本地服务名配置 处理简单的连接问题 错误信息查看工具oerr Oracle常见错误 手工收集现场信息 RDA收集现场信息

    oracle各种文档

    JOB使用方法.doc ORACLE RMAN快速入门指南.doc ORACLE 常见问题.doc ORACLE 常用命令.doc ORACLE 开发管理经验.doc ORACLE 回滚段管理.doc ORACLE 碎片整理.doc Oracle WebServer中文手册 .chm v2.0.pdfPrentice...

    Oracle 主要配置文件介绍

    "/u02/app/oracle/oradata/cams/control02.ctl", "/u02/app/oracle/oradata/cams/control03.ctl") 4 调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒 JOB_QUEUE_PROCESSES=2 JOB_...

    Kettle的Web端管理工具Kettle-Manager.zip

    本系统当前支持oracle和mysql项目功能job运行参数设置,可以在页面上设置作业运行参数,每次运行作业时会用设置的参数覆盖默认值,这个很多人用不上。定时设置,操作界面与kettle中的开始控件界面一致,这个可能是...

    ORACLE大表分区

    支持自动ORACLE大表分区: 版本进度: 31. 20110420 V2.2 支持任意表任意时间字段分区 以下为安装部署部分: 1.分区相关脚本部署执行顺序,安装前请确保该用户拥有管理员权限, 同时请执行GRANT CREATE ANY TABLE ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

Global site tag (gtag.js) - Google Analytics