技术开发 频道

Oracle Golden Gate数据备份原理简介

  【IT168 评论】Oracle Golden Gate是一种基于日志的结构化数据复制备份软件,它通过解析Source Database在线日志或归档日志获得数据的增量变化,再将这些变化应用到Target Database,从而实现源数据库和目标数据库之间的同步。

  Oracle Golden Gate可以实现在IT异构平台之间实现大量数据秒级的实时同步,由于其功能强大,所以用于很多应用系统,像在线报表系统、实时数据仓库供应、数据同步、数据移植、双业务中心等;同时,Oracle Golden Gate可以实现一对一、一对多、多对一、级联等多种拓扑结构。

  Oracle官方也提供了Oracle Golden Gate软件下载和在线学习文档(11g R2)。

  Golden Gate拓补

Oracle Golden Gate数据备份原理简介

  Oracle Golden Gate可以在以下的情况下被配置:

  1. 从一个数据库静态提取数据,将这些数据加载到另外一个数据库

  2. 为了使源库和目标库保持一致,连续性的提取和复制事务的DML操作和DDL改变

  3. 从数据库中提取数据,复制到数据库外部的一个文件中

  Golden Gate组件

  下图展示了一个用于初始化数据和同步DML/DDL操作的Oracle Golden Gate逻辑架构图,这种被建议的可变化模式依赖于业务需求。

Oracle Golden Gate数据备份原理简介

  Extract

  此进程运行的Source System,它是Golden Gate的Extraction(capture提取)机制,其主要用于以下目的:

  1. Initial Loads:初始化加载数据,从源对象直接捕获提取一个当前的、静态的数据集(这里是指用EXPDP/IMPDP工具把数据从源库导入到备库,对此工具还不了的的同学可以参考Oracle工具EXPDP详解& IMPDP详解)

  2. Change Synchronization:改变同步,在初始化同步完成后Extract捕获DML & DDL操作,使Source Database与另一个数据集保持同步。

  Extract可以通过以下方式捕获源数据库数据:

  1. 如果是初始化加载,可以直接从Source Tables捕获

  2. 从数据库的Recovery Logs或者Transaction Logs(像Oracle的Redo Log或者是Sql/MX的Audit Trails),实际中捕获数据的方法依赖于数据库类型

  3. 第三方捕获模块,此方式提供了一个通讯蹭,将数据和源数据从外部的API传送到Extract API,由数据供应商或者第三方供应商提供该组件。

  当Extract配置为Change Synchronization时,Extract会对其配置的对象上执行的DML & DDL进行捕获,Extract存储这些操作直到该操作的事务提交或者回滚;当收到的是事务回滚时,Extract会丢弃这个事务中的操作,当收到的是事务提交时,Extract会将这个事务持久化到磁盘上的一系列文件中,此类文件叫Trail,这些文件排队等待被传输到Target Database。事务中的所有操作以序列化被组织的事务单元写入到Trail中,这种设计即确保了速度也保证了数据的完整性。

  可以同时配置多个Extract进程去操作不同的对象。例如,当数据变动量太大的时候,可以使用两个Extract进程并行提取和传送到两个Replicat进程以最小化目标等待时间,每个Extract需要分配一个Group。

1
相关文章