数据同步数据库

GoldenGate架构

2019-11-10  本文已影响0人  阿猫阿狗Hakuna

OGG可以作为以下用途使用:

GoldenGate由以下组件组成

下图说明了Oracle GoldenGate用于初始数据加载和DML和DDL操作同步的逻辑架构。这是基本配置。建议根据业务需求更改此模型。


image.png

一.Extract

       Extract的作用是实现提取(捕获)机制。Extract运行在源系统或下游数据库上,或者两者都运行,这取决于数据库和实现需求。可以使用以下两种方式配置Extract:

可以从以下数据源提取数据:

       当配置为同步变化时,Extract捕获对Extract配置中的对象执行的DML和DDL操作。Extract存储这些操作,直到收到包含这些操作的事务的commit记录或rollback。收到rollback时,Extract会丢弃该事务的操作。收到commit时,Extract会将该事务的操作写入磁盘上的一系列文件,称为trail,它们在哪里排队,等待传递给目标系统。每个事务中的所有操作都被作为一个按顺序组织的事务单元写入trail。这种设计确保了速度和数据完整性。
       多个提取进程可以同时操作不同的对象。例如,当数据库很大时,两个Extract可以并行地将数据提取和传输给两个Replicat(使用两个trail文件),最小化目标延迟。要区分不同的提取过程,需要为每个提取过程分配一个组名。

二.Data Pumps

       Data Pump是源Oracle GoldenGate配置中的一个辅助提取工具。如果不使用Data Pump,Extract必须将捕获的数据操作发送到目标上的远程trail文件。在一个data pump的典型配置中,主要的Extract将数据写入源系统上的trail文件。data pump读取这个trail文件并将数据操作通过网络发送给远程目标端的trail文件。data pump增加了存储灵活性,还可以将Extract与TCP/IP活动隔离。
       通常,data pump可以执行数据过滤、映射和转换,或者可以配置为直通模式,在这种模式下,数据按原样被动传输,无需操作。直通模式增加了data pump的吞吐量,因为查找对象定义的所有功能都被绕过了。

在大多数业务情况下,应该使用数据泵。使用数据泵的一些原因包括:

三.Replicat

       Replicat进程在目标系统上运行,读取该系统上的trail,然后重构出DML或DDL操作,并将它们应用于目标数据库。Replicat使用动态SQL编译一条SQL语句,然后使用不同的绑定变量多次执行它。

您可以通过以下方式之一配置Replicat:

       可以使用多个Replicat,同时使用一个或多个Extract和Data Pump来增加吞吐量。为了保持数据完整性,每组进程处理一组不同的对象。要在多个Replicat之间进行区分,需要为每个进程分配一个组名。

可以以coordinated或integrated模式配置一个Replicat,而不是使用多个Replicat进程。

       您可以延迟Replicat,以便它在将复制操作应用到目标数据库之前等待特定的时间。延迟可能是可取的,例如,为了防止错误SQL的传播,为了控制跨不同时区的数据到达,或者为了允许其他计划的事件有时间发生。延迟的长度由DEFERAPPLYINTERVAL参数控制。

四.Trails

       为了支持数据库更改的持续提取和复制,Oracle GoldenGate将捕捉到的更改记录临时存储在磁盘上的一系列文件中,称为trail。在本地系统中,它被称为extract trail(或local trail)。在远程系统上,它被称为remode trail。
       通过使用trails,Oracle GoldenGate支持数据准确性和容错性。trails的使用还允许提取和复制活动彼此独立地进行。将这些流程分离后,就有更多的选择来处理和交付数据。例如,可以不连续地提取和复制更改,而是连续地提取更改,但是将它们存储在trails中,以便稍后在目标端需要它们时复制到目标。

1.写入和读取trails的进程

       Extract和Data Pump提取写入到trail。每个在线Extract过程都必须链接到一个trail。只有一个Extract可以写入给定的local trails。所有local trails必须有不同的名字。
       多个data pump Extract可以各自写入具有相同名称的tails,但是物理trails本身必须主流在不同的远程系统上,例如分布式架构中。例如,一个名为1pump的data pump和一个名为2pump的data pump都可以驻留在sys01上,并写入一个名为aa的remote trail。data pump1可以在sys02上写入trail aa,data pump2可以在sys03上写入trail aa。

读取trail的进程如下:

2.Trail创建和维护

       trail文件本身是在处理过程中根据需要创建的,但是在使用add RMTTRAIL或add EXTTRAIL命令将trail添加到ogg配置时,要为其制定一个双字符名称。默认情况下,trail存储在Oracle GoldenGate目录的dirdat子目录中。

五.Checkpoints

       Checkpoints将进程的当前读和写位置存储到磁盘,以便进行恢复。Checkpoints确保标记为同步的数据更改实际上被Extract捕获,并被Replicat应用于目标,它们防止了冗余处理。它提供了容错功能,防止在重新启动系统、网络或OGG进程时丢失数据。对于复杂的同步配置,Checkpoints允许多个Extract或Replicat进程从同一组tails中读取。

六.Manager

       Manager是OGG的控制进程。在启动Extract或Replicat之前,Manager必须运行在Oracle GoldenGate配置中的每个系统上,并且在这些进程运行时,Manager必须保持运行,以便执行资源管理功能。Manager执行以下功能:

七.Collector

       Collector是一个在目标系统的后台运行的进程,当连续的在线更改同步处于活动状态时。Collector做以下工作:

上一篇下一篇

猜你喜欢

热点阅读