《Oracle Golden Gate 概念和原理》-新手入门->深入解析->图文

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

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.支持异构平台数据交换,如下图所示

clip_image002

三、Oracle Golden Gate拓扑结构

clip_image004

四、Oracle Golden Gate 体系结构

clip_image006

上图是最简单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复制原理

clip_image008

先来看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进程泵出到目标端,这样的好处第一安全,第二备份恢复。


golden_gate OGG 异构平台 高级复制






 本文转自 ztfriend 51CTO博客,原文链接:http://blog.51cto.com/leonarding/1348892,如需转载请自行联系原作者


相关文章
|
13天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理
|
4天前
|
网络协议 安全 Linux
网卡接口跃点数:概念与重要性解析
在计算机网络中,跃点数(Hop Count)是指数据包从源设备传输到目标设备时经过的路由器或网关数量,是衡量路径长度的关键指标。本文详细介绍了跃点数的概念、计算方法及其在网络管理中的重要性,包括性能评估、故障排除、网络优化及路由选择等方面的应用。通过使用traceroute或tracert命令,网络管理员可以轻松获取跃点数信息,并据此优化网络结构,提高数据传输效率和安全性。尽管跃点数是重要指标,但仍需与其他因素结合分析以全面评估网络性能。
|
2天前
|
前端开发 Python
Flask原理解析
Flask原理解析
with open as f原理解析
with open as f原理解析
salt之pillar原理解析
salt之pillar原理解析
|
6天前
|
测试技术 开发者 Python
深入浅出:Python中的装饰器使用与原理解析
【9月更文挑战第20天】本文深入探讨Python中一个强大而神秘的功能——装饰器。通过浅显易懂的语言和生动的比喻,我们将一步步揭开装饰器的面纱,理解其背后的原理,并通过实际代码示例掌握如何运用装饰器来增强我们的函数功能。无论你是初学者还是有一定基础的开发者,这篇文章都将带给你新的启发和思考。
24 7
|
29天前
|
vr&ar
简单易懂的 全景图高清下载方法以及原理简要解析(支持下载建E、720yun、酷雷曼、景站、酷家乐、百度街景原图)
这篇文章介绍了一种简单易懂的全景图高清下载方法,使用在线网站全景管家,支持下载包括建E、720yun、酷雷曼等多个平台的全景图原图,并简要解析了全景图的原理和制作方法。
简单易懂的 全景图高清下载方法以及原理简要解析(支持下载建E、720yun、酷雷曼、景站、酷家乐、百度街景原图)
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer图解以及相关的概念解析
前言 transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面纱。 transformer概述 Transformer模型来自论文Attention Is All You Need。 在论文中最初是为了提高机器翻译的效率,它使用了Self-Attention机制和Position Encoding去替代RNN。后来大家发现Self-Attention的效果很好,并且在其它的地
36 2
|
1天前
|
SQL Oracle 关系型数据库
Oracle数据库管理:从入门到精通
表(Table):表是Oracle数据库中存储数据的基本结构单元,由行(Row)和列(Column)组成。每行代表一个记录,每列代表一个字段。 SQL(Structured Query Language):SQL是Oracle数据库的核心语言,用于与数据库交互,执行查询、插入、更新和删除等操作。 数据库实例与数据库:在Oracle中,数据库实例是一组后台进程和内存结构,用于管理数据库并提供服务。而数据库则是数据的物理存储,包括数据文件、控制文件、联机日志和参数文件等。
16 0
|
24天前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
50 2

推荐镜像

更多