GoldenGate 雙向複製解決方案

2022-06-07 13:30:15 字數 4336 閱讀 8788

1雙向複製方案簡介

在雙向複製(bidirectional)方案中,可以採用以下兩種部署方式:

方式一:配置源和目標資料庫可以同時保持active 狀態,同時進行應用系統的事務處理,

此時需由應用系統進行控制,避免對同一記錄進行處理產生的衝突。

方式二:配置源為active,目標為standing-by,在源出現故障時,切換到目標資料庫。

在源端和目標端都需要配置extract 和replicat 來實現雙向複製。在雙向複製方案中最重要的避免迴圈,即在由源資料庫向目標端插入資料的時候,不應該再產生trail(cdc 資料),否則將進入乙個死迴圈。goldengate 採用排除同步時使用者的方式來實現雙向複製。

2雙向複製方案實現過程

在雙向複製的過程中,每個資料庫既是源資料庫又是目標資料庫,為便於理解,在下面的描述中,我們將左面的資料庫稱為「源資料庫」,右面的資料庫稱為「目標資料庫」。

2.1同步表說明

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 , 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 , 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

3測試

以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採用PUMP單向複製 五

五 部署goldengate pump方式單向複製 1.配置源端goldengate 1 將之前的抽取程序刪除並重新配置 delete extract eini 1 2 配置管理程序和抽取程序 ggsci dblogin userid ogg,password ufsoft edit params ...

OGG DML雙向複製及DDL雙向複製

二 dml雙向複製 雙向複製就是再配置一組,將ogg2上的操作傳遞到ogg1上 1 在目的端配置補充日誌 強制記錄日誌 表的補充日誌。這裡在之前已經配置完成,如果沒有配置,請執行如下命令 2 目的端配置日誌抽取程序 置日誌抽取配置檔案 ggsci target edit params eora 2 ...

GoldenGate PUMP雙向複製 六

1.配置源端goldengate 1 配置管理程序和抽取程序 ggsci dblogin userid ogg,password ufsoft edit params mgr 編輯管理程序 port 7809 start mgr edit params globals ggschema ogg ed...