前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试768】在Oracle中,请简单描述一下OGG的体系结构。

【DB笔试面试768】在Oracle中,请简单描述一下OGG的体系结构。

作者头像
小麦苗DBA宝典
发布2020-05-07 15:20:29
5180
发布2020-05-07 15:20:29
举报

题目部分

在Oracle中,请简单描述一下OGG的体系结构。

答案部分

下图为OGG进程结构图:

如上图所示,OGG主要包含Manager进程、Extract进程、Pump进程、Replicat进程,下面对其进行说明:

(1)Manager进程是OGG的控制进程,运行在源端和目标端上。它的主要作用包含:启动、监控、重启OGG的其它进程;报告错误及事件;分配数据存储空间;发布阀值报告等。在目标端和源端有且只有一个Manager进程,在Windows系统上,Manager进程作为一个服务来启动,而在Linux/Unix系统上则是一个系统进程。

按照OGG的工作原理和体系结构,在每个复制数据源和目标端都需要安装一套OGG软件,同时需要分别启动一个OGG实例,一个OGG实例就是一个管理进程(Manager Process),这个管理进程也是整个OGG实例运行时最主要的控制进程。

(2)Extract进程运行在数据库源端,负责从源端数据表或者日志中捕获数据。在初始数据装载阶段,Extract进程直接从源端的数据表中抽取数据;在初始数据同步完成以后,Extract进程负责捕获源端数据的变化(包括DML和DDL)。Extract进程会捕获所有已配置的需要同步的对象变化,但只会将已提交的事务抽取到本地的trail文件中用于同步。当事务提交时,所有和该事务相关的日志记录被以事务为单元顺序地记录到trail文件中。Extract进程利用其内在的Checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件中。这种机制是为了保证如果Extract进程终止或者操作系统宕机,Manager进程在重启Extract进程后,OGG能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据丢失,这样就可以保证数据的完整性了。Extract进程的状态包括Stopped(正常停止)、Starting(正在启动)、Running(正在运行)和Abended(Abnomal End,异常结束)。GGSCI命令接口工具对于每个OGG实例可以支持并发300个Extract和Replicat进程。

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

(3)Data Pump进程(简称Pump进程)运行在数据库源端。其作用是如果源端使用了本地的trail文件,那么Pump进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这通常也是推荐的方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用trail文件,那么就是Extract进程在抽取完数据以后,直接投递到目标端。注意:无论是否使用Pump进程,在目标端都会生成trail文件。Pump进程可以在线或者批量配置,它可以进行数据过滤,映射和转换,同时它还可以配置为“直通模式”,这样数据被传输到目标端时就可以直接生成所需的格式,无需另外操作。直通模式提高了Data Pump的效率,因为生成后的对象不需要继续进行检索。

在OGG的生产环境中,一般都要配置Pump进程。这是因为,当网络或者目标端出现故障时,由于Extract进程无法及时的将数据传送到目标端,导致Extract进程将耗尽内存然后异常终止。如果在源端配置了Pump进程,那么由Extract捕获的数据会被转移到本地硬盘上(trail文件),这样就预防了异常终止的情况。当故障修复,源端和目标端恢复连通性时,Pump进程继续发送源端的trail文件到目标端。

与Pump进程对应的叫Server Collector进程,不过对于这个进程不需要特别地关注,因为在实际操作过程中,无需DBA对其进行任何配置即可自动运行。Server Collector进程运行在目标端,其任务就是把Extract或Pump投递过来的数据重新组装成远程trail文件。

(4)Replicat进程也叫应用进程,运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库中。和Extract进程一样,Replicat也有其内部的Checkpoint机制,保证重启后可以从上次记录的位置开始恢复而无数据损失的风险。Replicat进程的状态和Extract进程的状态一样,也包含4种,分别为:Stopped(正常停止)、Starting(正在启动)、Running(正在运行)和Abended(Abnomal End,异常结束)。

RAC下的OGG

对于RAC环境,OGG的相关软件和工作目录需要配置在共享磁盘(Shared Disk)环境中,从而保证对RAC的所有节点都是可用的,从任何一个节点都可以启动OGG的进程。当其中一个节点出现异常时,可以在剩余的节点启动而无须修改任何配置参数。否则如果运行在单个节点上的话,需要将剩余节点中的归档日志通过一定的技术共享出来并加载到OGG的运行节点。另外,OGG也要求RAC的所有节点必须保持时钟同步。

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● QQ:646634621 QQ群:618766405

● 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档