ogg_級聯複製',ogg複製
級聯複製: node1 -> node2 ->node 3
[oracle@dominic dump_dir]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.199 dominic.mysql1 -->node1
192.168.0.195 dominic.mysql2 -->node2
192.168.0.171 dominic.node1 -->node3
概述: 做之前,我的node1-> node2 已經同步中,只是 需要在此基礎上 做個node2 ->node3 的同步。 同時,node2 作為 中間庫, 除了 配置接收 node1 來的資料 replicat 進程外,還需要 配置 抽取資料 extract 進程(extract, pump) . 注意,這兩者 進程的 存放目錄 獨立分開。
node1 -> node2 (node1 extract目錄:/dba/ogg/dirdat/st ) ( node2 replicat目錄: /dba/ogg/dirdat/tt)
node2 ->node3 (node2 extract 目錄: /dba/ogg/dirdat/at) ( node3 replicat 目錄: /dba/oggs/dirdat/bt)
另外: node2->node3 時, node3上的初始化資料可以使用 node2 的,我這裡通過 expdp 初始化(資料小,測試) 仔細注意連接埠,其實不受影響 中間庫node2 extract進程組必須添加: ignoreapplops,getreplicates --重點這連個參數:
配置:
1: 配置 node 3 CHECKPOINTTABLE 參數 (node2 已經有了) 添加 node3 ./GLOBALS 參數 (如果是重做,這表在ogg 使用者下可以先刪除) GGSCI (target) > edit params ./GLOBALS checkpointtable ogg.checktable GGSCI (target) > dblogin userid ogg,password ogg GGSCI (target)>add checkpointtable ogg.checktable
2: node 2 配置 extract 進程 的 extra_2, pump_2 進程組參數,並啟動這兩個參數:
--extract GGSCI (dominic.mysql2) 27> view params extra_2extract extra_2dynamicresolutionuserid ogg,password ogg--rmthost dominic.mysql2,mgrport 7809,compress--rmthost 192.168.0.171,mgrport 7809,compressreportcount every 1 minutes,rateexttrail /dba/ogg/dirdat/atddl include allddloptions addtrandata, reportignoreapplops,getreplicates --重點這連個參數:table scott.*;--pumpGGSCI (dominic.mysql2) 28> view params pump_2extract pump_2rmthost 192.168.0.171 ,mgrport 7809,compresspassthrurmttrail /dba/oggs/dirdat/btdynamicresolutiontable scott.*;
添加Extract 進程: GGSCI (source) > add extract extra_2, tranlog, begin now (第二次使用alter 。。。) 添加本地trail 檔案,Extract組負責寫這部分檔案,pump進程負責讀它。 GGSCI (source) > add exttrail /dba/ogg/dirdat/at , extract extra_2---------------------------------------------------------- 添加pump 進程: GGSCI (source) > view params pump_2 GGSCI (source) > add extract pump_2,exttrailsource /dba/ogg/dirdat/at GGSCI(source) > add rmttrail /dba/ogg/dirdat/bt, extract pump_2 --投遞到目標端對應的目錄。
--啟動後: GGSCI (dominic.mysql2) 29> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING EXTRACT RUNNING EXTRA_2 00:00:00 00:00:07 EXTRACT RUNNING PUMP_2 00:00:00 00:00:09 REPLICAT RUNNING REP_1 00:00:00 00:00:04
3 : 配置 node3 mgr 管理進程參數,並啟動
--mgrGGSCI (dominic.node1 as ogg@node1) 31> view params mgr
PORT 7809
dynamicportlist 7810-7850
autostart er *
autorestart extract *,waitminutes 2, retries 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts /dba/ogg/bt*,usecheckpoints,minkeepdays 3
4: node 2 通過expdp 備份,並幾下參數值 current_scn 號, 在expdp 參數 flashback_scn=xxxxx 標記出
5: 資料拷貝 node3 ,恢複,disable 約束。
6: 配置 node3 replicat 進程 rep_2 。並啟動
--replicat GGSCI (dominic.node1 as ogg@node1) 33> view params rep_2
replicat rep_2
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile /dba/oggs/dirrpt/rep_2.dsc, append , megabytes 50
dynamicresolution
APPLYNOOPUPDATES
ddl include mapped
ddloptions report
DDLERROR DEFAULT IGNORE RETRYOP --加這個參數,是因為這是在以前的實驗上操作,涉及一些ddl 資料可以忽略(查詢筆記)
map scott.*,target scott.*;
添加 replicat rep_2 添加到 GGSCI (target) > add replicat rep_2, exttrail /dba/ogg/dirdat/bt GGSCI (target) > start rep_1 GGSCI (target) > info all
7 測試:
--node1 :
152 rows selected.
SQL> create table emp as select * from T_ORDERS;
Table created.
SQL> commit; SQL> select count(*) from tab; COUNT(*)---------- 153
--node2 : SQL> select count(*) from tab; COUNT(*)---------- 1531 row selected.
--node3 SQL> select count(*) from tab; COUNT(*)---------- 153
--node1
--node2
--node3