1.首先看看什么是OGG,以及OGG的用途
      简单的来讲 Oracle Golden Gate (简称OGG)是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OGG可以跨越不通平台(包括不通操作系统,数据库)实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,OGG可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构
 
2.OGG的逻辑结构图
如上图所示,OGG包含三大关键进程 Exract,Manager,Replicat等进程:
 
1.manager进程 (MGR)
   Manager进程是GoldenGate的控制进程,运行在源端和目标端上,在目标端和源端有且只有一个manager进程.
   它主要作用有以下几个方面:
      启动、监控、重启Goldengate的其他进程,报告错误及事件,分配数据存储空间,发布阀值报告等.
 
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缩写,标示异常结束)
 
3.Pump进程
   pump进程运行在数据库源端,其作用是将源端产生的本地trail文件,把trail以数据块的形式通过TCP/IP 协议发送到目标端,这通常也是推荐的方式。pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件.
   与Pump进程对于的叫Server Collector进程,这个进程不需要引起我们的关注,因为在实际操作过程中,无需我们对其进行任何配置,所以对我们来说它是透明的。它运行在目标端,其任务就是把Extract/Pump投递过来的数据重新组装成远程trail文件.
   pump进程可以在线或者批量配置,他可以进行数据过滤,映射和转换,同时他还可以配置为“直通模式”,这样数据被传输到目标端时就可以直接生成所需的格式,无需另外操作. 直通模式提高了data pump的效率,因为生成后的对象 不需要继续进行检索.
 
在大多数情况下,oracle都建议采用data pump,原因如下:
   1.为目标端或网络问题提供保障:如果只在目标端配置trail文件,由于源端会将extract进程抽取的内容不断的保存在内存中,并及时的发送到目标端。当网络或者目标端出现故障时, 由于extract进程无法及时的将数据发送到目标, extract进程 将耗尽内存然后异常终止。 如果在源端配置了data pump进程,捕获的数据会被转移到硬盘上,预防了异常终止的情况。当故障修复,源端和目标端 恢复连通性时,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文件
   作用:存储事务变化信息(DDL和DML事务操作记录)
   主库上的trail文件是可选的
   备库上的trail文件是必须的(因为Replicat进程需要读取该文件中的DDL或DML SQL用来应用)
   如果在主库上面定义了PUMP进程,那么就需要在主库上创建trail文件,因为PUMP进程将主库上的trail文件以块级别传输给网络上的从库。

OGG内部进程介绍的更多相关文章

  1. Qt 的内部进程通信机制

    Qt 的内部进程通信机制 续欣 (xxin76@hotmail.com), 博士.大学讲师 2004 年 4 月 01 日 Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形 ...

  2. Zygote进程介绍【转】

    本文转载自:http://blog.csdn.net/yangwen123/article/details/17258023 Zygote进程介绍   在Android系统中,存在不同的服务,这些服务 ...

  3. OGG复制进程延迟高,优化方法一(使用索引)

    日常运维过程中,可能发现OGG同步进程延迟很高: 本篇介绍其中的一种方式. OGG复制进程,或者说同步进程及通过解析ogg trail文件,输出dml语句,在目标库执行dml操作,那么延迟高可能性其一 ...

  4. FPGA芯片内部硬件介绍

    FPGA芯片内部硬件介绍 FPGA(Filed programmable gate device):现场可编程逻辑器件 FPGA基于查找表加触发器的结构,采用SRAM工艺,也有采用flash或者反熔丝 ...

  5. Nginx-->基础-->理论-->002:Nginx进程介绍

    一.Nginx进程介绍

  6. 改动Oracle GoldenGate(ogg)各个进程的读检查点和写检查点

    请注意:请谨慎改动Oracle GoldenGate(ogg)各个进程的读检查点和写检查点. 请确保已经 掌握 ogg 各个进程的读检查点和写检查点的详细含义. BEGIN {NOW | yyyy-m ...

  7. 2)Linux程序设计入门--进程介绍

    )Linux程序设计入门--进程介绍 Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 .进程的 ...

  8. GoldenGate -- OGG EXTRACT进程 OGG-00446 报错

    -- :: INFO OGG- Positioning to (Thread ) Sequence , RBA , SCN 0.470706262. Source Context : SourceMo ...

  9. 【翻译自mos文章】OGG replicat 进程使用的 TCP port

    OGG replicat 进程使用的 TCP port 来源于: TCP PORT USED BY REPLICAT PROCESSES (文档 ID 1060954.1) 适用于: Oracle G ...

随机推荐

  1. Struts2知识点总结

    2 Struts2 1 Struts2 简化Servlet编写 2 Struts2使用步骤 1 添加第三方包 2 在web.xml当中配置核心过滤器 <filter> <filter ...

  2. KVM克隆CentOS6虚拟机后无法启动

    启动网卡报如下错误: Bringing up interface eth0: Device eth0 does not seem to be present,delaying initializati ...

  3. 理解依赖注入(Dependency Injection)

    理解依赖注入 Yii2.0 使用了依赖注入的思想.正是使用这种模式,使得Yii2异常灵活和强大.千万不要以为这是很玄乎的东西,看完下面的两个例子就懂了. class SessionStorage { ...

  4. loadrunner之做压力测试要做的准备

    前提B/S架构 1.要有个备库和主库保存一致 到时候做压力测试的时候,要断开主库连接到备库.进行测试.以免主库出现垃圾数据.2.节点 判断单节点能承受多大的压力,如200万的用户账号,10万的在线用户 ...

  5. 学习HTML 第四节.插入图像

    学习HTML 第四节.插入图像 全是文字的网页太枯燥了吧,我们来搞个图片上去! <!DOCTYPE html><html><head><meta charse ...

  6. 180723-Quick-Task 动态脚本支持框架之结构设计篇

    文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本 ...

  7. Selenium2+python自动化-xpath定位语法

    前言    在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语 ...

  8. 基于日志报警插件 elastalert 实现告警

    1.官方http://elastalert.readthedocs.io/en/latest/ 2.报警规则示例 http://elastalert.readthedocs.io/en/latest/ ...

  9. 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

    <Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...

  10. Java线上应用故障排查之一:高CPU占用 (转)

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...