`
longgangbai
  • 浏览: 7330811 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle Job使用和管理

 
阅读更多
Oracle job 管理
查看数据库job
select * from dba_jobs;
初始化相关的参数:job_queue_process
 alter system set job_queue_process=1000 scope=spfile;
  建议最大job进程数不要超过1000,oracle11g默认job队列进程数为1000.
  
  dba_jobs:描述数据库所有的job信息. 
		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) 任务运行的其他一些会话参数


    描述 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)'




  user_jobs:描述当前用户所有的job信息.
  dba_jobs_running:查看正在运行的job.
  
  根据后台trace文件和alertlog查看job的情况
  show parameter background_dump_dest;
  
  
  停止一个Job操作
  exec dbms_job.broken(1,true);
  commit;
  启动一个job操作
  exec dbms_job.broken(1,false);
  commit;
  

  
  
  查看job的具体作用:
  select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),
  to_char(next_date,'yyyy-mm-dd HH24:mi:ss'),interval 
  from dba_jobs ;
  
  创建一个定时任务
  创建之后非立刻启动:
  1.创建一个测试表
     create table test ( a date);
  2.创建job调用的存储过程
    create or replace procedure myproc 
      as 
	begin
	  insert into test values(sysdate);
	end;
    /
   3.创建一个Job
	   variable job number;
	   begin
		 dbms_job.submit(:job,'MYPROC;',sysdate,'sysdate+1/1440');
	   end;
	   /
   4.启动定时任务
       begin
	     dbms_job.run(:job);
	   end;
	   /
   5.测试job是否插入数据
     select * from test;
	 
	删除JOb
	 begin
	    dbms_job.remove(:job);
	 end;
	 /
	 
	利用dbms_job.run()立即执行该job
	 begin
	   dbms_job.run(:jobNo);
	 end ;
	 /
	 
	 利用dbms_job.broken()重新将broken标记为false
	 begin
	   dbms_job.broken(:jobNo,false,next_date);
	 end;
	 /
	


  实例2,创建之后非立刻启动:
 1.创建一个测试表
     create table a ( a date);
  2.创建job调用的存储过程
    create or replace procedure myproc 
      as 
	begin
	  insert into a values(sysdate);
	end;
    /
   3.创建一个Job
	   variable job number;
	   begin
		 dbms_job.submit(:job,'TEST;',sysdate,'sysdate+1/1440');
	   end;
	   /
       commit;
	4.查看job编号
	select job,what from user_jobs;
	5.运行job
	begin
	  dbms_job.run(70);
	end;
	/
	commit;
	5.检查数据
	select * from a;

Oracle 官方DBA_JOBS说明:

http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/statviews_4100.htm#REFRN23105

分享到:
评论

相关推荐

    oracle job使用详解

    Oracle Job 的使用对于实现定时任务、批处理操作和维护工作至关重要。以下是对 Oracle Job 使用的详细解释: 1. **创建 Job**: 创建 Job 可以通过 `DBMS_JOB.SUBMIT` 存储过程完成。例如,在提供的代码中,创建了...

    Oracle Job的用法

    以下是对Oracle Job使用方法和技巧的详细说明: 一、创建Oracle Job Oracle Job的创建通常通过DBMS_SCHEDULER包中的程序来完成。首先,你需要创建一个job,指定其执行的PL/SQL块,如下面的例子所示: ```sql BEGIN...

    ORACLE如何停止一个JOB

    在Oracle数据库管理中,有时我们需要停止正在运行的JOB,这可能是由于各种原因,如发现错误、优化性能或调整资源分配。本文将详细阐述如何在Oracle中查询并停止正在运行的JOB,包括关键步骤、涉及的表与视图以及具体...

    oracle job

    Oracle Job是Oracle数据库中的一种调度工具,用于在指定的时间执行一系列数据库操作,如PL/SQL块、存储过程、包或操作系统命令。Oracle Job是Oracle的...理解并熟练使用Oracle Job是数据库管理和优化的关键技能之一。

    oracleJob创建脚本

    ### Oracle Job 创建脚本详解 ...综上所述,Oracle Job 是一个非常强大的工具,通过合理的配置和使用,可以在数据库管理中发挥重要作用。在实际应用中,还需要结合具体情况灵活运用,不断优化和完善Job的设置。

    oraclejob例子

    下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler简介** Oracle Database Scheduler是Oracle 10g及以后版本引入的一个功能强大的任务调度工具,它取代了之前...

    ORACLE创建JOB脚本

    本文将深入探讨Oracle中的JOB创建,以及如何编写和使用相应的脚本来设定定时任务。 首先,我们需要理解Oracle中的DBMS_JOB包,这是Oracle提供的一组过程,用于创建、修改和管理JOB。DBMS_JOB包包含以下主要过程: ...

    Oracle中job的使用详解

    dbms_job package 是 Oracle 中的 Job 功能的核心包,它提供了一系列的子过程来管理和执行 Job。主要的子过程有: * Broken() 过程:用于标志 Job 中断,以后不会运行。 Job 中的参数说明: * JOB:任务的唯一...

    oracle job实例 测试通过

    从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...

    oracle job 创建

    对于初学者来说,理解如何创建、运行和管理 Oracle Job 是十分重要的。 1. **Job 的创建**: 创建一个 Oracle Job 需要使用 `DBMS_JOB` 包中的 `SUBMIT` 子程序。在提供的示例中,我们看到以下步骤: - 首先,...

    xxl-job oracle 适配版本

    首先,Oracle数据库是一种广泛使用的、功能强大的关系型数据库管理系统,尤其在大型企业级应用中,其稳定性和性能表现卓越。XXL-JOB选择适配Oracle,意味着它可以更好地服务于那些使用Oracle作为数据存储的企业。 ...

    Oracle JOB 用法小结

    Oracle的JOB功能是一种定时任务调度机制,用于在...总之,Oracle的JOB机制提供了强大的定时任务处理能力,通过`dbms_job`包提供的各种过程,可以灵活地管理和控制后台作业的执行,满足系统自动化维护和数据处理的需求。

    oracle的job定时

    同时,可以使用`DBMS_SCHEDULER.INFO`或`DBMS_JOB.INFO`查询Job的状态和历史。 5. **维护和调整**:在实际使用中,可能需要暂停、删除或调整已存在的Job。`DBMS_SCHEDULER.DISABLE`可以暂停Job,`DBMS_SCHEDULER....

    oracle job创建脚本

    你可以使用`DBMS_JOB.INFO`查询Job的状态,或者使用`DBMS_SCHEDULER`包(在Oracle 10g及以后版本推荐)进行更高级的Job管理,包括查看Job日志、暂停、恢复和删除Job。 8. **注意事项**: - 修改`next_date`以适应...

    oracle 创建job实例

    Oracle 创建 Job 实例 Oracle 创建 Job 实例是指...创建 Job 实例需要遵循特定的步骤和配置,包括确保 Oracle 的工作模式允许启动任务队列管理器、配置任务队列管理器的启动参数、将任务加入到数据库的任务队列中等。

    oracle-Job-管理.pdf

    Oracle Job管理是Oracle数据库中的一个关键特性,用于自动化执行数据库任务,如定时备份、数据清理或报告生成等。以下是对Oracle Job管理的详细解释: 1. **创建Job**: 在Oracle中,你可以通过创建存储过程来定义...

    创建oracle job

    - **Job**:Job是由Oracle Scheduler管理的一个可调度的单元,它可以关联到一个程序(Program)和一个调度(Schedule),并且可以在指定的时间点或者周期内执行。 - **Program**:Program是一个存储的过程或块,它定义了...

    oracle中JOB总结

    Oracle数据库利用SNP(Scheduler)进程来管理和执行这些JOB。 SNP(Scheduler)进程是Oracle数据库的一个核心组成部分,它的主要职责是监控和执行JOB。SNP的独特之处在于其自我恢复能力——即使SNP进程意外终止,...

    Oracle企业管理器OEM

    Oracle 企业管理器(OEM 2.1)使用指南内容 Oracle 企业管理器(OEM ...通过了解 Oracle 企业管理器(OEM 2.1)的体系结构和框架设置,用户可以更好地使用 Oracle 企业管理器来管理和监控 Oracle 数据库和相关的系统。

Global site tag (gtag.js) - Google Analytics