Oracle golden gate 技术详解

一、系统概述

Oracle Golden Gate (简称OGG)是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志(redo log)或归档日志(archive log)获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源端数据库与目标端数据库同步。OGG可以实现不通平台(包括不通操作系统,数据库)实现大量数据亚秒一级的实时复制,从而可以在业务连续性保障、在线报表、数据仓库、交易跟踪、数据同步、集中/分发、容灾备份、数据库升级和移植、异地或同城双活业务中心等多个场景下应用。同时,OGG可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。

二、系统逻辑架构

OGG通过源数据库上的extract进程捕获redo log或者archive log,在本地或者目标端生产trail文件来存储捕获到的数据变化,将捕获的数据通过TCP/IP网络传输到目标。通过日志应用进程(replicat)将数据应用到目标端数据库。

Golden gate 主要包括5个关键组件,分别是:

1.manager

2.extract

3.pump data

4.trail

5.server collector

5. Replicat

三、进程作用

1.manager进程 (MGR)

Manager进程是GoldenGate的控制进程,运行在源端和目标端上,在目标端和源端有且只有一个manager进程.它主要作用有以下几个方面:

启动、监控、重启Goldengate的其他进程,报告错误及事件,配置数据存储空间,发布阀值报告等.在整个系统的运行过程主备端manager进程都必须启动到running状态。

2.extract进程(EXT)

Extract运行在数据库源端,负责从源端数据表或者日志中捕获数据。Extract的作用可以按照时间来划分:

(1)、数据初始化阶段:

在数据初始化阶段,Extract进程直接从源端的数据表中抽取数据。

(2)、实时增量捕获阶段:

数据初始化阶段完成以后,Extract进程负责捕获源端数据库的实时增量变化(DML和DDL)。

备注:OGG并不是对所有的数据库都支持ddl操作。

Extract进程会捕获所有已配置的需要同步的对象变化,但只会将已提交的事务发送到远程的trail文件用于同步。当事务提交时,所有和该事务相关的日志记录被以事务为单元顺序的记录到trail文件中。Extract进程利用其内在的checkpoint机制,周期性的记录其读写的位置,实现断点同步。通过上面的两个机制,就可以保证数据完整性.

多个Extract 进程可以同时对不同对象进行同步操作。例如,可以在一个extract进程抽取并向目标端发生事务数据的同时,利用另一个extract进程抽取的数据做报表。或者,两个extract进程可以利用两个trail文件,同时抽取并并行传输给两个replicat进程以提高同步性能。

Extract进程的状态:Stopped(正常停止),Starting(正在启动),Running(正在运行),Abended(Abnomal End缩写,标示异常结束)。

一个 OGG 实例最多支持 300 个并发 extract 和 replicat 进程,每个进程需要 25-55M 内存。

3.Pump进程

pump进程运行在数据库源端,pump进程本质是extract进程的一种特殊形式,如果不配置pump进程,extract进程将不会在数据库源端生成trail文件,extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件。如果配置了pump进程,pump进程将在数据库源端生成trail文件,然后把源端产生的本地trail(交易)文件以数据块的形式通过TCP/IP 协议发送到目标端,这也是Oracle官方推荐的方式。

与Pump进程对应的叫Server Collector进程,这个进程不需要引起我们的关注,因为在实际操作过程中,无需我们对其进行任何配置,所以对我们来说它是透明的。它运行在目标端,其任务就是把Extract/Pump投递过来的数据重新组装成远程trail文件。

pump进程可以在线或者批量配置,他可以进行数据过滤,映射和转换,同时他还可以配置为“直通模式”,这样数据被传输到目标端时就可以直接生成所需的格式,无需另外操作。 直通模式提高了data pump的效率,因为生成后的对象不需要继续进行检索。

在大多数情况下,oracle都建议采用data pump,原因如下:

(1)为目标端或网络问题提供保障:

如果只在目标端配置trail文件,由于源端会将extract进程抽取的内容不断的保存在内存中,并及时的发送到目标端。当网络或者目标端出现故障时,由于extract进程无法及时的将数据发送到目标,extract进程将耗尽内存然后异常终止。 如果在源端配置了data pump进程,捕获的数据会被先转移到本地磁盘上的trail文件内,防止了OGG异常终止的情况。当故障修复,源端和目标端恢复连通性时,data pump进程发送源端的trail文件到目标端。

(2)可以支持复杂的数据过滤或者转换:

当使用数据过滤或者转换时,可以先配置一个data pump进程在目标端或者源端进行第一步的转换,利用另一个data pump进程或者 Replicat组进行第二部的转换。

(3)有效的规划存储资源:

当从多个数据源同步到一个数据中心时,采用data pump的方式,可以在源端保存抽取的数据,目标端保存trail文件,从而节约存储空间。

(4)解决单数据源向多个目标端传输数据的单点故障:

当从一个数据源发送数据到多个目标端时,可以为每个目标端分别配置不同的data pump进程。这样如果某个目标端失效或者网络故障时,其他的目标端不会受到影响可以继续同步数据。

4.Replicat进程

Replicat进程,称之为复制应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或 DDL语句,然后应用到目标数据库中和Extract进程一样,Replicat也有其内部的checkpoint机制,保证重启后可以从上次记录的位置开始恢复而无数据丢失的风险。

Replicat 进程的状态包括Stopped(正常停止),Starting(正在启动),Running(正在运行),Abended(Abnomal End的缩写,标示异常结束)。

5.Trail文件

为了持续地提取与复制数据库变化,GoldenGate将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就称为Trail文件,Trail文件主要用来存储事务变化信息(DDL和DML事务操作记录),根据系统的不同配置和安全要求,Trail文件可以保存在源数据库上也可以保存在目标端数据库上,也可以在中间系统上保存。

源端数据库上的trail文件是可选的,如果在源端数据库上面设置了data pump进程,那么就会在源端数据库上创建trail文件,PUMP进程会利用TCP/IP协议将源端数据库上的trail文件以块级别传输给网络上的目标端数据库。

无论是否配置data pump进程,备库上的trail文件都是必须存在的(因为Replicat进程需要读取该文件中的DDL或DML SQL用来应用),在数据库源端上的叫做 Local Trail 或者 Extract Trail;在目标端的叫做 Remote Trail。

Trail文件的大小默认为10MB,以两个字符开始加上000000~999999的数字作为文件名。如:\tmp\directory01\tr000001。默认情况下存储在GoldenGate的dirdat子目录里。可以为不同应用或者对象创建不同的trail文件。同一时刻,只会有一个extract进程处理一个trail(交易)文件。

10.0版本以后的GoldenGate,会在trail文件头部存储包含trail文件信息的记录,而10.0之前的版本不会存储该信息。每个trail文件中的数据记录包含了数据头区域和数据区域。在数据头区域中包含事务信息,数据区域包含实际抽取的数据。

为了减小系统的I/O负载,抽取的数据通过大字节块的方式存储到trail文件中。同时为了提高兼容性,存储在trail文件中的数据以通用数据模式(一种可以在异构数据库之间进行快速而准确转换的模式)存储。 当然,根据不同应用的需求,数据也可以存储为不同的模式。

默认情况下,extract进程以追加的方式写入trail文件。当extract进程异常终止时,trail文件会被标记为需要恢复。当extract重新启动时会追加checkpoint之后的数据追加到该trail文件中。在GoldenGate 10.0之前的版本, extract进程采用的是覆盖模式。即当extract进程异常终止,则会将至上次完整写入的事务数据之后的数据覆盖现有trail文件中的内容。

6.server Collector文件

Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里。Collector由分为动态和静态:

动态 collector:由管理进程自动启动的 collector 叫做动态 collector,用户不能与动态 collector 交互;

静态 collector:可以配置成手工运行 collector,这个 collector 就称之为静态 collector;

原文地址:https://www.cnblogs.com/jimoyu/p/12286315.html

时间: 2024-10-07 13:23:05

Oracle golden gate 技术详解的相关文章

ORACLE触发器基础技术详解

ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INSTEAD OF)触发器 8.2.3 创建系统事件触发器 8.2.4 系统触发器事件属性 8.2.5 使用触发器谓词 8.2.6 重新编译触发器 8.3 删除和使能触发器 8.4 触发器和数据字典 8.5   数据库触发器的应用举

Oracle闪回技术详解

概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)  撤销段(UNDO SEGMENT) 在讲闪回技术前,需要先了解Oracle中一个逻辑结构--撤销段.因为大部分闪回技术

Oracle Golden Gate体系架构详解(转载)

摘自ITEYE czmmiao  http://czmmiao.iteye.com/blog/1550877  GoldenGate简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.Oracle Golden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统.

[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]

红帽Linux故障定位技术详解与实例(3)

红帽Linux故障定位技术详解与实例(3) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 5.用kdump工具内核故障定位实例 A) 部署Kdump 部署 kdump 收集故障信息的步骤如下: (1)设置好相关的内核启动参数 在 /boot/grub

ORACLE PL/SQL编程详解

ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的

FluentData 轻量级.NET ORM持久化技术详解

FluentData 轻量级.NET ORM持久化技术详解(C#4.5/Linq/Lambda,事务/储存过程,开源框架) 课程讲师:风舞烟 课程分类:.NET框架 适合人群:初级 课时数量:19课时 用到技术:FluentData 涉及项目:FluentData轻量级 咨询qq:1840215592 本课程系<基于ASP.NET MVC 4 +Knockout.JS+Web API+FluentData+EasyUI 技术实现Web通用商业开发框架>中的一个单品课程,北风产品总监"

转://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 双向

【转】Oracle 11g Dataguard 参数详解

转自:https://www.jb51.net/article/52269.htm 这篇文章主要介绍了Oracle 11g Dataguard参数详解,包含了独立参数.主库参数.备库参数的详细说明,需要的朋友可以参考下. 注:本文译自<Oracle Data Guard 11g Handbook> Page 78 – Page 88 就Data Guard(后面都写成DG)来说,我们只关注如下三种参数: 1.独立于数据库角色的参数2.数据库角色为primary时的参数3.数据库角色为stand