Oracle Job定时任务详解、跨数据库数据同步

  业务需求,需要与A公司做数据对接,我们公司用的Oracle,A公司用的SQL Server数据库,如何跨数据库建立连接呢?这里使用的是DBLink,不会配置的请看我的另外一篇博客:https://www.cnblogs.com/chenyanbin/p/11291752.html

  如果做数据同步呢?上面我们已经通过DBLink与SQL Server建立连接了,那么我们就可以获取A公司表中的数据。在通过Oracle Job定时任务,具体JOB还有那些功能,这里不做详细介绍了,百度上一大堆,这里我们只讲解Oracle Job创建步骤。

  我们已经知道job是一个定时任务,也就是说可以在一个规定的时间内,执行某一项任务,这个任务就是“存储过程”。

第一步:先创建存储过程(做一个简单DEMO往一张表插入当前时间)

 1 create or replace procedure proc_add_test as
 2 begin
 3   insert into test values (to_char(sysdate, ‘yyyy-mm-dd hh:mi‘));/*向测试表插入数据*/
 4   commit; /*提交*/
 5 end;
 6
 7
 8 create or replace procedure 存储过程名称 as
 9 begin
10   /*业务逻辑片段*/
11 end;

第二步:创建Oracle Job定时任务,实现每隔多长时间调用存储过程

 1 declare
 2   job number;  /*job:定时器名称*/
 3 BEGIN
 4   DBMS_JOB.SUBMIT(
 5         JOB => job,  /*自动生成JOB_ID*/
 6         WHAT => ‘proc_add_test;‘,  /*需要执行的存储过程名称或SQL语句*/
 7         NEXT_DATE => sysdate+3/(24*60),  /*初次执行时间-下一个3分钟*/
 8         INTERVAL => ‘trunc(sysdate,‘‘mi‘‘)+1/(24*60)‘ /*每隔1分钟执行一次*/
 9       );
10   commit;
11 end;

搞定,到目前为止,一个简单的Oracle Job已经创建好了,

job基本用法!!!

1、查询job信息

1 SELECT * FROM user_jobs;

字段介绍

2、停止Oracle Job任务

 1 begin
 2 dbms_job.broken(4, true, sysdate);
 3 commit;
 4 end;
 5
 6
 7
 8 语法:
 9 begin
10 dbms_job.broken(任务的唯一标识符, true, sysdate);
11 commit;
12 end;

3、启用Oracle Job任务

1 begin
2 dbms_job.run(4);
3 end;
4
5 语法:
6 begin
7 dbms_job.run(任务的唯一标识符);
8 end;

4、INTERVAL参数常用值示例

 1 每天午夜12点            ‘‘TRUNC(SYSDATE + 1)‘‘
 2 每天早上8点30分         ‘‘TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)‘‘
 3 每星期二中午12点         ‘‘NEXT_DAY(TRUNC(SYSDATE ), ‘‘‘‘TUESDAY‘‘‘‘ ) + 12/24‘‘
 4 每个月第一天的午夜12点    ‘‘TRUNC(LAST_DAY(SYSDATE ) + 1)‘‘
 5 每个季度最后一天的晚上11点 ‘‘TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ‘‘Q‘‘ ) -1/24‘‘
 6 每星期六和日早上6点10分    ‘‘TRUNC(LEAST(NEXT_DAY(SYSDATE, ‘‘‘‘SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)‘‘
 7 每3秒钟执行一次             ‘sysdate+3/(24*60*60)‘
 8 每2分钟执行一次           ‘sysdate+2/(24*60)‘
 9
10 1:每分钟执行
11 Interval => TRUNC(sysdate,‘mi‘) + 1/ (24*60) --每分钟执行
12 interval => ‘sysdate+1/(24*60)‘  --每分钟执行
13 interval => ‘sysdate+1‘    --每天
14 interval => ‘sysdate+1/24‘   --每小时
15 interval => ‘sysdate+2/24*60‘ --每2分钟
16 interval => ‘sysdate+30/24*60*60‘  --每30秒
17 2:每天定时执行
18 Interval => TRUNC(sysdate+1)  --每天凌晨0点执行
19 Interval => TRUNC(sysdate+1)+1/24  --每天凌晨1点执行
20 Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60)  --每天早上8点30分执行
21 3:每周定时执行
22 Interval => TRUNC(next_day(sysdate,‘星期一‘))+1/24  --每周一凌晨1点执行
23 Interval => TRUNC(next_day(sysdate,1))+2/24  --每周一凌晨2点执行
24 4:每月定时执行
25 Interval =>TTRUNC(LAST_DAY(SYSDATE)+1)  --每月1日凌晨0点执行
26 Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24  --每月1日凌晨1点执行
27 5:每季度定时执行
28 Interval => TRUNC(ADD_MONTHS(SYSDATE,3),‘q‘)  --每季度的第一天凌晨0点执行
29 Interval => TRUNC(ADD_MONTHS(SYSDATE,3),‘q‘) + 1/24  --每季度的第一天凌晨1点执行
30 Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),‘q‘)-1/24  --每季度的最后一天的晚上11点执行
31 6:每半年定时执行
32 Interval => ADD_MONTHS(trunc(sysdate,‘yyyy‘),6)+1/24  --每年7月1日和1月1日凌晨1点
33 7:每年定时执行
34 Interval =>ADD_MONTHS(trunc(sysdate,‘yyyy‘),12)+1/24  --每年1月1日凌晨1点执行  

原文地址:https://www.cnblogs.com/chenyanbin/p/11356933.html

时间: 2024-08-04 07:52:38

Oracle Job定时任务详解、跨数据库数据同步的相关文章

ORACLE物化视图详解

一.物化的一般用法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处. 1.物化视图的类型ON DEMAND.ON COMMIT.二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图"需要"被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一

ORACLE用户PROFILE详解

ORACLE用户PROFILE详解   一.官网说明 Oraclerecommends that you use the Database Resource Manager rather than the SQLstatement to establish resource limits. The Database Resource Manager offers amore flexible means of managing and tracking resource use. Purpose

Oracle执行计划详解

 简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容. 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scan

oracle rac IP详解

rac环境下vip/public/private IP的区别 每个节点要2块网卡, 3个IP,虚拟IP或者叫做业务IP,单个网卡当掉可以"漂"到其他网卡是继续提供服务 在Oracle RAC环境下,每个节点都会有多个IP地址,分别为Public/Private/Vip,这三个IP到底有啥区别呢?分别用在那些场合呢?来看看老外的回答. 1. private IP address is used only for internal clustering processing (Cache

Oracle AWR 报告详解

转自:http://blog.csdn.net/laoshangxyc/article/details/8615187 持续更新中... Oracle awr报告详解 DB Name DB Id Instance Inst num Startup Time Release RAC ORCL 1295334343 orcl 1 09-1月 -12 18:01 11.2.0.1.0 NO DB Name :数据库名 DB Id :数据库Id(获取方法select dbid from v$databa

oracle监听详解

典型的监听配置模板: 创建监听有多重方式:(1)netca (2)netmgr (3)手工编辑listener.ora文件等: 下面是一个监听配置的标准模板: 配置文件中的关键之解析: (1) PROTOCOL指的是监听接收链接的协议: (2) HOST是指的监听运行的主机或者IP地址: (3) PORT指的是监听运行的端口. (4) SID_NAME指的是监听服务的实例名. (5) GLOBAL_NAME指的是监听服务的服务名: (6) ORACLE_HOME指的是监听服务的$ORACLE_H

解决: ORA-02199: missing DATAFILE/TEMPFILE clause [Oracle OMF 功能详解]

OMF,全称是Oracle Managed Files,即Oracle文件管理,使用OMF可以简化管理员的管理工作,不用指定文件的名字.大小.路径,其名字,大小,路径由oracle 自动分配.在删除不再使用的日志.数据.控制文件时,OMF也可以自动删除其对应的OS文件. OMF支持下列文件的自动管理: 表空间 日志文件(联机) 控制文件 前提条件:需要为这些类型文件设定相关参数. 一.数据文件的OMF管理 数据文件管理参数:db_create_file_dest db_create_file_d

oracle HA 高可用性详解(之二,深入解析TAF,以及HA框架)

oracle HA 高可用性详解(之一,client.server端服务详解):http://write.blog.csdn.net/postedit 我们已经看到TAF是的Oracle的会话能够自动重新连接,需要说明的是,这个能力是基于OCI的,是OCI的一个功能,JDBC Thin Driver无效,因为这种驱动不是构建在OCI库上的. 虽然这个功能发起于RAC,但TAF并不局限于RAC,单实例.DG环境都可以享受这个好处.Oralce声称其TAF能够保证用户会话自动的转移到另一个实例上.这

mongo 3.4分片集群系列之六:详解配置数据库

这个系列大致想跟大家分享以下篇章(我会持续更新的(^ω^)): 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全 4.mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域 5.mongo 3.4分片集群系列之五:详解平衡器 6.mongo 3.4分片集群系列之六:详解配置数据库 7.mongo 3.4分片集群系列之七:配置数