数据复制中的定时任务机制(转)

数据复制中的定时任务机制
(石骁騑 2001年07月20日 01:40)

简介

本文首先简单介绍了Oracle 8的数据复制的基本概念,然后详细介绍了实现Oracle 8数据复制延迟事务队列转发的Oralce 8任务队列机制,包括“任务队列”子系统的安装,API编程接口DBMS_JOB包的介绍以及API过程中各参数的概念,任务队列的体系结构和运行环境,任务队列数据字典视图以及时间间隔(interval)参数的算法等。

一、Oracle 8数据复制

复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中以支持分布式应用,它是整个分布式计算解决方案的一个重要组成部分。Oracle8的数据复制按功能主要分为三类:基本(简单)复制、高级复制和混合复制,而高级复制又可分为多主节点复制和可更新快照复制。图1是一个简单的Oracle数据复制示意图。


图1 Oracle 数据复制示意图

图1是Oracle数据复制的一个简单示意,并不代表任何的复制类型。在节点1如果需要复制的数据库表发生变化(插入、删除或者更新等),则Oracle采用某种内部机制将这种变化放在一个延迟事务队列(DEFTRAN)中。在一个特定的时间或者是某个特定时间间隔后,Oracle将延迟事务队列中的变化“推”到数据库节点2。如果在节点2上要复制的库表发生变化,也采用同样的机制。如果在传播过程中发生错误,则将该错误放在错误队列DEFERROR中。

Oracle对于存放在延迟事务队列中的事务是如何处理的呢?这就是Oracle的任务队列机制。Oracle的任务队列可以使我们定时或者以一定的时间间隔重复执行Oralce的PL/SQL程序(也就是所说的任务)。任务队列使用最多的地方就是Oracle的数据复制中的定时复制任务,Oracle任务队列子系统最早设计的目的就是为了定时刷新Oracle快照(Oracle简单复制)。当然,现在Oracle的定时任务机制已经不仅仅应用于数据复制,数据库管理员也常使用定时任务来作一些对数据库的日常维护任务,在实际应用中也可用来安排一些繁重的批处理任务在数据库系统不忙时执行,还可用于启动监听数据库管道的服务程序,用来响应用户会话的服务请求等等。下面将详细讨论Oralce 的定时任务机制。

二、定时任务简介

DBMS_JOB系统包是Oracle“任务队列”子系统的API编程接口。DBMS_JOB包对于任务队列提供了下面这些功能:提交并且执行一个任务、改变任务的执行参数以及删除或者临时挂起任务等。

DBMS_JOB包是由ORACLE_HOME目录下的rdbms/admin子目录下的DBMSJOB.SQL和PRVTJOB.PLB 这两个脚本文件创建的。这两个文件被CATPROC.SQL脚本文件调用,而CATPROC.SQL这个文件一般是在数据库创建后立即执行的。脚本为DBMS_JOB包创建了一个公共同义词,并给该包授予了公共的可执行权限,所以所有的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值