Oracle GoldenGate (简称 OGG)使在不同关系型数据库之间能进行实时同步复制可谓非常强大。
OGG 支持 oracle、sql server、mysql、db2、Sybase 等关系数据库直接的数据复制。OGG 这种灵活特性能够支持多种业务场景。如下图:
OGG 实现原理如图:
OGG 有几个进程使数据同步或转移:Extract,Data pump,Replicat,Trails or extract files,Checkpoints,Manager,Collector
(更多参考官方文档:Introduction to Oracle GoldenGate)
以下进行一个小测试: Windows 平台利用 GoldenGate 同步 SQLServer 到 ORACLE
OGG 同步sql server 原理: 启用 Extract 进程后,sql server 中数据库及表将启用 变更数据捕获(CDC),并读取相关日志中表的日志信息。本例中使用的是 pump 进程传输同步文件记录,这样Extract进程读取出来的记录都保存到文件夹 dirdat 中,保证即使中断也不会影响到数据库截断。(否则:Oracle GoldenGate For SQL Server 未提交事务导致MSSQL日志不截断)
服务器信息:
源端: 192.168.1.123服务器: windows server 2008 x64 数据库: MSSQL 2008 R2
目标端: 192.168.1.89 服务器: windows server 2008 x64 数据库: ORACLE oracle 11g.2.0.4.0
GoldenGate下载地址:
http://www.oracle.com/technetwork/cn/middleware/goldengate/downloads/index.html
https://edelivery.oracle.com/osdc/faces/SearchSoftware
本次测试下载的两个 OGG :
ggs_121210_Windows_x64_MSSQL_64bit.zip (解压可用)
适用于 Windows(64 位)上 SQL Server 的 Oracle GoldenGate 12.1.2.1.0 版 (71 MB)
121210_ggs_Windows_x64_shiphome.zip (安装可用)
适用于 Windows(64 位)上 Oracle 的 Oracle GoldenGate 12.1.2.1.0 版 (239 MB)
使用 https://edelivery.oracle.com/osdc/faces/SearchSoftware 下载,参考:
SQL SERVER 源端重要条件:
企业版:SQL Server Enterprise Edition
启动 SQL Server 代理 (自动)
有权启用:Change Data Capture (CDC)
数据库须为完整回复(FULL)模式
MSSQL端权限:Extract:sysadmin ; REPLICAT:db_owner
当前都使用SQL认证(dblogin ……)
ORACLE 目标端重要条件:
启用归档模式
启用GoldenGate复制
创建用于OGG账户并授予相关权限
/*####################################################################
## SQL Server源端配置
#####################################################################*/
--创建测试数据
use master
go
CREATE DATABASE Demo
go
use Demo
go
CREATE TABLE [dbo].[tab](
[id] [int] NOT NULL identity(1,1) primary key,
[birthDate] [datetime] NULL,
[age] [int] NULL,
[name] [varchar](50) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tab2](