引言:Oracle Golden Gate是Oracle旗下一款支持异构平台之间高级复制技术,是Oracle力推一种HA高可用产品,简称“OGG”,可以实现Active-Active 双业务中心架构

一、Golden Gate 特点

1.实时数据复制

2.异构平台数据同步

3.支持断点续传,不影响系统连续运行

4.高性能,属于轻量级软件

5.保证数据引用完整性和事物一致性

6.整合ETL Tools Message Service

7.灵活拓扑结构 1:1 1:N N:1 N:N 双向复制

8.复制冲突检测和解决

9.支持数据压缩和加密

10.TCP/IP WAN LAN

11.根据事务大小和数量自动管理内存

12.支持多活业务中心

13.以交易数据为单位复制,保证交易一致性

14.支持数据过滤和转换,可自定义基于表和行的过滤规则,实时在异构环境下转换数据

二、Golden Gate用途

1.跨多版本数据库升级

Oracle 8i ————————> Oracle 11G

2.均衡负载

Load Balance

3.容灾

Switchover

4.支持异构平台数据交换,如下图所示

三、Oracle Golden Gate拓扑结构

四、Oracle Golden Gate 体系结构

上图是最简单Golden Gate结构图,Golden Gate有源端和目标端,源端捕获日志发送到目标端应用,这个过程分为六步骤。

1.捕获:实时捕获交易日志(已提交数据),包含DML和DDL,并可根据规则进行过滤

2.队列:把捕获的日志数据加载入队列(写入trail文件),这是可选项,为了提高安全性,怕网络传丢了。

也可以不入队列,直接从redo buffer传递给目标端

3.数据泵:将trail文件广播到不同的目标端

4.网络:从源网络压缩加密后传送到目的网络

5.接收队列:接收从源端传过来的trail文件

6.交付:把trail文件内容转换成SQL语句在目标库执行

双向复制:在把另一端重新配置成源端,即可实现双向复制,这就是Active-Active双业务中心

五、Golden Gate进程

我们还是根据GG工作流程来讲解GG进程

1.Manager进程:这是GG全局主进程,它是GG守护进程统筹全局,它可以启动、监控、终止Golden Gate的其它进程,收集错误报告及事件,分配数据存储空间,发布阀值告警等,在源端和目标端有且只有一个Manager进程。

2.Extract进程:运行在源端的进程,实时捕获交易数据,可以直接在redo buffer捕获传递到目标端,也可以在redo buffer捕获先写入trail队列在传递到目标端。非Oracle库支持从数据表捕获数据。

3.Pump进程:运行在源端的进程,将源端产生的本地trail文件广播到不同的目标端,pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在捕获完交易日志后直接传递到目标端,生成远程trail文件。

4.Collector进程:运行在目标端的进程,专门接收从源端传过来的trail文件日志生成队列。

5.Delivery进程:运行在目标端的进程,通常我们也把它叫做replicat进程,是数据传递的最后一站,负责读取远程trail文件内容,解析为SQL语句在目标库上执行。

六、Oracle Golden Gate数据复制机制

首先,我们要理解GG基于日志的实时数据复制技术,Oracle中还有哪些是基于日志的技术呢?大家想一想

1. Data Guard 基于日志

2. Oracle Streams 基于日志

3. Advance Replication 基于触发器,触发器占用资源多,导致系统性能下降

大家在思考一个问题,GG的基于日志和DG的基于日志有什么区别呢,哪个性能更好呢?

答:GG是不依赖于数据库而独立的软件,拥有自己专属进程,不依赖数据库的触发器和规则,对数据库影响小。

DG是数据库的一个HA功能,它需要数据库的进程支持,与数据库进程息息相关,属于数据库的一部分,对数据库影响大。

下面我们根据图示来解析GG复制原理

先来看2个概念

(1)Trail文件

就是上图中红箭头所指文件,为了更有效,更安全的把数据库事务信息从源端传递到目标端,GG引进了trail文件概念。图中所示Extract进程在redo buffer中提取完日志数据后会写入一种GG专有格式的文件,这个文件就是trail文件,然后data pump进程负责把源端的trail文件传递到目标端,因此源端和目标端都会存在这种文件。

Trail文件存在目的旨在防止单点故障,例如数据库abort,系统宕机,突发断电,网络不通等情况,结合checkpoint机制把没有顺利传递到目标端的文件进行断点续传,保证GG高可用。

(2)checkpoint检查点

GG中的检查点机制与Oracle数据库检查点机制有异曲同工之处,都是用于记录日志数据传输应用的进度点,进程会在trail文件中标记checkpoint位置,如果发生故障,则数据可以根据checkpoint记录的位置来重传恢复。

理解了上面的概念,我们就可以了解GG数据传输的原理,大体上可以分成两种模式

1)直接传输:Extract直接从redo buffer中捕获日志传递到目标端,在源端不写入trail文件。

2)文件传输:Extract先把捕获的日志写入trail文件,再用Pump进程泵出到目标端,这样的好处第一安全,第二备份恢复。

转://Oracle Golden Gate 概念和原理的更多相关文章

  1. Oracle Golden Gate - 概念和机制 (ogg)

    Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 ...

  2. [转载]Oracle Golden Gate - 概念和机制 (ogg)

    出处:https://www.cnblogs.com/qiumingcheng/p/5435907.html Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG ...

  3. Oracle Golden Gate原理简介

    Oracle Golden Gate原理简介 http://www.askoracle.org/oracle/HighAvailability/20140109953.html#6545406-tsi ...

  4. Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

    ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  5. Oracle Golden Gate概要

    Oracle GoldenGate简介 Oracle Golden Gate用于源数据库与目标数据库的数据复制备份:可以在异构的环境(各种操作系统和数据库)之间实现数据亚秒级的实时复制备份:以及可以在 ...

  6. 转载:【Oracle 集群】RAC知识图文详细教程(二)--Oracle 集群概念及原理

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

  7. 【转】Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

      阅读目录 目录 Oracle集群概念和原理 RAC概述 RAC 集成集群件管理 RAC 的体系结构 RAC 的结构组成和机制 RAC 后台进程 RAC 共享存储 RAC 数据库和单实例数据库的区别 ...

  8. Sybase to Oracle Golden Gate

    Sybase 安装Golden Gate: 下载,然后create subdirs.并且在两端配置好mgr,设置好端口7809 创建golden gate用户ogguser,并且给它授权sa和repl ...

  9. ORACLE GOLDEN GATE oracle同步数据至kafka

    一.服务器信息 ip   软件版本 ogg版本 软件包 操作系统版本 OGG安装路径 10.1.50.52 源 oracle11.2.0.4 12.2.0.1.1 V100692-01.zip cen ...

随机推荐

  1. MR程序本地调试,提交到集群运行

    在本地调试,提交到集群上运行. 在本地程序中的Configuration中添加如下配置: Configuration conf = new Configuration(); conf.set(&quo ...

  2. idea护眼色设置

    idea右侧编辑区设置护眼色

  3. Linux上Simplescalar/ARM的安装和运行文档

    本文是基于ARM的simplescalar在ubuntu下的安装说明 1.1 软件下载  *********************文件下载地址:http://yunpan.cn/cw2n7dAyfG ...

  4. [总结]WEB前端常用命令

    webpack等工具操作 自动创建package.json文件:npm init 如何根据package.json来自动安装包:npm install npm具体安装某个组件:npm install ...

  5. Android项目实战(四十):Andoird 7.0+ 安装APK适配

    首先看一下安装apk文件的代码 /** * 通过隐式意图调用系统安装程序安装APK */ public static void install(Context context) { Intent in ...

  6. Android IPC机制(四)用ContentProvider进行进程间通信

    前言 ContentProvider为存储和获取数据提供统一的接口,它可以在不同的应用程序之间共享数据,本身就是适合进程间通信的.ContentProvider底层实现也是Binder,但是使用起来比 ...

  7. Centos 7 查看内存占用情况相关命令

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80652626 本文出自[赵彦军的博客] 1. top命令 top命令经常用来监控l ...

  8. 测者的性测试手册:SWAP的监控

    swap是什么 swap是磁盘上的一块区域,可以使一个磁盘分区,也可以是一个文件,也可能是一个两种的组合.当物理内存资源紧张的时候,操作系统(Linux)会将一些不常访问的数据放到swap里.为其他常 ...

  9. 使用VSTS的Git进行版本控制(二)——提交保存工作

    使用VSTS的Git进行版本控制(二)--提交保存工作 当对文件进行更改时,Git将在本地仓库中记录更改.可以通过选择变更来提交的对应更改.提交总是针对本地的Git仓库,因此不必担心提交是完美的,或者 ...

  10. Spark之UDF

    package big.data.analyse.udfudaf import org.apache.spark.sql.types.{IntegerType, StringType, StructF ...