Oracle容灾 - GoldenGate

1. 请说明一下 Oracle GoldenGate 的模块组成和逻辑结构。

<控制全局的Manager进程
抓取源端数据库修改信息的extrace进程
存放已提交的修改性事务的trail文件
传输数据的Pump进程

记录其读写位置的Checkpoint文件
将trail文件里的信息进行应用的Replicat进程

命令行工具GGSCI>

在这里插入图片描述
在这里插入图片描述

2. 请分别对 OGG 的几个重要组件:Manager 进程、Extract 进程、Pump 进程、Relicate 进程以及 Checkpoint文件和 Trail 文件的定义及用途做一个详细说明。

Manager进程
    Committed transactions are captured(and can be filtered) as they occur by reading the transaction logs.
    GG的控制进程,运行在源端和目标端上。负责启动、监控、重启GG的其他进程、报告错误及事件、分配存储空间、发布阈值报告等。
    <runing | stopped>
Extract进程
    GG stages and queues data for routing.
    运行在数据库源端,负责从源端数据表或者日志中捕获数据。
        在初初始装载阶段,extract进程直接从源端的数据表中抽取数据。
        初始化数据同步完成以后,extract进程负责捕获源端数据变化(DML DDL)。
        extract进程可以捕获所有已配置的需要同步的对象变化,但只会将已提交的事务发送到远程的trail文件用于同步。
        当事务提交时,所有和该事物相关的日志记录都以事务为单元被顺序记录到trail文件中。
Pump进程
    GG ditributes data for routing to targets.
    运行在数据库源端,作用是将源端产生的本地trail文件以数据块的形式通过TCP/IP协议发送到目标端。
    本质是extract的一种特殊形式,如果不使用源端trail文件,那么extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件。
Relicate进程
    Replicat applies data with transaction integrity, transforming the data as required.
    应用进程,运行在目标端,是数据传递的最后一站,负责读取目标端trail文件的内容,并将其解析为DML或者DDL语句,然后应用到目标数据库中。
    和extract进程一样,replicat也有其内部的checkpoint机制,以保证重启后可以从上次记录的位置开始恢复而不会造成数据的不一致。
Checkpoint文件
    extract进程利用其内在的一种称为checkpoint的机制周期性地记录其读写的位置,以保证在进程终止或者操作系统宕机后重新启动extrace时,GG可以恢复到先前的正确状态,即从上一个断点继续往下运行,从而保证所同步数据的完整性。
Trail文件
    GG是是通过trail文件把数据库事务信息从源端投递到目标端的。extract抽取完整数据后,GG会将抽取的事务信息记录在专有格式的trail文件中,然后由pump负责把源端的trail文件投递到目标端由replicat负责解析并执行,因此源、目标端都会存在trail文件。
    用途:将事务信息持久化以防止单点故障,并使用checkpoint机制来记录其读写的位置,一旦故障发生,数据可以根据checkpoint记录的位置重新进行传递。

3. 为 OGG 进行源端和目标端数据库的配置都分别涉及到哪些参数?请说明一下各自的配置步骤和过程。

<为数据库配置归档、应用附加日志、启动强制日志功能>
源端
    创建GG复制用户 <并授权>
    打开数据库归档、辅助日志功能
        <启动归档日志、附加日志应用、关闭回收站、启动强制日志>
    配置对复制的DDL支持 
        <在$GG_HOME目录下运行marker_setup.sql、ddl_setup.sql、role_setup.sql脚本
        将GGS_GGSUSER_ROLE权限授予复制用户再执行ddl_enable.sql确保对复制的DDL语句能够解析>
    数据库服务TNS的配置 <在tnsname.ora内添加+ASM和orclb服务,并检查>
目标端
    创建GG复制用户  <并授权>
    数据库服务TNS的配置 <在tnsname.ora内添加+ASM和orcla服务,并检查>

4. 源端和目标端主机的配置各自有哪些必须的要素?

源端
    配置Manager进程
        <编辑文件包括端口号、动态端口区间以及功能信息>
    配置Extract进程
        <文件信息:进程名、环境变量
        用户信息:trail文件目录、抽取数据对象>
    配置Pmp进程
        <传输数据(文件内容:进程名称、环境变量、连接用户、目标端主机端口号和trail文件存放位置、传输的数据的对象)
目标端
    配置Manager进程
        <内容与源端一致>
    <checkpoint表>   
    配置Replicat进程
         <进程文件信息:进程名、环境变量
        用户、DDL操作报告>

5.请对 OGG 的初始化加载过程进行一个详细的说明。

<首先需要在原来实时同步加载的基础上再建立一个extract进程和replicat进程用于将源端数据直接传输给目标端,不需要中间件。
同时原来建立的抽取进程也在通过一般的形式将实时数据传输给目标端的replicat进程。>

TCP/IP
在这里插入图片描述

6. OGG 初始化加载中使用了 exp/imp 工具,从源端导出时为什么要使用带有 SCN 的导出命令?

flashback_scn 导出特定scn时间点的数据
<标记在源端导出的日志中的重做数据的位置,
因为此时应用进程已经关闭源端数据已经不能应用到目标端,
明确下次启动replicat进程是应该从哪里开始恢复确保没有数据的丢失>

7. 对于 Oracle 数据库的容灾技术 Data Guard 和 GoldenGate, 请从技术实现和适用场合的角度,谈谈你看法和理解。

容灾技术 技术实现 适应场景
DataGuard 一个主库和最多配置30个物理和逻辑备库,快照备库组成。 容灾,具备高可用、性能提升、数据保护以及故障恢复
GoldenGate 基于日志的结构化数复制软件,通过解析源数据库联机日志或归档日志以获取数据的增量变化,然后再将这些变化应用到目标数据库,从而实现数据库与目标数据库的同步。 在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而广泛应用在应急系统、联机报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级及移植以及双业务中心等多个关键应用场合。
容灾技术 Oracle DataGuard Oracle GoldenGate
原理 复制归档日志或在线日志 抽取在线日志中的数据变化,转换为GGS自定义的数据格式存放在本地队列或远端队列中
稳定性 作为灾备的稳定性极高 稳定性不如DataGuard
维护 维护简单,极少出现问题 命令行方式,维护较复杂
对象支持 完全支持 部分对象需手工创建于维护
备份端可用性 备份端处于恢复或只读状态,在只读状态下不能同时进行恢复。 两端数据库是活动的,备份端可以提供实时的数据查询及报表业务等,从而提高系统整体的业务处理能力,充分利用备份端的计算能力,提升系统整体业务处理性能。可以实现两端数据的同时写入
接管时间 数据库工作在mount状态下,接管业务时,数据库要open 可实现立即接管
复制方式 通过恢复机制实现的,无法实现同步复制 GoldenGate可以提供秒一级的大量数据实时捕捉和投递,异步复制方式,无法实现同步复制
资源占用 复制通过数据库的LGWR进程或ARCN进程完成,占用数据库少量资源 业务高峰时在数据抽取转换时消耗系统资源较多,低峰时占用较小
异构数据库支持 单一数据库解决方案,仅运行在Oracle数据库上,源端和目标端操作系统必须相同,版本号可以不同 可以在不同类型和版本的数据库之间进行数据复制。如ORACLE,DB2,SYBASE,SQL SERVER,INFORMIX、Teradata等。
带宽占用 使用Oracle Net传输日志,可通过高级压缩选项进行压缩,压缩比在2-3倍 利用TCP/IP传输数据变化,集成数据压缩,提供理论可达到9:1压缩比的数据压缩特性
拓扑结构 可以实现一对多模式 可以实现一对一、一对多、多对一、双向复制等多种拓扑结构
适用于不同操作系统如windows、linux、unix、aix等

猜你喜欢

转载自blog.csdn.net/hezuijiudexiaobai/article/details/110402118