OGG概念与机制

Posted plutozzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OGG概念与机制相关的知识,希望对你有一定的参考价值。

OGG:Oracle Golden Gate

??简称为OGG,提供异构环境下的数据的实时捕捉,变换和投递。

1.OGG的特点:

  • 对生产环境影响较小,因其实时读取交易日志从而实现了用最小的资源占用解决了大交易量数据的实时复制。
  • 以交易为单位复制,保证交易的一致性实现了只同步提交的数据。
  • 高性能,智能的交易重组和操作合并,使用数据库本地接口访问,并行处理体系,灵活的拓扑结构:支持一对一、一对多、多对一、多对多和双向复制等。
  • 异构环境支持,在不同平台和数据库环境下复制数据,开放的结构使得客户的可以适应各种平台具有良好的可拓展性
  • 提供数据压缩和加密,保证数据的安全性
  • 支持数据的过滤和转换,可以自定义基于行或者表的过滤规则,更加灵活

2.OGG的工作原理:

?? OGG是一种基于日志bai的结构化数据复制软件,通过捕获源数据库online redo log (在线重做日志)或archive log(归档日志)获得数据变化,形成tail(队列文件 ),再将这些tail通过网络协议,传输到目标数据库,目标端通过解析,插入至目标端数据库,从而实现源端与目标端数据同步。

技术图片

ogg的主要工作进程:

技术图片
重要进程介绍:

  • Manager:
    运行在源端和目标端上,不管是源端还是目标端都必须有且仅有一个Manager进程,用来启动、关闭和监控其他进程的健康状态、报告错误和事件、分配数据存储空间以及发布阈值报告等。
  • Extract:
    运行在数据库源端的进程,捕捉源端数据表或日志中的数据,然后写入到本地的trail文件中,源端数据发生改变时,extract进程就会进行捕捉,当这个事务提交时,所有和该事务相关的日志被以事务为单元顺序记录到trail文件中。同时为了extract也有检查点机制,可以周期性的记录读写的位置,实现断点同步。
    根据工作状态分为两个阶段:
    初始装载阶段:extract进程直接从源端的数据表中抽取数据。
    同步变化捕捉阶段:初始数据同步完成,extract负责捕捉源端的数据变化(DML/DDL)

Extract的两种工作模式:
1)传统模式:基于在线日志或归档日志进行抽取(常用)
2)Integrated模式:11g以后的功能, Logmining server负责以LCR格式从数据库日志中捕获数据变化,extract进程再将这些数据存入 trail文件。


  • Pump:
    pump进程是一个可选的进程,运行在数据库的源端把源端产生的本地trail文件以数据块的形式通过TCP/IP协议发送给目标端。如果不选择pump进程,那么源端会将抽取的数据直接投递给目标端从而生成远程trail文件。这样就不需要配置pump进程,但是通常推荐配置pump。
  • Collector:
    运行在目标端上,与pump,extract对应,作用就是把extract或者pump传过来的数据块重新组装成trail文件,不需要任何配置是一个完全自动的进程,对用户来说透明。
  • Replicate:
    运行在目标端,通常称为应用进程,负责读取由源端传输的数据块被目标端collecter进程组装的trail文件。解析出的SQL语句再在目标端应用到数据库中。

Replicate的两种工作模式:
1)传统模式:最常用的基于SQL交付的方式。
技术图片
2)Integrated模式:读取源端传输过来的 trail 文件;执行data 数据过滤和转换操作;DML操作:根据commit顺序,构造LCR;DDL 操作:Replicat 进程直接apply;Replicat 通过lightweight streaming 接口和目标库后台进程(Database inbound server)建立 连接;将LCR传输到inbound server,然后apply 这些数据到目标数据库。
技术图片


至此一次相对完整的OGG传输完成。




















以上是关于OGG概念与机制的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Goldengate数据库复制与容灾项目实施与维护_OGG实战培训

网络通信与面向对象:对象化抽象机制抽象组合

spark原理:概念与架构工作机制

Java进阶之reflection(反射机制)——反射概念与基础

OGG学习笔记01

JAVA反射机制