GoldenGate 双向复制解决方案

双向复制方案简介

在双向复制(Bidirectional)方案中,可以采用以下两种部署方式:

方式一:配置源和目标数据库可以同时保持Active 状态,同时进行应用系统的事务处理,

此时需由应用系统进行控制,避免对同一记录进行处理产生的冲突。

方式二:配置源为Active,目标为Standing-by,在源出现故障时,切换到目标数据库。

在源端和目标端都需要配置Extract 和Replicat 来实现双向复制。在双向复制方案中最重要的避免循环,即在由源数据库向目标端插入数据的时候,不应该再产生Trail(CDC 数据),否则将进入一个死循环。GoldenGate 采用排除同步时用户的方式来实现双向复制。

双向复制方案实现过程

在双向复制的过程中,每个数据库既是源数据库又是目标数据库,为便于理解,在下面的描述中,我们将左面的数据库称为“源数据库”,右面的数据库称为“目标数据库”。

2.1 同步表说明

本文以“TCUSTMER”表作为同步的数据库表。建表脚本如下:

CREATE TABLE tcustmer

(

cust_code VARCHAR2(4),

name VARCHAR2(30),

city VARCHAR2(20),

state CHAR(2),

PRIMARY KEY (cust_code)

USING INDEX

);

2.2 用户配置

2.2.1 同步用户

该用户用于在GoldenGate 中将源数据库中的数据同步到目标数据库,该用户必须能够访问源数据库用户和目标数据库用户下面的所有数据。

本文中以“gg_bi”作为同步用户。

2.2.2 源数据库用户

本文中以“gg_src”作为源数据库用户。

2.2.3 目标数据库用户

本文中以“gg_tgt”作为目标数据库用户。

2.3 源数据库端配置

2.3.1 增加Extract

GGSCI > ADD EXTRACT EXTBI, TRANLOG, BEGIN NOW, THREADS 1

EXTRACT added.

GGSCI > EDIT PARAMS EXTBI

EXTRACT EXTBI

USERID gg_bi, PASSWORD gg_bi ――该用户为同步用户

TRANLOGOPTIONS EXCLUDEUSER gg_bi ――将同步用户进行排除,避免循

RMTHOST <TARGET HOST>, MGRPORT 10002

RMTTRAIL ./dirdat/bi

TABLE gg_src.TCUSTMER; ――这里为实际要同步的用户及其数据库表

GGSCI > ADD RMTTRAIL ./dirdat/bi, EXTRACT EXTBI,MEGABYTES 5

GGSCI > START EXTRACT EXTBI

2.3.2 增加Replicat

下面是增加Check Point,如果已经配置检查点,则不用再次执行

GGSCI> EDIT PARAMS ./GLOBALS

增加下面一行

CHECKPOINTTABLE gg_src.ggschkpt

GGSCI> EXIT ――重新登录以激活global 参数

Shell> ggsci

GGSCI> DBLOGIN USERID gg_src, PASSWORD gg_src

GGSCI> ADD CHECKPOINTTABLE

GGSCI > ADD REPLICAT REPBI, EXTTRAIL ./dirdat/bi

REPLICAT added.

GGSCI > EDIT PARAM REPBI

REPLICAT REPBI

USERID gg_bi, PASSWORD gg_bi ――该用户为同步用户

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/REPBI.DSC, PURGE

MAP gg_tgt.tcustmer, TARGET gg_src.tcustmer;

GGSCI > START REPLICAT REPBI

2.3.3 检查启动状态

查看Extract 和Replicat 状态,确保都正常运行

GGSCI > info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING EXTBI 00:00:00 00:00:09

REPLICAT RUNNING REPBI 00:00:00 00:00:04

2.4 目标数据库配置

2.4.1 增加Extract

GGSCI > ADD EXTRACT EXTBI, TRANLOG, BEGIN NOW, THREADS 1

EXTRACT added.

GGSCI > EDIT PARAMS EXTBI

EXTRACT EXTBI

USERID gg_bi, PASSWORD gg_bi ――该用户为同步用户

TRANLOGOPTIONS EXCLUDEUSER gg_bi ――将同步用户进行排除,避免循

RMTHOST <SOURCE HOST>, MGRPORT 10001

RMTTRAIL ./dirdat/bi

TABLE gg_tgt.TCUSTMER;

GGSCI > ADD RMTTRAIL ./dirdat/bi, EXTRACT EXTBI,MEGABYTES 5

GGSCI > START EXTRACT EXTBI

2.4.2 增加Replicat

建立Check Point,同上,这里省略。

GGSCI > ADD REPLICAT REPBI, EXTTRAIL ./dirdat/bi

REPLICAT added.

GGSCI > EDIT PARAM REPBI

REPLICAT REPBI

USERID gg_bi, PASSWORD gg_bi ――该用户为同步用户

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/REPBI.DSC, PURGE

MAP gg_src.tcustmer, TARGET gg_tgt.tcustmer;

GGSCI > START REPLICAT REPBI

2.4.3 检查启动状态

查看Extract 和Replicat 状态,确保都正常运行

GGSCI > info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING EXTBI 00:00:00 00:00:03

REPLICAT RUNNING REPBI 00:00:00 00:00:01

测试

以gg_src 登录源数据库,执行insert 操作:

INSERT INTO tcustmer VALUES(‘WILL‘,‘BG SOFTWARE CO.‘,‘SEATTLE‘,‘WA‘);

以gg_tgt 登录目标数据库,执行insert 操作:

INSERT INTO tcustmer VALUES(‘JANE‘,‘ROCKY FLYER INC.‘,‘DENVER‘,‘CO‘);

在源数据库和目标数据库查看tcustomer 表,都应该包含新插入的两条记录。

在源数据库和目标数据库进行其它操作测试,测试后源数据库和目标数据库数据应保持一致。

时间: 2024-10-10 21:28:04

GoldenGate 双向复制解决方案的相关文章

搭建一个Oracle到Oracle的Goldengate双向复制环境

目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga) DB:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production gg1和gg2互为source和target,所处OS和所安DB均一样. 一.安装GG 在gg1和gg2都运行例如以下操作: (1

搭建oracle到oracle的Goldengate双向复制环境

目标:搭建一个Oracle到Oracle的Goldengate环境(支持DDL+DML). Goldengate结构介绍: 环境: OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga) DB:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production gg1和gg2互为source和target,所处OS和所安DB均一样. 一.安装GG 在gg1和gg2都

GoldenGate配置(二)之双向复制配置

 GoldenGate配置(二)之双向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server release 5.4 Red Hat Enterprise Linux Server release 5.4 Hostname gc1 gc2 Database Oracle 10.2.0.1 Oracle 11.2.0.1 Character Set ZHS16GBK ZHS16GBK OR

Oracle Database 复制解决方案:Oracle GoldenGate

源端数据库配置 [[email protected] ~]# su - oracle [[email protected] ~]$ sqlplus / as sysdba SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/king/ogg01.dbf' size 1024M; Tablespace created. SQL> create user ggs identified by ggs default 

Oracle 数据集成的实际解决方案

就针对市场与企业的发展的需求,Oracle公司提供了一个相对统一的关于企业级的实时数据解决方案,即Oracle数据集成的解决方案.以下的文章主要是对其解决方案的具体描述,望你会有所收获. Oracle 数据集成解决方案 Oracle数据集成解决方案用于在SOA.BI和数据仓库环境中构建.部署和管理以实时数据为中心的架构,包含了Oracle数据集成的所有要素--实时数据移动.转换.同步.数据质量.数据管理和数据服务--能确保各个复杂系统的信息及时.准确.一致. 通过使用Oracle数据集成,企业将

goldengate 12c 12.2 新特性

GoldenGate 12.2已经提供下载,增加了不少新特性 1. 异构配置加强不在需要sourceDefs和AssumeTargetDefs文件,在队列文件中已经包含metadata信息,比如table name, column name, column type等,进一步降低OGG在异构环境下配置的工作量: 2. 内置心跳表在早期的OGG版本中,如果要监控进程的延迟状态,需要手工创建心跳表,现在通过配置就可以启用心跳表监控功能,在GGSCI中add heartBeatTable即可.此时,会

使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务

使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的简单事务复制示例. 2011 年 8 月发布 大多数关注数据复制的 Oracle 技术专家都熟悉 Oracle Streams.在 2009 年之前,Streams 一直是推荐使用的最流行的 Oracle 数据分发技术. 2009 年 7 月,Oracle 收购了 GoldenGate 这一数据库复

GoldenGate 异常处理预案

异常处理一般步骤 如果GoldenGate复制出现异常,可以通过以下步骤尝试解决问题: 1)        通过ggsci>view report命令查找ERROR字样,确定错误原因并根据其信息进行排除: 2)        通过ggsci>view ggsevt查看告警日志信息: 3)        检查两端数据库是否正常运行,网络是否连通: 4)        如不能确定错误原因,则可以寻求Oracle技术支持.在寻求技术支持时一般需要提供以下信息: ü  错误描述 ü  进程报告,位于d

Oracle Restart可以用来给Oracle GoldenGate 做 High Availability 使用么?

Oracle Restart可以用来给Oracle GoldenGate  做 High Availability 使用么? 来源于: Can Oracle Restart be used with Oracle GoldenGate for High Availability ? (文档 ID 2025185.1) 适用于: Oracle GoldenGate - Version 11.2.1.0.20 and later Information in this document applie