Oracle Golden Gate - 概述

张彤 2022年03月17日 1,245次浏览

Oracle Ogg 的定位及产品战略

OGG在oracle公司的产品线是Fusion middleware ,也就是中间件产品线下的产品。
在oracle 收购golden gate 公司后,与原有的Data Guard 和ODI互为补充,共同为企业提供跨平台实时数据同步的解决方案。
Oracle 对产品Streams将不再做任何重大的改进,而是把Stream优秀的特性集成到Stream上,另一项产品DATA GUARD LOGICAL STANDBY 也是同样的命运,oracle ogg成为数据同步中间件的主力产品被整合。

Golden Gate 支持的平台及数据库

Oracle 数据库支持几乎市面上所有主流的数据库,官方文档将适用分为做了一下分类

Oracle Databases

Oracle Autonomous Data Warehouse

Oracle Autonomous JSON Database

Oracle Autonomous Transaction Processing

Oracle Database Appliance

Oracle Database Cloud Service

Oracle Database Enterprise Edition

Oracle Database Standard Edition

Oracle Exadata

Oracle Exadata Cloud at Customer

Oracle Exadata Cloud Service

Streaming and Events

Amazon Kinesis Data Streams

Amazon MSK

Apache Kafka

Azure Event Hub

Confluent Kafka Connect

Confluent Platform (including managed Confluent on AWS/Azure)

Google Pub/Sub (Kafka compatibility mode)

Java Messaging Service (including IBM MQ, Rabbit MQ, others)

Oracle Cloud Infrastructure Streaming Service

Solace Event Broker

Big Data Platforms

Amazon S3 Object Storage

Apache Druid

Apache HBase

Apache HDFS

Apache Hive

Apache Ignite

Azure Data Lake (BLOB) Storage

Cloudera Data Platform

Cloudera Hadoop

Flat Files, local file systems

Gridgain In-Memory Cache

Hortonworks Data Platform

MapR Hadoop

Oracle Cloud Infrastructure Object Storage

Non-Oracle Databases

FairCom DB

Greenplum

HPE Enscribe

HPE NonStop SQL/MP

HPE Nonstop SQL/MX

IBM Db2 for i

IBM DB2 for z/OS

IBM Db2 LUW

IBM Informix

IBM Netezza Performance Server

MariaDB

Microsoft SQL Server

MySQL Enterprise Edition

PostgreSQL and derivatives

SAP HANA

Snowflake

Sybase Adaptive Server Enterprise

Teradata

Vertica

Cloud Stores

Amazon Aurora MySQL

Amazon Aurora PostgreSQL

Amazon RDS for MariaDB

Amazon RDS for MySQL

Amazon RDS for Oracle

Amazon RDS for PostgreSQL

Amazon RDS for SQL Server

Amazon Redshift

Amazon S3 Object Storage

Azure Data Lake Gen2

Azure Database for MySQL

Azure Database for PostgreSQL

Azure SQL Database

Azure Synapse Analytics

Google BigQuery

Oracle Cloud Infrastructure Object Storage

Oracle Cloud Object Storage (Gen1)

Oracle MySQL Database Service (including Heatwave)

Snowflake

Teradata on AWS

Vertica

Open Source

Apache Cassandra

Apache Druid

Apache HBase

Apache HDFS

Apache Hive

Apache Ignite

Elasticsearch

MariaDB Server

MySQL Community Edition

PostgreSQL

Oracle Golden Gate 的定位

  1. 零宕机时间数据库升级和迁移
  2. 满足用户亚秒级实时数据的需求
  3. 可持续的数据高可用和实时商务功能
  4. 异构平台及跨操作系统实时数据同步
  5. 对原系统和目标系统是非侵入式

Oracle 技术架构

和传统的逻辑复制一样,ogg的实现原理是通过抽取源端的redo logarchive log,然后通过TCP/IP 投递到目标端。最后解析还原到目标端,使目标端实现数据同步。
Oracle技术架构.png

OGG 的主要进程及组成如下:

Manger 进程

  • mgr 是ogg的控制进程,进程运行在源端目标端上,其主要作用如下:

    1. 启动,监控,重启ogg的其他进程
    2. 报告错误事件
    3. 分配数据存储空间
    4. 发布阈值报告
  • 每个源端/目标端有且只能有一个Manger进程。其运行状态有两种,RUNNING,STIOPPED

Extract 进程

  • extract 进程部署在源端,负责从源端数据表或日志中捕获数据。
    Extract进程的作用如下:

    1. 初始数据装载阶段:Extract 进程直接从源端的数据表中抽取数据
    2. 同步变化捕获阶段:Extract 进程负责捕获源端数据的变化(DML和DDL)
  • Extract 进程利用内在的checkpoint 机制,周期性的检查并记录其读写的位置,通常是写入本地的trail文件。
    此机制是为了保证如果Extract进程终止或操作系统宕机,重启Extract进程后,Golden Gate能够恢复到以前的状态。
    从上一个断点处继续执行,而不会有任何数据损失。

  • Extract进程的状态包括

    1. STOPPED 停止
    2. STARTING 启动中
    3. RUNNING 运行中
    4. ABENDED 异常终止

Pump 进程

  • Pump 进程运行在源端。
  • pump 进程的作用是,如果使用了trail文件,那么pump进程就会将trail文件以数据库的形式,通过TCP/IP协议发送到目标端。
    Pump进程本质是Extract进程的一种特殊形式。如果不适用trail文件,那么局是Extract进程抽取完数据后,直接投递到目标端。
  • 与Pump进程对应的,是Collector进程 ,这个进程不需要配置,运行在目标端,其主要作用就是接收Pump进程投递过来的数据块,再将他们重新组合成Trail文件。人们称之为远程trail文件。

Trail 文件

  • 为了更高效,更安全的将数据从源端投递到目标端,ogg引入了trail文件的概念。

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

  • 值得一提的是,trail文件并不是必须的,人们可以在配置Extract信息的时候,通过TCP/IP协议,直接将日志信息投递到目标端,但通常不建议这样做,因为有宕机或网络故障,数据可能丢失。

Replicate 进程

  • Replicate 进程,通常也叫做应用进程,运行在目标端
  • 负责读取目标端Trail文件的内容,将其解析为DML,DDL语句,然后在目标端数据库进行执行。
  • 和Extract进程相似,Replicate进程也有内部的checkpoint机制,保证进程重启后,可以从上次中断的地方开始恢复,而无数据损失的风险。

GGSCI

  • ggsci 是 GoldenGate SoftWare Command Interface 的缩写,提供了丰富的ogg操作命令,如创建,修改,监控ogg进程等。
  • 如果需要GUI方式的图形管理界面,需要购买GoldenGate Director.

OGG数据流示意

Data -Extract-> local Trail file -Pump-> DataBlock SRC -TCP/IP-> TAR DataBlock -Collector-> Trail file -Replicate->Target DataBase

Golden Gate的复制模式

ogg复制模式.png

UNDIRECTIONAL

Reporting Instance 一对一

  • 典型应用就是数据容灾,通常远端数据库为生产端,目标端数据库为容灾端。
  • 另外一种场景就是把源端的OLTP系统产生的交易日志发送到目标端,使用BI数据仓库或者OLAP。

BI-DIRECTIONAL

instant Failover 'Active-Active' 双活

PEER-TO-PEER

Load Balancing,High Availability 均衡负载,高可用

BROADCAST

Data Distribution 广播,数据分发

CONSOLIDAION

Data Warehouse.Mart/Store 数据仓库

CASCADING

Scalability,DataBase Tiering 可伸缩性,数据库分层,冷热数据分离