- 浏览: 495360 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (247)
- java框架-struts2 (11)
- java框架-spring (6)
- 开发工具-myeclipse (8)
- 技术标准-webservice (1)
- 技术标准-opensaml2 (1)
- 开发语言-java (13)
- 开发语言-asp (4)
- 数据库-oracle (25)
- 数据库-mysql (4)
- 前端开发-css (15)
- 前端开发-javascript (34)
- 图片处理 (7)
- 事务处理 (1)
- SVN (2)
- 系统-linux (41)
- 系统-solaris (13)
- 系统-windows (8)
- web容器-glassfish (5)
- 单点登录-Shibboleth (0)
- 其他技术 (18)
- 技术无关 (6)
- 开发语言-jsp (2)
- 前端开发-html (1)
- LDAP相关 (11)
- 单点登录-cas (0)
- php (0)
- 门户-uportal (0)
- 单点登录-opensso (1)
- json (1)
- Android (2)
最新评论
-
wzwahl36:
http://www.atool.org/ico.php这个生 ...
Photoshop制作Favicon.ico图标(转载) -
wgimperial:
帮我解决了问题,谢谢LZ
如何让 href 失效(转) -
Finishx:
[color=olive][/color][size=medi ...
iframe跨域(转) -
q79969786:
不能删,上了这个workspace就是空的了
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer -
hw1287789687:
showrev
在SOLARIS下如何查看版本号
SQL> variable job1 number; SQL> begin 2 dbms_job.submit(:job1,'pro_synchronize_bzks;',sysdate,'TRUNC(SYSDATE + 1) + 22/24'); 3 commit; 4 end; 5 / PL/SQL procedure successfully completed job1 --------- 62
关于间隔时间:
sysdate+1/24 从起始日期开始每隔1小时执行
sysdate+1/1440 从起始日期开始每隔1分钟执行
sysdate+1/86400 从起始日期开始每隔1秒钟执行
TRUNC(SYSDATE + 1) + 20/24 每天晚上8点 钟 执行
SVRMGR> select * from dba_jobs;
初始化相关参数job_queue_processes
alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位
DBA_JOBS describes all jobs in the database.
USER_JOBS describes all jobs owned by the current user
1 select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),to_char(next_date,'yyyy-mm-dd HH24:m),interval from dba_jobs where job in (325,295)
2 select job,what,last_date,next_date,interval from dba_jobs where job in (1,3);
查询job的情况。
show paramter background_dump_dest.
看alter.log 和trace
SVRMGR> select * from dba_jobs;
初始化相关参数job_queue_processes
alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000
job_queue_interval = 10 //调度作业刷新频率秒为单位
DBA_JOBS describes all jobs in the database.
USER_JOBS describes all jobs owned by the current user
1 select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),to_char(next_date,'yyyy-mm-dd HH24:m),interval from dba_jobs where job in (325,295)
2 select job,what,last_date,next_date,interval from dba_jobs where job in (1,3);
查询job的情况。
show paramter background_dump_dest.
看alter.log 和trace
请问我如何停止一个JOB
SQL> exec dbms_job.broken(1,true)
PL/SQL 过程已成功完成。
SQL>commit //必须提交否则无效
启动作业
SQL> exec dbms_job.broken(1,false)
PL/SQL 过程已成功完成。
停其他用户的job
SQL>exec sys.dbms_ijob.broken(98,true);
SQL>commit;
============================
exec dbms_job.broken(:job) 停止
exec dbms_job.broken(186,true) //标记位broken
exec dbms_job.broken(186,false)//标记为非broken
exec dbms_job.broken(186,false,next_day(sysdate,'monday')) //标记为非broken,指定执行时间
exec dbms_job.remove(:job);删除
exec dbms_job.remove(186);
commit;
把一个broken job重新运行
三、查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息
创建JOB
variable jobno number;
begin
dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
commit;
end;
print jobno
例如,我们已经建立了一个存储过程,其名称为my_job,在sql/plus中以scott用户身份登录,执行如下命令:
sql> variable n number;
sql> begin
dbms_job.submit(:n‘my_job;’,sysdate,
‘sysdate+1/360’);
commit;
end;
Sql> print :n;
系统提示执行成功。
Sql> print :n;
系统打印此任务的编号,例如结果为300。
简单例子
一个简单例子:
创建测试表
SQL> create table TEST(a date);
表已创建。
创建一个自定义过程
SQL> create or replace procedure MYPROC as
2 begin
3 insert into TEST values(sysdate);
4 end;
5 /
过程已创建。
创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;
4 /
PL/SQL 过程已成功完成。
运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /
PL/SQL 过程已成功完成。
SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from TEST;
时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24
删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 /
PL/SQL 过程已成功完成。
=======================================
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>/
========================================
SQL> create table a(a date);
Table created
创建一个过程
SQL> create or replace procedure test as
2 begin
3 insert into a values(sysdate);
4 end;
5 /
Procedure created
提交作业
SQL> declare
2 job1 number; //定义一个数字型变量
3 begin
4 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); //按分钟算一天1440分钟
5 end;
6 /
PL/SQL procedure successfully completed
job1
---------
4
SQL> commit;
Commit complete
运行作业
SQL> begin
2 dbms_job.run(4);
3 end;
4 /
PL/SQL procedure successfully completed
删除作业
SQL> begin
2 dbms_job.remove(4);
3 end;
4 /
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
job change//修改作业
execute dbms_job.change(186,null,null,'sysdate+3');
execute dbms_job.change(186,'scott.test(update)');
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) 任务运行的其他一些会话参数
描述 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)'
【转自www.bitsCN.com 】
发表评论
-
Oracle连接相关
2013-10-14 14:03 645查看当前的连接数: select count(*) fro ... -
查询oracle某用户下所有的表
2013-09-27 14:31 734select t.TABLE_NAME from dba_t ... -
查询修改ORACLE的server、客户端和导出dmp文件的字符集编码方式[转]
2013-07-29 16:13 926原文:http://hi.baidu.com/anshang ... -
java中c3p0数据库重启后自动重连配置
2012-08-21 13:33 1704一、几个参数详解 (1)breakAfterAcquireF ... -
在oracle里自定义一个字符串的聚集函数
2012-08-01 11:18 966一、定义type、 type body、function c ... -
c3p0数据源用户名密码加密
2012-05-03 11:37 2513一、cn.com.encrypt.java package ... -
查看oracle数据库版本命令
2012-03-15 13:59 1017SQL> select banner from sys ... -
oracle进行分组后,取出每组的前几条数据
2011-12-15 11:51 2586SELECT * FROM (SELECT 分组的字段名, ... -
jdbc连接oracle实例
2010-12-31 16:51 2807import java.sql.Connection; im ... -
to_date to_char 示例sql语句
2010-09-28 16:17 1342INSERT INTO base_userandorgani ... -
oracle查询一张表的所有字段及字段类型
2010-09-28 16:10 2792select t.COLUMN_NAME,t.DATA_TYP ... -
procedure实例2
2010-09-28 15:50 953create or replace procedure pro ... -
procedure实例1
2010-09-28 15:47 776create or replace procedure d ... -
oracle的显式授权和隐式授权(转)
2010-09-19 11:21 3034原文:http://www.blogjava.net/haha ... -
查看oracle监听器状态
2010-09-17 16:24 1624lsnrctl status -
oarcle安装Check kernel parameters(转)
2010-05-28 11:00 2711原文:http://shaoxi88888.blog.163. ... -
查看Oracle字符集及如何修改字符集(转)
2010-05-21 09:34 5850一、什么是oracle字符集 ... -
PL/SQL Developer如何连接数据库
2010-05-02 16:12 1866首先应该是先安装oracle客户端,后安装pl/sql dev ... -
在普通web项目的servlet和filter中获取spring上下文
2010-05-02 16:01 2445之前一直是在web项目中使用struts2然后通过plugin ... -
Oracle中如何获取汉字的拼音?使用函数。
2010-04-12 11:13 1359(1)创建如下的函数: CREATE OR REPLA ...
相关推荐
Oracle Job管理是Oracle数据库中的一个关键特性,用于自动化执行数据库任务,如定时备份、数据清理或报告生成等。以下是对Oracle Job管理的详细解释: 1. **创建Job**: 在Oracle中,你可以通过创建存储过程来定义...
综上所述,Oracle Job是一个强大的工具,能帮助数据库管理员自动化执行各种任务。通过灵活的配置,可以实现定时执行、根据事件触发、异常处理等功能,极大地提高了数据库的管理和维护效率。理解并熟练掌握这些使用...
Oracle Job管理是数据库中用于定时执行任务的一种机制,它允许用户安排存储过程、PL/SQL块或其他数据库操作在预设的时间点自动运行。在Oracle 9i版本中,我们可以使用SQL命令或者DBMS_SCHEDULER包来创建、修改和管理...
Oracle Job 提供了一种灵活的方式来自动化数据库维护任务,确保在特定时间执行关键操作,对于大型企业级应用和数据库管理系统尤其重要。了解并熟练使用 Job 功能,有助于提高数据库的效率和可靠性。
在Oracle数据库管理中,有时我们需要停止正在运行的JOB,这可能是由于各种原因,如发现错误、优化性能或调整资源分配。本文将详细阐述如何在Oracle中查询并停止正在运行的JOB,包括关键步骤、涉及的表与视图以及具体...
在Oracle数据库中,Job是一种用于调度定期任务的功能,常被用来自动化执行数据库管理中的各种任务,比如备份、清理临时表空间等。Job主要由`DBMS_JOB`包进行管理和控制,此包提供了提交(new job)、删除(delete job)...
Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler(数据库调度器)进行管理。下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler...
Oracle Job是Oracle的DBMS_SCHEDULER或之前版本中的DBMS_JOB包的一部分,它允许数据库管理员规划、监控和管理长时间运行的任务。 Oracle Job的创建通常涉及以下步骤: 1. **创建Job**:使用DBMS_SCHEDULER或DBMS_...
从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...
首先,我们需要理解Oracle中的DBMS_JOB包,这是Oracle提供的一组过程,用于创建、修改和管理JOB。DBMS_JOB包包含以下主要过程: 1. DBMS_JOB.BEGIN_JOB:这个过程用于创建一个新的JOB,它会返回一个job编号,这个...
Oracle的`dbms_job`包提供了多种用于管理JOB的方法: 1. `Broken()`过程用于更新已提交作业的状态,通常用于将一个破碎的作业标记为未破碎。它接受三个参数:作业号(job)、是否破碎(broken)以及下次运行时间...
对于初学者来说,理解如何创建、运行和管理 Oracle Job 是十分重要的。 1. **Job 的创建**: 创建一个 Oracle Job 需要使用 `DBMS_JOB` 包中的 `SUBMIT` 子程序。在提供的示例中,我们看到以下步骤: - 首先,...
你可以使用`DBMS_JOB.INFO`查询Job的状态,或者使用`DBMS_SCHEDULER`包(在Oracle 10g及以后版本推荐)进行更高级的Job管理,包括查看Job日志、暂停、恢复和删除Job。 8. **注意事项**: - 修改`next_date`以适应...
Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...
在Oracle数据库管理中,创建Job是一项重要的功能,可以帮助用户自动化执行一些周期性的任务,比如定期备份数据、更新统计信息等。本文将详细介绍如何在Oracle环境中创建Job,并通过具体的示例来解释各个步骤。 ####...
3. **事务管理**:Oracle支持分布式事务,XXL-JOB在处理多任务调度时,可能会利用Oracle的事务特性来确保数据的一致性。 4. **连接池配置**:使用合适的Oracle数据库连接池,如C3P0或DBCP,以提高数据库连接的复用...
Oracle 企业管理器(OEM 2.1)使用指南内容 Oracle 企业管理器(OEM 2.1)是 Oracle 公司提供的一款企业管理软件,旨在帮助用户对 Oracle 数据库和相关的系统进行监控和管理。下面是对 Oracle 企业管理器(OEM 2.1...
Oracle 创建 Job 实例 Oracle 创建 Job 实例是指...创建 Job 实例需要遵循特定的步骤和配置,包括确保 Oracle 的工作模式允许启动任务队列管理器、配置任务队列管理器的启动参数、将任务加入到数据库的任务队列中等。
Oracle数据库利用SNP(Scheduler)进程来管理和执行这些JOB。 SNP(Scheduler)进程是Oracle数据库的一个核心组成部分,它的主要职责是监控和执行JOB。SNP的独特之处在于其自我恢复能力——即使SNP进程意外终止,...
Oracle中的Job主要用于数据库中任务的定时执行,具体来说是定时执行存储过程。使用Job可以让一些需要周期性处理的业务逻辑自动化运行,减少编程工作量,提升执行效率和程序稳定性。在Oracle中,Job的实现依赖于Job ...