双向复制方案简介

在双向复制(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 表,都应该包含新插入的两条记录。

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

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

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

    目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 ...

  2. Goldengate双向复制配置

    一.Goldengate双向复制配置 1.1.在进行如下配置之前,先在源数据库source system(原来的目标数据库)端 添加辅助的redolog配置: SQL>alter databas ...

  3. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  4. OGG实现两台Oracle数据库的同步

    今天通过最简单的一个例子,给大家讲解下 goldengate 实现两台Oracle数据库的同步.内容如下:1.配置数据库信息.2.安装golden gate.3.配置golden gate.4.测试同 ...

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

     GoldenGate配置(二)之双向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Serve ...

  6. oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate

    oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate --继昨天的测试,这一篇实施单实例双向复制(完全重新搭建) --环境不变 db1,db2( ...

  7. 异构GoldenGate 12c 双向复制配置

    1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...

  8. goldengate 12c 12.2 新特性(updated)

    GoldenGate 12.2已经提供下载,增加了不少新特性 1. 异构配置加强不在需要sourceDefs和AssumeTargetDefs文件,在队列文件中已经包含metadata信息,比如tab ...

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

    使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...

随机推荐

  1. codeblocks开源的c、c++编译器,小巧方便

    1.下载带gun的版本 2.设置编译的位置 3.创建项目 4.执行项目 有意思的开源的c编译器 ~~~

  2. Install Rails on ubuntu 12.04 LTS

    There are basically there ways to install Rails development environment on your ubuntu linux system, ...

  3. 修改echarts环形图的牵引线及文字位置

    修改echarts环形图的牵引线及文字位置,下面代码及效果不仅如此,也包含了其它的效果哦.有问题可以留言. 根据echarts官方示例修改效果: 官方示例图: 修改效果图: 直接上代码:其它不多说. ...

  4. Swift学习笔记(10):类和结构体

    目录: 基本 属性 方法 下标 继承 基本 使用class和struct关键字定义类和结构体. ・类是引用类型,结构体和枚举是值类型 ・值类型被赋予给一个变量.常量或被传递给一个函数时,已值拷贝方式传 ...

  5. 电信流氓注入JS

    (function () { var cs_url = _pushshowjs_.url, cs_delay = window.cs_delay; var cs_styles = window.sty ...

  6. 阿里巴巴战略投资印度最大支付平台Paytm

    腾讯科技讯 9月29日,据路透社报道,阿里巴巴和印度最大移动支付和商务平台Paytm今天发布联合声明,宣布阿里巴巴集团及其旗下金融子公司蚂蚁金服将向Paytm注入新资金.阿里称这是一项“战略性的”投资 ...

  7. js正则学习小计

    //元字符 {} () ^ $ . ? + //预定义字符 \d \D \w \W \s \S //量词 {n,m} {n} {n,} + ? * //贪婪和惰性 //反向引用 //分组 //候选 / ...

  8. How Javascript works (Javascript工作原理) (五) 深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势

    个人总结: 1.长连接机制——分清Websocket,http2,SSE: 1)HTTP/2 引进了 Server Push 技术用来让服务器主动向客户端缓存发送数据.然而,它并不允许直接向客户端程序 ...

  9. tinymce原装插件源码分析(一)-hr

    tinymce简介 tinymce是一款能方便无限扩展的网页富文本编辑器. tinymce原装插件已经十分丰富,对于文本编辑(blog等文章)是绰绰有余,但是应对一些复杂的应用,比如在上面开发html ...

  10. 支持JSONP跨域的对象

    支持JSONP跨域的对象 1:img 2:iframe 3:link 4:script 为什么,JSONP 最终选择是 script 实现呢?度娘来也! 平常我们进行JSONP请求数据,因为 json ...