首页 > 其他分享 >OGG基本概念

OGG基本概念

时间:2023-06-21 16:06:15浏览次数:40  
标签:Extract 数据库 GoldenGate 复制 进程 OGG 数据 基本概念

Oracle GoldenGate(OGG)基本概念

目录

1. OGG简介

OGG 是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右)
OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。
ogg概念

2. 应用场景

  • 高可用容灾
  • 数据库迁移、升级(支持跨版本、异构数据库、零宕机时间、亚秒级恢复)
  • 实时数据集成(支持异构数据库、多源数据库)
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center

3. 基本原理

  • 基于日志捕获技术的实时增量数据集成
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center
  • Oracle GoldenGate 数据复制过程如下:
1.利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作
2.将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中
3.再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。
4.目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息
5.把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。
6.GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

4. 基本架构

Oracle GoldenGate主要由如下组件组成

组件 说明
Manager 不管是源端还是目标端必须并且只能有一个Manager进程,可以启动、关闭、监控其他进程的健康状态,报告错误事件、分配数据存储空间,发布阀值报告等,其作用:1:监控与启动 GoldenGate 的其它进程2:管理 trail 文件及 Reporting
Extract Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:1:初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据2:同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract 进程捕获源数据的变化;如DML变化、 DDL变化等
Replicat Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库,就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:1:初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上;2:数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中;
Collector Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里
Trails 为了持续地提取与复制数据库变化,GoldenGate 将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail 文件
Data Pumps Data Pump 是一个配置在源端的辅助的 Extract 机制,Data Pump 是一个可选组件,如果不配置 Data Pump,那么由 Extract 主进程将数据发送到目标端的 Remote Trail 文件中;如果配置了 Data Pump,会由 Data Pump将Extract 主进程写好的本地 Trail 文件通过网络发送到目标端的 Remote Trail 文件中

5. 常用的拓扑结构

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center

  • 单向复制:由一个源数据库复制到一个目的数据库,一般用于高可用性和容灾,为生产机保持一个活动的备份数据库,从而在发生灾难的时候迅速切换,减少数据丢失和系统宕机时间;
  • 双向复制:利用GoldenGate TDM可以实现两个数据库之间数据的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模式开展双业务中心;
  • 广播复制:由一个数据库向多个数据库复制,利用GoldenGate TDM的数据过滤功能可以实现数据的有选择分发;
  • 集中复制:由多个数据库向一个数据库复制,可以将分布的、跨平台或异构的多个数据库集中到一个数据库。此种模式广泛应用于n+1模式的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。
  • 多层复制:由A数据库向B复制,同时又由B向C复制,可以在以上几种模式基础上无限制扩展。
    由此可见,GoldenGate TDM的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展。

6. 支持的环境

源和目标的操作系统和数据库可以进行任意的组合
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center

7. OGG安装部署

安装分为直接解压版和图形安装版,图形安装只需要运行runInstaller,即可执行安装。

标签:Extract,数据库,GoldenGate,复制,进程,OGG,数据,基本概念
From: https://www.cnblogs.com/xulinforDB/p/17496434.html

相关文章

  • mysql索引和基本概念
    1.mysql索引和基本概念目录1.mysql索引和基本概念1.1.声明1.2.什么是索引1.3.二分查找法(BinarySearch)1.4.二叉查找树(BST)1.4.1.二叉树的特点1.4.2.二叉树存在的问题1.5.平衡二叉树(AVLTree)1.5.1.平衡二叉树的特点1.6.索引需要存储什么1.7.B树的特点1.7.1.B树是......
  • mysql日志基本概念和启用
    1.mysql日志目录1.mysql日志1.1.概述1.2.MySQL日志文件分类1.2.1.错误日志1.2.2.二进制日志1.2.3.通用查询日志1.2.3.1.定位查询慢的sql1.2.3.2.慢查询日志的启动和参数说明;1.2.4.慢查询日志1.2.5.Innodb的在线redo日志1.2.6.更新日志1.3.日志启动1.4.总结1.4.1.b......
  • 【技术积累】数据结构中的基本概念【一】
    数据结构的定义是什么?数据结构是计算机科学中的一个重要概念,是指在计算机中组织和存储数据的方式。其定义可以分为以下两方面:1.逻辑定义:数据结构是指数据元素之间的关系和操作的定义。它包括数据对象、数据元素、数据关系和基本操作等几个方面。其中,数据对象是指具有相同性质......
  • 由JAVA环境变量Classpath与logging.config配置冲突的异常:
     Classpath与logging.config配置冲突异常信息:     ......
  • 【python】logging日志打印重复输出冗余日志
    https://blog.csdn.net/Moonlight_16/article/details/123334339?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-123334339-blog-96309743.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=......
  • Python logging 通用模板
    #logger.pyimportloggingimportsocketimportthreadingimportuuidfromlogging.configimportdictConfiglocal=threading.local()#定义一个类,用于实现自定义的过滤器功能classRequestFilter(logging.Filter):deffilter(self,record):get_req......
  • 哈夫曼树(Huffman Tree)的基本概念介绍
    哈夫曼树(HuffmanTree)是一种常用的数据结构,用于实现数据压缩和编码。它是由美国计算机科学家DavidA.Huffman于1952年提出的,被广泛应用于通信、压缩算法和信息存储等领域。哈夫曼树主要用于根据字符出现的频率构建最优的前缀编码,以便在压缩数据时能够有效地减少所需的比特数。该......
  • MariaDB_installing,starting and stoping,configuring,logging in
    InstallingMariaDBBinaryTarballsvia: https://mariadb.com/kb/en/installing-mariadb-binary-tarballs/ MariaDBBinarytarballsarenamedfollowingthepattern:mariadb-VERSION-OS.tar.gz.Besureto downloadthecorrectversionforyourmachine.Note: Someb......
  • Android-NDK开发——基本概念
    在Android开发中,有时候出于安全,性能,代码共用的考虑,需要使用C/C++编写的库。虽然在现代化工具链的支持下,这个工作的难度已经大大降低,但是毕竟万事开头难,初学者往往还是会遇到很多不可预测的问题。本篇就是基于此背景下写的一份简陋指南,希望能对刚开始编写C/C++库的读者有所帮助。......
  • Java基本概念
    1.Java发展历史由高斯林创建1995年由甲骨文公司收购并发出第一版本,目前使用最多是Java8及Java11原因是这两个版本都是长期支持维护的,企业用的也比较多。2.Java的一些特点跨平台性:主要是因为每个平台都装有JVMJava是一门解释语言,即由解释器解释完后,再通过JVM运行......