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

最新文章

  1. RSA密钥生成与使用
  2. API调试工具推荐 - httpie
  3. GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控
  4. Invalid byte 3 of 3-byte UTF-8 sequence
  5. 超级链接a中javascript:void(0)弹出另外一个框问题
  6. 【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例
  7. SQL Server 高性能写入的一些总结
  8. Android Studio 小技巧合集
  9. Ikki&#39;s Story IV - Panda&#39;s Trick
  10. iOS开发中文件的上传和下载功能的基本实现-备用
  11. [LeetCode]题解(python):073-Set Matrix Zeroes
  12. android自定义View---生成虚线的View
  13. 负载均衡软件LVS分析三(配置)
  14. redis的配置详解
  15. 内存映射mmap的几个api及其使用
  16. XCode Build Settings中几种Search Paths
  17. go语言nsq源码解读九 tcp和http中channel、topic的增删
  18. iOS-SVProgressHUDMaskType
  19. 解密:Python风靡全宇宙,首要原因竟是它?
  20. C/C++.文件是否存在

热门文章

  1. [leetcode]Insertion Sort List @ Python
  2. Python构造字符串
  3. Jmeter+Ant+Jenkins搭建持续集成的接口测试框架
  4. 【ACM】杭电ACM题一直WA求高手看看代码
  5. 【转载】如何在Oracle中复制表结构和表数据
  6. AngularJS是什么?
  7. 使用curl在命令行中下载文件
  8. URLRewriter.dll的使用
  9. android模拟器使用gps定位
  10. 第一节,学习cocos2d-x的前期准备