2014-03-01 Created By BaoXinjian


GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标 数据库,从而实现源数据库与目标数据库同步。

GoldenGate 可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据 仓库供应、交易跟踪、数据同步、集中/分发、容灾等多个场景下应用。

同时,GoldenGate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。

1. 优点:

(1). 安装、配置简单

(2). 管理维护相对直观,通过其自带的Oracle Management Pack for Oracle GoldenGate管理工具,能够对其进行图形化界面的管理

(3). 支持异构复制,如不同用户,不同数据库平台的复制,这也是其亮点所在

(4). 未来发展潜力还是很看好

2. 缺点:

(1). 官方的软件目前都只支持64位系统

(2). 由于是第三方工具,对环境要求比较高,特别是在LINUX环境下,对操作系统的字符集有所要求,主要是我们系统中的表名都是中文,必须要其对中文的支持

(3). 在进行应用进程的参数配置时候发现,对于特别多的表复制,暂时不清楚GoldenGate是否有限制,因为启动的时候,我配置参数对ZLHIS所有表进行复制的时候,会提示“”错误,但是如果只对少数表或者单个表复制的时候,又不出现该提示,这个问题正在核实

(4). 目前网上能查询到的资料相当有限,普及率不是很高

3. 综上所述,GoldenGate同流复制比较起来的亮点还是在异构上,不过Oracle官方的说法是以后一流的Streams技术将被集成到GoldenGate中,这也是其发展的趋势,其价值对于我们用户的应用来说,还是很值得继续深入研究


1. OGG是数据同步软件,或者说是逻辑复制软件,其竞争对手有IBM CDC,DELL shareplex,DSG,DDS等等。

2. OGG软件是需要安装在操作系统上的,Oracle DB软件没有自带OGG软件(至少目前是这样的)

3. OGG软件有三大进程(说四大进程也行):

  • 三大进程:源头抽取进程、源头传输进程、目的端应用进程(即:复制进程)
  • 四大进程:源头抽取进程、源头传输进程、目的端server进程(负责在目的端写入trail文件)、目的端应用进程(即:复制进程)

4. OGG软件有两种trail file

  • 源头的trail file:由源头抽取进程写入。
  • 目的端的trail file: 源头传输进程传输到目的端,由目的端的server 进程写入目的端操作系统的指定路径下。

5.OGG软件中三大进程都有自己的checkpoint(即:检查点,用来记录每种进程读取到什么位置了,写入到什么位置了)

  • 源头抽取进程:有读取检查点 和写入检查点
  • 源头传输进程:有读取检查点 和写入检查点
  • 目的端应用进程:有读取检查点

6.OGG软件三大进程处理trail file的过程:

  • 源头抽取进程:读取oracle redo log(假设源头数据库是oracle),结合抽取进程的参数文件,将redo log中的内容变为OGG自有格式的文件(即:trail file),并写入到源头操作系统的指定路径下
  • 源头传输进程:读取“源头抽取进程写入的trail file”,结合传输进程的参数文件,发送需要同步的数据到目的端,在目的端是由server 进程负责写入。
  • 目的端应用进程:读取目的端操作系统的指定路径下的trail file,结合应用进程的参数文件,形成sql语句,在目的端db上执行这些sql语句。

7. OGG系统结构图

8. OGG可应对数据维护情况


Manager进程:

运行在源端和目标端上。每个源端或者目标端有且只能存在一个Manager进程。

它是GoldenGate的控制进程,用于启动、监控、重启GoldenGate的其他进程,报告错误及事件,分配数据存储空间,发布阈值报告等。

其运行状态有两种即RUNNING(正在运行)和STOPPED(已经停止)。

2. Extract进程:运行在数据库源端。

负责从源端数据表或者日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到一个本地的trail文件。

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

初始数据同步完成以后,Extract进程负责捕获源端数据的变化(DML和DDL)。

extract进程会优选online log。

其运行状态包括STOPPED(正常停止)、STARTING(正在启动)、RUNNING(正在运行)、ABENDED(Abnomal End的缩写,表示异常结束)。

3. Pump进程:运行在数据库源端。

如果源端使用了本地的trail文件,那么Pump进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端。

Pump进程本质是Extract进程的一种特殊形式,如果不使用trail文件,那么就是Extract进程在抽取完数据以后,直接投递到目标端。

与Pump进程相对应的叫做Server Collector进程,对人们来说它是透明的。它运行在目标端,其任务就是把Extract/Pump投递过来的数据块重新组装成trail文件,人们称之为远程trail文件。

4. Trail文件:将抽取的事务信息转化成的一种GoldenGate专有格式的文件源、目标两端都会存在这种文件,源端存放的trail文件叫本地trail文件,目标端存放的trail文件叫远程trail文件。

trail文件存在的目的旨在防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果故障发生,则数据可以根据checkpoint记录的位置来重传。

5. Replicat进程:运行在目标端负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库中。

和Extract进程一样,Replicat也有其内部的checkpoint机制,保证进程重新启动后可以从上次记录的位置开始恢复,而无数据损失的风险。

它的运行状态和Extract进程一致,包括STOPPED、STARTING、RUNNING、ABENDED。


1. dirchk:检查点文件

(1).用于存放由extract抽取进程和replicat复制进程创建的checkpoint文件,checkpoint文件保存者当前读和写的时间戳信息,通过这些信息保证了数据的准确性和数据容错功能。

文件格式如下:<group name><sequence number>.<ext>

(2).group name就是我们配置的进程名称,序列号,加上后缀名成,后缀名称分为cpe(checkpoint extract)和cpr(checkpoint replicat)。

2. dirdat:跟踪文件和抽取文件

(1).用于存放GG跟踪文件和由extract进程创建的抽取文件,这些文件将被复制进程(或者其他需要的)进一步处理和使用。

(2).文件格式如下:用户自定义的2个前缀字符+6为序列号(跟踪文件)

或者 用户自定义的格式(抽取文件

3. dirdef:数据定义文件

(1).用于存放由DEFGEN组件创建的定义文件,包含在异构环境同步中的源或者目标端的数据定义。

(2).是一个可编辑的文本文件,比如你要添加一个新进创建表的相关的同步定义就可以在此直接编辑。

文件格式如下:用户通过DEFGEN参数文件自定义

4. dirprm:参数文件

(1).用于存放GG的参数文件,这些参数文件可以通过系统文本编辑器直接编辑,也可以通过在ggsci命令行下edit params来编辑,达到的效果是一样的。

(2).文件格式如下:<group name/user-defined name>.prm

5. dirpcs:状态文件

(1).用于存放各个进程的状态信息,当相关进程运行的时候,这些进程的相关信息,比如程序名称,进程名称,进程监听端口,进程ID等等都将被写入各自状态信息文件。

文件格式如下:<group>.<extension>

(2).其中extension有3个:pce(extract)  pcr(replicat)  pcm(manager)

6. dirrpt:报告文件

(1).用于存放各个进程的报告文件,内容为extract、replicat和manager进程运行相关的统计报告信息。

(2).文件格式如下:<group name><sequence number>.rpt

7. dirsql:SQL脚本文件

(1).用于存放由TRIGGEN组件创建的SQL脚本文件,这些SQL脚本用于创建GG相关的记录触发器和日志表。

(2).文件格式如下:用户自定义名称.sql

或者  表名称.sql

8. dirtmp:临时文件

The default location for storing large transactions when the size exceeds the allocated memory size.

Do not edit these files.

Thanks and Regards

OGG_Oracle GoldenGate简介(概念)的更多相关文章

  1. redis从入门到放弃 -> 简介&概念

    一.redis简介 Redis是一款开源的.高性能的键-值存储.它常被称作是一款数据结构服务器. 当值支持的主要数据类型为:字符串(strings)类型,括哈希(hashes).列表(lists).集 ...

  2. Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础语法

    就在昨天终于做了gtest的分享,我的预研工作终于结束了,感觉离我辞职的日子不远了,毕竟是专注java二百年啊,要告别实习啦.. 这篇是GoogleMock的简介文档,会在后边附带一个自己的例子. 一 ...

  3. ElasticSearch 简介概念及核心

    1.ES是什么 ES是面向文档的Nosql,这意味着它可以存储整个对象或文档.然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索.在es中,你可以对文档(而非成行成列的数据)进行索 ...

  4. oracle goldengate技术架构-简单试验(全)

    一  GoldenGate简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源 数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库, ...

  5. ORM查询语言(OQL)简介--高级篇(续):庐山真貌

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...

  6. ORM查询语言(OQL)简介--高级篇:脱胎换骨

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...

  7. ORM查询语言(OQL)简介高级篇

    ORM查询语言(OQL)简介--高级篇:脱胎换骨 在写本文之前,一直在想文章的标题应怎么取.在写了<ORM查询语言(OQL)简介--概念篇>.<ORM查询语言(OQL)简介--实例篇 ...

  8. 【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介

    作者 : 韩曙亮 转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827 一. Linux 内核简介 1. 内核功能简介 ...

  9. Django中ORM简介与单表数据操作

    一. ORM简介  概念:.ORM框架是用于实现面向对象编程语言种不同类型系统的数据之间的转换 构建模型的步骤:重点 (1).配置目标数据库信息,在seting.py中设置数据库信息 DATABASE ...

随机推荐

  1. Page Redirect Speed Test

    现在,有两种方法可以实现网页的自动跳转. (1) 用html自带的<meta>标签(如下)可以实现网页的自动跳转,而且可以控制跳转的延时. <meta http-equiv=&quo ...

  2. mysql必知必会(四、检索数据,五、排序检索数据,六、过滤数据,七、数据过滤)

    四.select语句 1.检索单个列 select prod_name from products; 2.检索多个列 select prod_name, prod_price from product ...

  3. C# 特性(Attribute)(二)

    AttributeUsage类是另外一个预定义特性类,它帮助我们控制我们自己的定制特性的使用.它描述了一个定制特性如和被使用.    AttributeUsage有三个属性,我们可以把它放置在定制属性 ...

  4. UML解惑:图说UML中的六大关系

    UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑.这里给出这六种主要UML关系的说明和类图描述, ...

  5. IOS Xib使用——为控制器添加Xib文件

    Xib文件是一个轻量级的用来描述局部界面的文件,它与StoryBoard类似,都是使用Interface Bulider工具进行编辑.但是StoryBoard是重量级的,它是用来描述整个软件的多个界面 ...

  6. Hive分析窗体函数之LAG,LEAD,FIRST_VALUE和LAST_VALUE

    环境信息:Hive版本号为apache-hive-0.14.0-binHadoop版本号为hadoop-2.6.0Tez版本号为tez-0.7.0 创建表: ),第三个參数为默认值(当往上第n行为NU ...

  7. System.ComponentModel.Component : MarshalByRefObject, IComponent, IDisposable

    #region 程序集 System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // C:\Windows\ ...

  8. BZOJ 1264 AHOI2006 基因匹配Match 动态规划+树状数组

    题目大意:给定n个数和两个长度为n*5的序列,每一个数恰好出现5次,求两个序列的LCS n<=20000.序列长度就是10W.朴素的O(n^2)一定会超时 所以我们考虑LCS的一些性质 LCS的 ...

  9. Appium Python 四:怎样获取APP的Package以及Activity

    看到一篇很好的博客:[Android测试][随笔]获得App的包名和启动页Activity 除了博客上的方法,我还找到两种方法: 方法一:aapt 前提需要使用SDK Manager.exe 下载 A ...

  10. 微信小程序 - switchTab传值

    “众所周知,switchTab是不能携带参数的” 我们有几种方式解决呢?(最好的解决方法是利用全局变量,这样可以避免因缓存造成的数据错误) 1. 通过全局变量(需要用到的页面都要引用它) 点击下载示例 ...