开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

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,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle 11g RAC SCAN ip的原理及配置
SCAN概念:     先介绍一下什么叫SCAN,SCAN(Single Client Access Name)是Oracle从11g R2开始推出的,客户端可以通过SCAN特性负载均衡地连接到RAC数据库。
1449 0
Oracle 数据库性能优化3日实战(企业培训)
课程名称一: Oracle性能优化及调整 课程时长 1天 课程深度: 高级 上机实验: 10%-30% 授课对象: Oracle开发人员、Oracle数据库管理人员,应用程序开发人员 课程描述: 本课程讲述Oracle数据库物理层规划,系统性能的监控,数据库性能参数调整,统计信息的收集,使用自动化调试工具优化数据库,I/O子系统的配置与设计以及性能优化方法论等。
1830 0
Oracle 10g Express Edition(XE) 转至数据库主页中文乱码问题的解决
Oracle 10g Express Edition是Oracle专门为小型用户提供的免费版本。
886 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载