goldengate java_OGG_GoldenGate检查点应用Checkpoint(案例)
2021年02月23日 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 }
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进程检查点
Extract进程创建检查点来存储其在数据源中的读取位置以及trail文件中的写入位置信息。
由于 Extract进程只捕获已提交的事务,因此 Extract进程必须跟踪所有 open(未提交)事务的操作,才能实时感知这些事务的提交状态。
这就要求 Extract进程记录一个检查点来表示该进程当前在事务日志中的读取位置以及最早开始的 open(未提交)事务的起始位置(可能在当前读取的事务日志中,也可能在之前的事务日志中)。
为了控制 Extract进程发生中断后必须重新处理的事务日志量,Extract进程会以特定的时间间隔将正在处理的事务(包括长时间运行的事务的状态和数据)的当前状态及数据写入磁盘。
当 Extract进程在这些时间间隔中任意某个间隔点停止时,Extract进程可以直接从上一个时间间隔内的某个时间点或者上一个检查点位置开始进行恢复,而不用从事务日志中最早开始的长时间运行事务的起始位置开始进行恢复。
三、Replicat进程检查点
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
五、案例 - 数据库克隆后,修改Checkpoint以启动OGG
待续
Thanks and Regards
部分参考: 冰释镜湖 - http://blog.csdn.net/xiangsir/article/details/8967577
goldengate java_OGG_GoldenGate检查点应用Checkpoint(案例)相关推荐
- Oracle Golden Gate 系列十三 -- 配置GG进程检查点(checkpoint) 说明
一.Checkpoints 理论说明 有关GG的Checkpoints 在系列一, GG的架构中以说明: OracleGolden Gate 系列一 --GG 架构 说明 http://blog.cs ...
- Oracle 的检查点队列 (checkpoint queue)
这篇文章是参考甲骨论老相老师的视频: http://v.youku.com/v_show/id_XNDAwOTY3MTU2.html 所做的学习笔记 1. LRU chain 和 LRUW chain ...
- 检查点(Checkpoint)过程如何处理未提交的事务
每次我讲解SQL Server之前,我都会先简单谈下当我们执行查询时,在SQL Server内部发生了什么.执行一个SELECT语句非常简单,但是执行DML语句更加复杂,因为SQL Server要修改 ...
- Flink的检查点(checkpoint)
Flink具体如何保证exactly-once呢? 它使用一种被称为"检查点"(checkpoint)的特性,在出现故障时将系统重置回正确状态 1 Flink的检查点算法 Flin ...
- oracle 系统检查点,检查点(Checkpoint)优化及故障排除指南
什么是检查点? 检查点是一种将内存中的已修改数据块与磁盘上的数据文件进行同步的数据库事件.通过Checkpoint Oracle 确保了被 transaction 修改过数据可以被同步至磁盘.Orac ...
- 【Flink】Flink 检查点 Triggering checkpoint createBlockoutputstream no further info information
1.背景 案例程序参考:https://blog.csdn.net/qq_21383435/article/details/106493465 然后报错 [28-6-82 1:899 [INFOj f ...
- Oracle GoldenGate 系列:深入理解 Oracle GoldenGate 检查点机制
检查点将进程的当前读写位置存储在磁盘中用于恢复目的.检查点不仅可以真实地标记 Extract进程捕获的要进行同步的数据变化以及 Replicat进程应用到 target数据库的数据变化,防止进程进行冗 ...
- Spark Streaming 实战案例(四) Spark Streaming 缓存、Checkpoint机制
主要内容 Spark Stream 缓存 Checkpoint 案例 1. Spark Stream 缓存 通过前面一系列的课程介绍,我们知道DStream是由一系列的RDD构成的,它同一般的RDD一 ...
- oracle checkpoint检查点
检查点 检查点只是一个数据库事件,它存在的根本意义在于减少崩溃恢复(crash recovery)时间.检查点事件由ckpt后台进程触发,当检查点发生时,ckpt进程会负责通知dbwr进程将脏数据(d ...
最新文章
- Python小游戏之 - 飞机大战 !
- 从运维域看 Serverless 真的就是万能银弹吗?
- python 循环添加array_Python的备忘细节小抄
- declare sql语句_每天10分钟学习T-SQL语言基础(Part 5)
- hdu-1176(dp)
- C++primer 第 2 章 变量和基本类型
- safari浏览器横屏怎么设置_如何避免苹果safari自带浏览器“跟踪”你的信息!
- hid在linux上的轮训时间,linux 自定义hid速度优化
- 路由器和交换机的区别,太经典了
- 重写了GVBASIC模拟器
- python中darks_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口
- C语言程序设计实验报告——实验一
- 计算机所有相关系统设置,关于win7系统5种电脑实用设置技巧
- C1083,无法打开包括文件...
- lucene-使用htmlparser解析未设定编码页面
- linux学习心得范文
- linux php虚拟主机,linux上php虚拟主机(linux搭建虚拟主机)
- 运行IE显示“该文件没有程序与之关联来执行该操作”
- 阿里P7架构师到底有多难?
- 双机热备_磁盘阵列柜