暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE GOLDENGATE分离部署方案简述

非功能之路 2021-06-10
2014
  1. 1. ORACLE GOLDENGATE简介

ORACLE GOLDENGATE(以下简称OGG)是一种基于日志的结构化数据库复制备份软件。它通过解析源数据库的归档日志或者REDO LOG来获取数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OGG可以实现一对一、一对多、多对一、双向、级联等多种灵活的拓扑结构。

OGG可以在异构的IT基础结构(几乎所有常用的数据库平台和操作系统平台)之间实现大量数据亚秒一级的实时复制。常用的场景包括,数据库容灾和应急、系统迁移/升级/维护、查询分载/集中查询、双活/多活、实时数据仓库、数据集中/分发/同步、事件驱动集成等。[1]

  1. 2. OGG技术原理

1OGG技术架构

相较于其他同步方式,OGG的优势在于:

  1. A.    不建触发器、不建中间表,无需增量标记或时间戳字段

  2. B.    不在源表上进行数据查询

  3. C.    数据同步效率高,

  4. D.    能够保障事务完整性和顺序,失败后自动从断点恢复,数据不重复和遗漏

  5. E.     不影响源数据库资源和效率,对内存和网络要求低

  6. F.     广泛支持异构硬件平台和操作系统下的多种数据库类型和版本,包括文件和消息队列[2]

OGG的技术实现中几个重要内容:

  1. A.    Manger进程

Manager进程是GoldenGate的控制进程,运行在源端和目标端上。它主要作用有以下几个方面:启动、监控、重启Goldengate的其他进程,报告错误及事件,分配数据存储空间,发布阀值报告等。

  1. B.    Extract进程

Extract运行在数据库源端,负责从源端数据表或者日志中捕获数据。

  1. C.    Pump进程

pump进程运行在数据库源端。其作用是如果源端使用了本地的trail文件,那么pump 进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这通常也是推荐的方式。pump进程本质是extract进程的一种特殊形式,如果不使用trails文件,那么就是extract进程在抽取完数据以后,直接投递到目标端。

  1. D.    Trail文件

为了更有效、更安全的把数据库事务信息从源端投递到目标端。GoldenGate引进 trail文件的概念。前面提到extract抽取完数据以后Goldengate会将抽取的事务信息转化为一种GoldenGate专有格式的文件。然后pump负责把源端的trail文件投递到目标端,所以源、目标两端都会存在这种文件。trail文件存在的目的旨在防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果故障发生,则数据可以根据 checkpoint记录的位置来重传。

  1. E.     Replicat进程

Replicat进程,通常我们也把它叫做应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DMLDDL语句,然后应用到目标数据库中。

  1. F.     GGSCI

GGSCIGoldenGateSoftware Command Interface 的缩写,它提供了十分丰富的命令来对Goldengate进行各种操作,如创建、修改、监控GoldenGate进程等等。[3]

  1. 3. OGG分离部署方案

OGG分离部署方案下,要求部署抽取节点的服务器操作系统必须与源数据库的操作系统保持一致。目标节点不强制要求与目标数据库相同操作系统,并且数据可以不进行入库,直接落地为文件供系统额外按需处理(flat file)。

具体部署方案如下图。

2OGG分离部署架构


  1. 4.  OGG分离部署场景配置

1)源端数据库

数据库必须开启归档模式。对OGG用户做授权。开启同步表的最小附加日志。

2)OGG抽取节点

  1. 2.1 创建子目录,确认配置信息。相关目录说明:

dirchk:用于存放各个进程的检查点

dirdat:用于存放数据队列文件

dirprm:用于存放各进程参数文件

dirrpt:用于存放各进程报告

dirpcs:存放各个正在运行的进程信息

  1. 2.2 配置mgr进程。

  2. 2.3 创建和配置extract进程。

  3. 2.4 添加需要同步的表。

  4. 2.5 创建和配置pump进程。

  5. 2.6 创建Trail文件目录。

  6. 2.7 配置defgen文件。defgen文件是表的定义文件,因为目标库与源库结构不一致,需要使用这个文件做表结构的转换定义。目录dirdef

3)OGG目标节点

  1. 3.1 创建目录,确认配置信息。

  2. 3.2 配置mgr进程。

  3. 3.3 配置OGG Adapter产生flat file。在OGG Adapter上增加抽取进程,用来读取源端传输过来的trail file,并且将其写到flat file供其他应用使用。

  4. 5.  OGG分离部署非功能特性关注点

进行选型或验证测试时,重点关注内容如下表1

序号

一级分类

二级分类

案例

1

性能/容量

同步效率

稳定性案例

2

稳定性

同步效率

稳定性案例

3

可用性

源端数据库RAC

宕机、宕网卡等

4

可用性

抽取端节点故障

宕机、宕网卡等

5

可用性

抽取端进程故障

守护进程、抽取进程、传输进程僵死、挂起

6

可用性

目标端节点故障

宕机、宕网卡等

7

可用性

目标端进程故障

守护进程、数据落地进程僵死、挂起

8

可维护性

抽取端HA切换

HA切换

9

可维护性

目标端HA切换

HA切换

1:测试指标类别及案例



[1]摘自:ChinaUnix-suqiansiyang-ogg的安装和配置(一)》

[2]摘自:《OracleGoldenGate产品介绍及应用场景.pdf

[3]摘自:ChinaUnix-suqiansiyang-ogg的安装和配置(一)》


文章转载自非功能之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论