2014-03-06 Created By BaoXinjian


检查点将进程的当前读写位置存储在磁盘中用于恢复目的。

检查点不仅可以真实地标记 Extract进程捕获的要进行同步的数据变化以及 Replicat进程应用到 target数据库的数据变化,防止进程进行冗余的数据处理,还可以提供容错机制,防止在系统、网络或 Oracle GoldenGate进程需要重启时发生数据丢失。

对于复杂的同步配置,检查点可以确保多个 Extract或Replicat进程从同一组 trail文件中进行读取操作。检查点和进程间的回执机制共同防止了网络间的信息丢失。

Oracle GoldenGate采用了一套专有的可靠信息传递技术。

检查点修改

1. 语法

语法: BEGIN {NOW | yyyy-mm-dd[:hh:mi:[ss[.cccccc]]] | EOF | SEQNO <sequence number>}

2. 步骤

Step1. 获取现有队列文件的checkpoint信息并清理旧进程

Oracle GoldenGate重建抽取进程前,需要通过info xxx,showch的命令获取当前的checkpoint信息,此步骤非常关键,务必执行准确。

在获取抽取进程信息后,就可以进行删除旧的抽取进程,开始重建工作。

Step2. 添加新的抽取进程

添加进程的语句与以往的创建方式是类似的,但threads需要相应减1,例子如下:

add ext ext_onl, tranlog, begin now, threads 2

Step3. 为新的抽取进程添加队列文件

添加进程后,需要配置相应的队列文件,与以往创建方式不同,这里需要加入原有队列文件的current checkpoint信息


Extract进程创建检查点来存储其在数据源中的读取位置以及trail文件中的写入位置信息。

由于 Extract进程只捕获已提交的事务,因此 Extract进程必须跟踪所有 open(未提交)事务的操作,才能实时感知这些事务的提交状态。

这就要求 Extract进程记录一个检查点来表示该进程当前在事务日志中的读取位置以及最早开始的 open(未提交)事务的起始位置(可能在当前读取的事务日志中,也可能在之前的事务日志中)。

为了控制 Extract进程发生中断后必须重新处理的事务日志量,Extract进程会以特定的时间间隔将正在处理的事务(包括长时间运行的事务的状态和数据)的当前状态及数据写入磁盘。

当 Extract进程在这些时间间隔中任意某个间隔点停止时,Extract进程可以直接从上一个时间间隔内的某个时间点或者上一个检查点位置开始进行恢复,而不用从事务日志中最早开始的长时间运行事务的起始位置开始进行恢复。


Replicat进程创建检查点来存储其在 trail文件中的读取位置。

Replicat进程将其检查点信息存储在 target 数据库中的检查点表中来保护其处理的事务的提交信息以及在 trail文件中的读取位置。

当数据库进行恢复后,检查点表可以保证数据的一致性,确保即使是在 Replicat进程或者数据库进程发生故障后,一个事务也只会被应用一次。

为了实现报告目的,Replicat进程还会在OGG根目录下的 dirchk子目录下写一个检查点文件。对于 initial load之类的非持续性同步配置,不需要检查点机制。


1. 修改抽取进程的开始抽取点:(即:myext的读检查点)

alter extract myext BEGIN yyyy-mm-dd:hh:mi:ss

alter extract myext BEGIN now

2. 修改myext的写检查点:

alter extract myext, etrollover

3. 修改传输mydp进程的读检查点

alter extract mydp, extseqno 234, extrba 0

4. 修改传输mydp进程的写检查点

alter extract mydp etrollover

5. 修改myrep的读检查点

alter replicat myrep, extseqno 1234, extrba 0


待续

Thanks and Regards

部分参考: 冰释镜湖 - http://blog.csdn.net/xiangsir/article/details/8967577

OGG_GoldenGate检查点应用Checkpoint(案例)的更多相关文章

  1. 检查点(Checkpoint)过程如何处理未提交的事务

    每次我讲解SQL Server之前,我都会先简单谈下当我们执行查询时,在SQL Server内部发生了什么.执行一个SELECT语句非常简单,但是执行DML语句更加复杂,因为SQL Server要修改 ...

  2. oracle之检查点(Checkpoint)

    检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件.检查点分为三类:1)局部检查点:单个实例执行数据库所有数据文件的一个检查点操作,属于此实例的全部脏缓存区写入数据文件. ...

  3. OGG_GoldenGate日常监控(案例)

    2014-03-11 Created By BaoXinjian  

  4. OGG_GoldenGate日常维护(案例)

    2014-03-12 Created By BaoXinjian

  5. kingbaseES R3 集群备库转换为单实例库案例

    案例说明: 在生产环境需要将集群中架构转换为单实例环境,本案例以备库转换为单实例库为案例,介绍了两种方案,一种在数据库数据量小的环境下采用 sys_dumpall 导出导入方式建立单实例库:另外一种是 ...

  6. SSIS的CheckPoint用法

    在SSIS的Package Property中有CheckPoints的属性目录,CheckPoint是SSIS的Failover Feature.通过简单的配置CheckPoint,能够在Packa ...

  7. Spark RDD概念学习系列之RDD的checkpoint(九)

     RDD的检查点 首先,要清楚.为什么spark要引入检查点机制?引入RDD的检查点?  答:如果缓存丢失了,则需要重新计算.如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容 ...

  8. Oracle CheckPoint进程

    在实例经过分配内存结构,加载控制文件后,然后要打开数据库的时候,需要做到控制文件,数据文件,联机重做日志保持相互状态一致性,数据库才可以打开.当数据库发生实例不正常关闭时(比如系统掉电或者Shutdo ...

  9. SSIS 检查点

    在SSIS中,检查点实际上是一个记录系统,用于记录控制流中Task组件的执行状态.通过合理地配置Checkpoint,在Package运行出错之后,重新执行Package,可以跳过上一次已经成功执行的 ...

随机推荐

  1. DotNetBar中dotNetBarManager设置窗口 实现单文档视图界面

    本人想设计一个但文档视图的界面: |--------------------------------------------------------------- |   Ribbon Bar |-- ...

  2. android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值

    在项目中,有时候在一些控件(如Button.TextView)中要添加一些符号,如下图所示:                          这个时候可以使用图片的方式来显示,不过这些可以直接使用U ...

  3. Managed Debugging Assistant 'PInvokeStackImbalance' has detected a problem in 解决方案

    because regular C functions work differently than the Windows API functions; their "calling con ...

  4. Java 中 Map 的使用

    Map接口提供了一组能够以键-值对(key,value)形式存储的数据结构. Map对存入元素仅仅有一个要求.就是键(key)不能反复,Map对于key.value要求不是非常严格,key仅仅要是引用 ...

  5. Inception in CNN

    之前也写过GoogLeNet的笔记.但那个时候对Inception有些似懂非懂,这周又一次看了一遍,觉得有了新的体会,特地又一次写一篇博客与它再续前缘. 本文属于论文笔记性质.特此声明. Networ ...

  6. shell常用调试方法

    检查语法 -n选项只做语法检查,而不执行脚本. sh -n script_name.sh 启动调试 sh -x script_name.s 进入调试模式后,Shell依次执行读入的语句,产生的输出中有 ...

  7. IOS开发基础Object-C(12)—单例模式

    单例模式的意思就是仅仅有一个实例. 单例模式确保某一个类仅仅有一个实例,并且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类仅仅能有一 ...

  8. RTT下spi flash+elm fat文件系统移植小记

    背景: MCU:STM32F207 SPI flash: Winbond W25Q16BV OS: RTT V1.1.1 bsp: STM32F20x 1 将spi_core.c,spi_dev.c及 ...

  9. 子查询三(在FROM子句中使用子查询)

    FROM子句中使用子查询一般都是返回多行多列,可以将其当作一张数据表 示例一.查询出每个部门的编号,名称,位置,部门人数,平均工资 SELECT d.deptno,d.dname,d.loc,temp ...

  10. serialport控件的详细用法

    http://www.cnblogs.com/jerry-bian/archive/2012/01/10/2317861.html 最近在做通讯协议,关于SerialPort类 DataReceive ...