转://Oracle Golden Gate 概念和原理
引言: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 概念和原理的更多相关文章
- Oracle Golden Gate - 概念和机制 (ogg)
Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 ...
- [转载]Oracle Golden Gate - 概念和机制 (ogg)
出处:https://www.cnblogs.com/qiumingcheng/p/5435907.html Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG ...
- Oracle Golden Gate原理简介
Oracle Golden Gate原理简介 http://www.askoracle.org/oracle/HighAvailability/20140109953.html#6545406-tsi ...
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- Oracle Golden Gate概要
Oracle GoldenGate简介 Oracle Golden Gate用于源数据库与目标数据库的数据复制备份:可以在异构的环境(各种操作系统和数据库)之间实现数据亚秒级的实时复制备份:以及可以在 ...
- 转载:【Oracle 集群】RAC知识图文详细教程(二)--Oracle 集群概念及原理
文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...
- 【转】Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
阅读目录 目录 Oracle集群概念和原理 RAC概述 RAC 集成集群件管理 RAC 的体系结构 RAC 的结构组成和机制 RAC 后台进程 RAC 共享存储 RAC 数据库和单实例数据库的区别 ...
- Sybase to Oracle Golden Gate
Sybase 安装Golden Gate: 下载,然后create subdirs.并且在两端配置好mgr,设置好端口7809 创建golden gate用户ogguser,并且给它授权sa和repl ...
- 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 ...
随机推荐
- C#设计模式之九组合模式(Composite Pattern)【结构型】
一.引言 今天我们要讲[结构型]设计模式的第四个模式,该模式是[组合模式],英文名称是:Composite Pattern.当我们谈到这个模式的时候,有一个物件和这个模式很像,也符合这个模式要表达的意 ...
- 如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库
译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Compo ...
- CentOS-7.2安装Ambari-2.6.1
CentOS-7.2安装Ambari-2.6.1 一.Ambari 是什么? Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目, ...
- 实现DevOps需要的工具
硬性要求:工具上的准备 代码管理(SCM):GitHub.GitLab.BitBucket.SubVersion 构建工具:Ant.Gradle.maven 自动部署:Capistrano.CodeD ...
- 苹果8plus怎么录屏视频
现在越来越多的手机控,不管在什么地方,什么时候,都是低头看手机的居多,因为手机信息量太大了,一部手机就可以了解最新咨询,但是作为苹果8plus怎么录制手机屏幕,你们知道吗?今天就和大家一起分享苹果8p ...
- 动态的根据一个资源名获得到对应的资源id
在做项目的过程中,遇到了一个需求,在Android代码里可以通过图片的ID动态加载图片.要加载Android文件夹里面的图片,我们就要知道它的ID,要动态获取,那么就得动态获取图片的ID. 那么应该怎 ...
- slice()和subString()
substring() 方法用于提取字符串中介于两个指定下标之间的字符.slice()返回一个子片段,对原先的string没有影响,与subString的区别是,还可以用负数当参数,相当于是lengt ...
- ajax简单登录(踩过的坑)
登陆页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
- [Python][小知识][NO.2] Python 字符串跨行连接,或拆分为多行显示
1.前言 又是一个字符串很长,但又是一种格式的小字符串直接连接而成的大字符串. 这么我们拆成多行,即美感,又易于我们修改. 例如 文件选择框中的 通配符: wildcard = "Pytho ...
- CMM/CMMI的基本概念
"CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM. 它是对于软件组织在定义.实施. ...