部署dg備庫同步ogg


環境:
RAC1:192.168.56.111 (db版本:12.2.0.1)
RAC2:192.168.56.112 (db版本:12.2.0.1)
DG備庫:192.168.56.19 (db版本:12.2.0.1) OGG源庫
OGG目標庫:192.168.56.166 (db版本:11.2.0.4) OGG目標庫

 

goldengate 12.1.2.1.0版本開始之初從datagurad的備庫進行同步,抽取進程加入關鍵參數tranlogoptions minefromactivedg

 

但是涉及到支持ddl的配置和注冊抽取進程的步驟只能在dg的主庫上執行。 下面是我在dg的主庫上安裝部署好了goldengte(安裝ogg、配置支持ddl,注冊抽取進程)后,然后在dg從庫上的部署ogg的步驟。

 

 

1.停掉從庫的復制進程,並刪除dirdat目錄下的內容
GGSCI (epidb01) 2> stop repep
epidb01-> cd dirdat
epidb01-> rm ep*

 

2.主庫停掉並刪除主庫的抽取進程
stop extract dpep
stop extract extep
dblogin userid goldengate,password goldengate
delete extract dpep
delete extract extep

 

3.主庫創建抽取和投遞進程
GGSCI>edit params dpep
GGSCI>ADD EXTRACT dpep, EXTTRAILSOURCE ./dirdat/ep
GGSCI>ADD RMTTRAIL ./dirdat/ep, EXTRACT dpep, MEGABYTES 100
---dpep參數如下:

extract dpep userid goldengate, password AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC ,ENCRYPTKEY DEFAULT RmtHost 192.168.56.166, MgrPort 7819, Compress RmtTrail ./dirdat/ep gettruncates Passthru table hxl.*;

 

4.抽取進程
GGSCI>edit params extep
GGSCI>ADD EXTRACT extep, tranlog, begin now, threads 2 ##注意這里雖然dg是單節點的,但是dg的主庫是rac環境的,這里必須寫對應的節點數
GGSCI>ADD EXTTRAIL ./dirdat/ep, EXTRACT extep, megabytes 100

---extep參數如下:

extract extep userid goldengate, password AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC ,ENCRYPTKEY DEFAULT SETENV (ORACLE_SID="dg12c") SETENV ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK) exttrail ./dirdat/ep BR BRINTERVAL 20M numfiles 5000 warnlongtrans 3h, checkinterval 10m TRANLOGOPTIONS LOGRETENTION ENABLED --TRANLOGOPTIONS AltArchiveLogDest /u01/app/oracle/archive_log/ tranlogoptions minefromactivedg --TRANLOGOPTIONS ASMUSER sys@asmtns_rac01, ASMPASSWORD oracle --TRANLOGOPTIONS DBLOGREADER --DDL parameter DDL & EXCLUDE INSTR 'shrink space CHECK' & INCLUDE MAPPED OBJTYPE 'TABLE' & INCLUDE MAPPED OBJTYPE 'INDEX' & INCLUDE MAPPED OBJTYPE 'SEQUENCE' & INCLUDE MAPPED OBJTYPE 'VIEW' & INCLUDE MAPPED OBJTYPE 'PROCEDURE' & INCLUDE MAPPED OBJTYPE 'FUNCTION' & INCLUDE MAPPED OBJTYPE 'PACKAGE' 


--DDLOPTIONS ADDTRANDATA REPORT table hxl.tb_ogg_test;

 

6.刪除掉主庫上./dirdat目錄下的ep開頭的文件

[oracle@localhost dirdat]$ cd /goldengate12c/dirdat

[oracle@localhost dirdat]$ rm ep*

 

7.啟動主庫的抽取進程
start extep -- 主庫
start dpep -- 主庫

 

---------------------------------從庫操作-------------------------

1.停掉監聽器並殺掉ogg目標庫用戶下的進程

lsnrctl stop

Select Distinct 'alter system kill session ' || '''' || b.sid || ',' ||b.SERIAL# ||  ''';' kill_command, b.Username From Gv$sql a, Gv$session b, Gv$session_Wait c, Gv$latchholder d, Gv$locked_Object e, (Select lk.inst_id,Lk.Sid, Lk.Type, Lt.Name Lock_Name From Gv$lock Lk, Gv$lock_Type Lt Where Lk.Type = Lt.Type And lk.inst_id = lt.inst_id Group By lk.inst_id,Lk.Sid, Lk.Type, Lt.Name) f, (Select Addr, inst_id, program, Sum(Pga_Used_Mem) Pga_Used_Mem, Sum(Pga_Alloc_Mem) Pga_Alloc_Mem, Sum(Pga_Freeable_Mem) Pga_Freeable_Mem, Sum(Pga_Max_Mem) Pga_Max_Mem From Gv$process Group By Addr, inst_id, program) g, Gv$sort_Usage h --Gv$session_Longops Sl Where a.Sql_Id = b.Sql_Id And b.Sid = c.Sid And b.Sid = d.Sid(+) And b.Sid = e.Session_Id(+) And b.Sid = f.Sid(+) And b.Paddr = g.Addr(+) And b.Saddr = h.Session_Addr(+) --And b.Sid = Sl.Sid(+) And b.Status = 'ACTIVE' And b.Username In ('ogg目標庫業務用戶');

 

2.從庫停掉並刪除復制進程
stop replicat repep
dblogin userid goldengate,password goldengate
delete replicat repep

3.配置從庫復制進程

>edit params repep
>add replicat repep, exttrail ./dirdat/ep, NODBCHECKPOINT

 

這里先不啟動
--repep參數如下

replicat repep userid goldengate, password AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC ,ENCRYPTKEY DEFAULT DiscardFile ./dirrpt/repep.dsc, append, Megabytes 200 gettruncates AllowNoopUpdates ASSUMETARGETDEFS DBOPTIONS SUPPRESSTRIGGERS DBOPTIONS DEFERREFCONST HANDLECOLLISIONS MAP hxl.tb_ogg_test ,TARGET hxl.tb_ogg_test; DDLERROR 10655 IGNORE DDLERROR 10636 IGNORE

 

4.數據初始化
a.查詢主庫SCN:select current_scn from v$database,然后修改/home/oracle/impdblink.sh腳本
將FLASHBACK_SCN替換為查出來的值,我這里通過dblink查詢
SQL> set numw 20;
SQL> select current_scn from v$database@dblink_dg備庫; ##這里是備庫的scn,好像也可以連接主庫查scn

CURRENT_SCN
--------------------
75738330810


b.執行impdb腳本(/home/oracle/impdblink.sh)
epidb01-> cd /home/oracle
nohup ./impdblink.sh > impdblink.out 2>&1 &

該腳本內容如下:
epidb01-> more impdblink.sh
#! /bin/bash
impdp goldengate/goldengate network_link=dblink_dg主庫 FLASHBACK_SCN=2149986 directory=DATA_PUMP_DIR EXCLUDE=STATISTICS cluster=n tables=hxl.tb_ogg_test parallel=40 table_exists_action=replace

dblink_dg主庫 這里是連接主庫的dblink,若是連接備庫的tns會報如下錯誤

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options FLASHBACK automatically enabled to preserve database integrity. Starting "GOLDENGATE"."SYS_IMPORT_TABLE_03":  goldengate/******** network_link=dblink_dg12c FLASHBACK_SCN=2166813 directory=DATA_PUMP_DIR EXCLUDE=STATISTICS cluster=n tables=hxl.tb_ogg_test parallel=40 table_exists_action=replace ORA-39126: Worker unexpected fatal error in KUPW$WORKER.MAIN [INSERT INTO SYS.KU$_LIST_FILTER_TEMP_2@dblink_dg12c (process_order,duplicate,object_schema,object_name,base_process_order,parent_process_order) SELECT process_order,duplicate,object_schema,object_name,base_process_order,parent_process_order FROM "GOLDENGATE"."SYS_IMPORT_TABLE_03" WHERE process_order = :1] ORA-08176: consistent read failure; rollback data not available ORA-02063: preceding line from ORA11G ORA-02063: preceding 2 lines from DBLINK_DG12C ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPW$WORKER", line 9715 ----- PL/SQL Call Stack ----- object line object handle number name 0xc2a6e0e8 21979 package body SYS.KUPW$WORKER 0xc2a6e0e8 9742 package body SYS.KUPW$WORKER 0xc2a6e0e8 1878 package body SYS.KUPW$WORKER 0xc26cf850 2 anonymous block Job "GOLDENGATE"."SYS_IMPORT_TABLE_03" stopped due to fatal error at Wed Apr 7 23:34:41 2021 elapsed 0 00:00:01

 

 

 


c.從庫啟動復制進程
GGSCI>start repep aftercsn 2149986

d.啟動從庫的監聽器
lsnrctl start


備注說明:
1.創建dblink
connect goldengate/goldengate
create public database link dblink_dg備庫 connect to goldengate identified by goldengate using 'dg備庫TNS';
create public database link dblink_dg主庫 connect to goldengate identified by goldengate using 'dg主庫TNS';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM