Oracle DML/DDL同步資料(OGG_12.2_for_Windows)

chenoracle發表於2018-01-02

Oracle DML/DDL 同步資料 (OGG_12.2_for_Windows)



Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)一、環境準備並安裝 GoldenGate

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)1、基本環境

1)  源端

IP 地址: 10.6.252.44

資料庫: Oracle 11.2.0.4

SID: cjc

作業系統版本: Windows 7

ogg 版本: Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401

ggs_Windows_x64_shiphome.zip

2)  目標端

IP 地址: 10.11.82.56

資料庫: Oracle 11.2.0.4

SID: chenjch

作業系統版本: Windows 7

ogg 版本: Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401

ggs_Windows_x64_shiphome.zip

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)2、配置日誌模式

源伺服器端

(1) 配置歸檔模式

sqlplus / as sysdba

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

(2) 配置日誌模式 ( 開啟強制規檔與補充日誌模式 )

alter database add supplemental log data; 

alter database force logging;

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

alter system set recyclebin=off scope=spfile; 

(3) 檢視配置結果:

SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;

LOG_MODE    SUPPLEME FOR

------------ -------- ---

ARCHIVELOG  YES      YES

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)3、建立 GoldenGate 使用者帳號

su - oracle

sqlplus / as sysdba;

create tablespace ogguser datafile 'D:\APP\ADMINISTRATOR\ORADATA\CJC\ogguser.dbf' size 10m autoextend on next 1m maxsize unlimited;

create tablespace ogguser datafile 'D:\APP\ADMINISTRATOR\ORADATA\CHENJCH\ogguser.dbf' size 10m autoextend on next 1m maxsize unlimited;

create user ogguser identified by ogguser

default tablespace ogguser

temporary tablespace temp;

grant connect,resource,dba to ogguser;

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)4、安裝 GoldenGate 軟體

ogg12 版本安裝是圖形介面,選擇安裝版本 (11);

D:\ogg\ggs_Windows_x64_shiphome\Disk1\setup.exe

啟動圖形介面後,選擇

OGG 目錄 :D:\app\Administrator\product\11.2.0\oggcore_1 --- 需要提前建立

Oracle 目錄 :D:\app\Administrator\product\11.2.0\dbhome_1

直接安裝即可;

安裝後, D:\app\Administrator\product\11.2.0\oggcore_1 下會包含所有目錄,無需執行 create subdirs 命令;

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)5、模擬生產庫,初始化資料

建立測試使用者及初始化資料

create user test identified by test;

grant connect ,resource ,dba to test;

conn test/test

create table test (id number ,name varchar2(20));

建立包含 CLOB 欄位的表並初始化

create table t_clob(tid number,c_clob clob);

Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)二、  GoldenGate DML 同步配置

Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)1 GoldenGate DML 同步源端配置

1)  先配置 DML 同步

cd D:\app\Administrator\product\11.2.0\dbhome_1

ggsci.exe 

dblogin userid ogguser password ogguser

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)1、源 MGR 程式

1)  編輯主程式組

edit params mgr

PORT 7809

dynamicportlist 7800-8000

autorestart extract *,retries 5,waitminutes 2,resetminutes 5

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7

LAGREPORTHOURS 1  

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

說明 :

port  指定 mgr 程式通訊埠

dynamicportlist  表示 mgr 程式可以為源與目的端動態通訊指定埠 ,ogg12 已經廢棄;

autorestart extract*  表示自動重啟 extract 程式組,每 2 分鐘嘗試重啟所有程式,重試 5 次,每 5 分鐘清零。

minkeepdays 7   佇列傳遞結束後 , 依然保留本地佇列 7

LAGREPORTHOURS 1         /*  每隔 1 小時檢查延遲報告 

LAGINFOMINUTES 30        /*  每隔 30 分鐘檢查延遲 , 如果超過延遲閾值 , 將寫入錯誤日誌 

LAGCRITICALMINUTES 45    /* 延遲閾值 45 分鐘

2)  啟動主管理程式

start mgr

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)2 、配置 Extract 程式組

1)  編輯配置檔案

edit param ext1

extract ext1

setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

userid ogguser,password ogguser

exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd

table test.*;

說明 :

extract ext1 定義 extract ?? 名字

dynamicresolution

setenv 設定環境變數

userid  登入資料庫

exttrail 指定本地 trail 檔案地址

table  定義同步的表

AMERICAN_AMERICA.AL32UTF8  實驗環境的字符集,可用 SELECT userenv('language') from dual; 查出

TRANLOGOPTIONS  CONVERTUCS2CLOBS  clob 大欄位的轉換

GETTRUNCATES  獲取 Truncate 操作

tranlogoptions rawdeviceoffset 0    /*  裸裝置檔案偏移量 (AIX 系統專有引數 ) ,此實驗不用

2)  新增抽取程式

add extract ext1,tranlog,begin now

3)  新增本地 trail 檔案

add exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd,extract ext1

說明 :

建立本地 trail 檔案,主 extract 程式負責寫這部分檔案, pump 負責把這部分檔案傳到目標伺服器端。

4)  啟動服務

start extract ext1

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)3 、配置 Pump 程式組

1)  編輯配置檔案

edit param extpump

extract extpump

dynamicresolution

passthru

rmthost 10.11.82.56,mgrport 7809,compress

rmttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb

table test.*;

2)  新增 pump 程式

add extract extpump,exttrailsource D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd

3)  新增遠端 trail 檔案

add rmttrail /ogg/app/oracle/dirdat/mb,extract extpump

說明 指定遠端 trail 檔案

4)  啟動 pump 程式

start extract extpump

至此:源端配置完成,檢視相關程式是剖正常啟動

命令:

info all  檢視所有程式的狀態

view report ext1  可檢視失敗程式的報錯

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)4 、目標端初始化

建立測試使用者及初始化資料

create user test identified by test;

grant connect ,resource ,dba to test;

conn test/test

create table test (id number ,name varchar2(20));

建立包含 CLOB 欄位的表並初始化

create table t_clob(tid number,c_clob clob);

Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)2 GoldenGate DML 同步目標端配置

安裝 ogg 軟體,安裝目錄和原伺服器一樣,安裝過程忽略

資料庫上進行配置,建立使用者,授權

create user ogguser identified by ogguser

default tablespace ogguser

temporary tablespace temp;

grant connect,resource,dba to ogguser;

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)1 、目標端 MGR 程式

cd D:\app\Administrator\product\11.2.0\dbhome_1

ggsci.exe 

dblogin userid ogguser password ogguser

1)  編輯配置檔案

edit param mgr

port 7809

dynamicportlist 7800-8000

autostart er *

autorestart extract *, waitminutes 2, resetminutes 5

lagreporthours 1

laginfominutes 3

lagcriticalminutes 5

purgeoldextracts D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\rt*, usecheckpoints, minkeepdays 3

2)  啟動

start mgr

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)2 、新增檢查表

說明 當我們在 GLOBALS  檔案裡指定了預設的 checkpoint  之後,新的 Replicat groups  在建立時會自動使用這個引數,不需要其他指令

1)  編輯全域性配置檔案

GGSCI (dg2) 4> edit param ./GLOBALS

CHECKPOINTTABLE ogguser.checkpoint

2 exit # 這裡需要退出 ggsci 終端

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)3 、新增 checkpoint

./ggsci

GGSCI (dg2) 1> dblogin userid ogguser password ogguser

GGSCI (dg2 as ogguser@mbdb) 2> add checkpointtable ogguser.checkpoint

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)4、配置目標端 Peplicat 程式組

1)  編輯配置檔案

edit params repl

replicat repl

userid ogguser,password ogguser

reperror default,discard

discardfile D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes 4096 ----megabytes 只過小可能會導致 repl 無法啟動

map test.*, target test.*;

2)  新增複製程式

add replicat repl,exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb, CHECKPOINTTABLE ogguser.checkpoint

3)  啟動程式

start repl -----aftercsn

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)5、可以檢視 checkpoint 狀態

su - oracle

sqlplus ogguser/ogguser

SQL> select tname from tab;

TNAME

-------------------------------------

CHECKPOINT TABLE

CHECKPOINT_LOX TABLE

select * from checkpoint;

1 ogg_11.1.1.1.2 只有 CHECKPOINT 一張表。

2 ogg_11.2.x.x.1 之後的版本有 CHECKPOINT,CHECKPOINT_LOX 兩張表。

檢視相關程式是否正常啟動

info all 

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)6、驗證同步

源端對 test 使用者下所有表進行 insert,update,delete 操作,確保目標端可以正常同步所有 DML 操作產生的資料;

Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)三: GoldenGate DDL 同步配置

Oracle DML/DDL同步資料(OGG_12.2_for_Windows) Oracle DML/DDL同步資料(OGG_12.2_for_Windows)1 、支援 DDL 複製執行指令碼

伺服器源端配置

1)  指定資料庫模式

D:\app\Administrator\product\11.2.0\oggcore_1\ggsci.exe 

GGSCI (dg1) 1> edit param ./GLOBALS

ggschema ogguser

GGSCI (dg1) 3> stop mgr

2)  安裝 DDL 物件

進入到 ogg 的安裝目錄,此實驗為 D:\app\Administrator\product\11.2.0\oggcore_1

sqlplus / as sysdba

SQL> grant dba to ogguser;

SQL> @marker_setup  說明 均指定使用者 ogguser

SQL> @ddl_setup  說明 : 11.1.1.2 需要手動輸入  ogguser,INITIALSETUP,yes

SQL> @role_setup

SQL> grant GGS_GGSUSER_ROLE to ogguser;

SQL> @ddl_enable

SQL> @marker_status.sql

1:  執行 dbmspool 包將在資料庫中建立 DBMS_SHARED_POOL 包,之後 ddl_pin 包需要用到

SQL> @?/rdbms/admin/dbmspool.sql

2: 執行 ddl_pin.sql 透過 dbms_shared_pool.keep 儲存過程將 DDLReplication 相關物件 keep 在共享池中,以保證這些物件不 RELOAD ,提升效能。

SQL> @ddl_pin.sql ogguser

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)2、修改 extract 程式的 params 檔案

伺服器源端配置

# source 端修改 extract 程式的 params 檔案,新增 "ddl include all" 引數,重啟 extract 程式

1)  停止 ext1 程式

GGSCI (test) 2> stop extract ext1

2)  編輯配置檔案

GGSCI (test) 3> edit params ext1

extract ext1

dynamicresolution

setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

userid ogguser,password ogguser

exttrail /ogg/app/oracle/dirdat/yd

report at 1:00

reportrollover at 1:00

ddl include all

ddloptions addtrandata,report

GETTRUNCATES

TRANLOGOPTIONS  CONVERTUCS2CLOBS

table test.*;

說明:加了兩行 tranlogoption  與  ddl

3) 啟動 mgr,eora 程式

GGSCI (test) 4> start mgr

GGSCI (test) 5> start extract ext1

4)  檢視程式啟動情況

GGSCI (test) 6> info extract ext1

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)3、修改目標端 replicat 程式的 params 檔案

目標伺服器配置

# target 端修改 replicat 程式的 params 檔案,

新增 "ddlerror default ignore retryop maxretries 3 retrydelay 5"  等引數,重啟 replicat 程式,操作如下

1)  停止 mgr 程式

GGSCI (slave) 1> stop mgr

2)  停止 repl 程式

GGSCI (slave) 1> stop replicat repl

3)  編輯 repl 配置檔案

GGSCI (slave) 1> edit params repl

GGSCI (slave) 2> view params repl

replicat repl

userid ogguser,password ogguser

reperror default,discard

discardfile D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes 4096

ddloptions report

ddlerror default ignore retryop maxretries 3 retrydelay 5

ddlerror default discard

ddlerror default ignore retryop

map test.*, target test.*;

4)  啟動 rora_t1 程式

GGSCI (slave) 4> start mgr #  會自動啟動 repl 程式

GGSCI (slave) 5> info replicat repl

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)4、測試

在源端 test 使用者建立一個表,檢視目標端是否成功建立。

create table t1(id number);

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)5、驗證 

在目標端檢視 t1 表及資料是否同步過來

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)四、常見問題

問題一:

insert delete 可以同步, update 不能同步;

解決方案:

ggsci > dblogin userid gg, password gg

ggsci > add trandata test.*

問題二:

repl 程式無法啟動

檢視日誌

D:\app\Administrator\product\11.2.0\oggcore_1\ggserr.log

D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc

megabytes 值過小,可能會引起 rep1 程式 ABENDED

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)

Oracle DML/DDL同步資料(OGG_12.2_for_Windows)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2149617/,如需轉載,請註明出處,否則將追究法律責任。

相關文章