database version12.2.0.1.1 OGG version 12.2.0.1.0

配置 OGG 安裝目錄的共享:

這裏的共享就是把 OGG 安裝到一個共享的設備上,把該目錄同時掛到不同節點的相同位置上,這樣當 

一個節點掛了之後,可以在另一個節點啓動和維護 OGG。 

所以我們上面在配置的時候,纔會同時在 2 個節點操作,並且參數名稱也一致。 如果不考慮這種冗餘 

的方案,可以直接在其中一個節點上操作,不用搞的這麼麻煩。 

我們這裏就在一個節點操作,不搞那麼複雜了,這裏僅說明一下。 

上面的配置完成之後,就和我們單實例操作類似了。 不過在參數配置這塊會有細微區別。  

 

--此處安裝的是Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO 可以去oracle官網下載

--目標和原庫都要配置

SQL> alter system set enable_goldengate_replication=true;

 

 

Source系統設置

 

解壓縮ogg安裝包

# su - oracle

解壓縮ogg安裝包

unzip fbo_ggs_Linux_x64_shiphome.zip

cd fbo_ggs_Linux_x64_shiphome/Disk1/

./runInstaller

 

在bash_profile中添加OGG_HOME

export OGG_HOME=$ORACLE_BASE/ogg

export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib

alias ggsci='rlwrap /u01/app/oracle/ogg/ggsci'

 

 

開啓數據庫級別日誌補充

SYS@devdb1 >ALTER DATABASE FORCE LOGGING;

SYS@devdb1 >ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

SYS@devdb1 >ALTER SYSTEM ARCHIVE LOG CURRENT;

 

System altered.

SYS@devdb1 >col open_mode for a10

SYS@devdb1 >SELECT name,open_mode,force_logging,supplemental_log_data_min FROM v$database;

 

創建測試用戶

SYS@devdb1 >conn new_jk/XH1Q2W3E4R@PDBJK

SNOW@devdb1 >CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR2(10));

 

12c source庫需要在root容器中創建OGG管理用戶(12c使用intergated extract 需要在cdb創建管理用戶)

conn / as sysdba

SQL> conn / as sysdba

Connected.

SQL> create user C##GGADMIN identified by ggadmin;

 

User created.

 

SQL> exec dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');

 

PL/SQL procedure successfully completed.

 

SQL> grant dba to c##ggadmin container=all;

 

Grant succeeded.

 

SQL> connect c##ggadmin/ggadmin

Connected.

 

設置全局參數

ogg global

GGSCI> EDIT PARAMS ./GLOBALS

GGSCHEMA c##ggadmin

 

Target系統設置

解壓縮ogg安裝包

unzip fbo_ggs_Linux_x64_shiphome.zip

cd fbo_ggs_Linux_x64_shiphome/Disk1/

./runInstaller

 

在bash_profile中添加OGG_HOME

vi /home/oracle/.bash_profile

export OGG_HOME=$ORACLE_BASE/ogg

export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib

alias ggsci='rlwrap /u01/app/oracle/ogg/ggsci'

 

 

創建測試用戶

alter session set container=pdb1;

conn jktmp/jktmp1@jktmp

create table t1 (id int primary key, name varchar2(20));

 

12c target庫需要在pdb 中創建OGG管理用戶及其表空間

conn / as sysdba

alter session set container=pdb1;

CREATE TABLESPACE goldengate DATAFILE '/data/oradata/jktmp/goldengate01.dbf' SIZE 100m AUTOEXTEND ON;

 

CREATE USER oggadmin IDENTIFIED BY oggadmin DEFAULT TABLESPACE goldengate;

GRANT dba TO oggadmin;

 

設置全局參數

GGSCI> EDIT PARAMS ./GLOBALS

GGSCHEMA oggadmin

 

 

Source系統設置

配置管理進程

GGSCI> EDIT PARAM MGR

PORT 7809

AUTOSTART EXTRACT *

AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 10

 

開啓表級別日誌補充需要加上PDB,追加對象爲用戶pdbjk.new_jk下所有表

DBLOGIN USERID c##ggadmin,PASSWORD ggadmin

ADD SCHEMATRANDATA pdbjk.new_jk

ADD TRANDATA pdbjk.new_jk.*

 

創建初級集成提取組ex1,源端是雙節點RAC

ADD EXTRACT ex1,integrated TRANLOG,BEGIN NOW

 

爲初級提取組ex1指定本地trail文件(extract文件量比較大的話,需要足夠的磁盤)

ADD EXTTRAIL /u01/app/oracle/ogg/dirdat/ex, EXTRACT ex1 MEGABYTES 5

註冊extract ex1

REGISTER EXTRACT ex1 DATABASE CONTAINER (pdbjk)

 

--配置初級提取組參數文件 enable ddl replicate (ddl include all)

 

GGSCI> EDIT PARAMS ex1

 

EXTRACT ex1

SETENV(ORACLE_SID='sidjk1')

USERID c##ggadmin,PASSWORD ggadmin

EXTTRAIL /u01/app/oracle/ogg/dirdat/ex

--ddl include all

--ddloptions report

TABLE pdbjk.new_jk.*;

 

創建投遞組dp1,設置本地trail文件

ADD EXTRACT dp1 EXTTRAILSOURCE /u01/app/oracle/ogg/dirdat/ex

 

爲投遞進組dp1設置target端trail文件地址

ADD RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, EXTRACT dp1

 

配置投遞組dp1參數文件

GGSCI> EDIT PARAMS dp1

 

EXTRACT dp1

SETENV(ORACLE_SID='sidjk1')

USERID c##ggadmin,PASSWORD ggadmin

RMTHOST 10.180.100.9, MGRPORT 7809

RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt

TABLE pdbjk.new_jk.*;

 

Target系統

配置管理進程

GGSCI> EDIT PARAM MGR

PORT 7809

AUTOSTART REPLICAT *

AUTORESTART REPLICAT *, WAITMINUTES 2, RETRIES 5

 

創建檢查點表

DBLOGIN USERID oggadmin@jktmp,PASSWORD oggadmin

ADD CHECKPOINTTABLE oggadmin.checkpointtable

 

在全局環境中添加檢查點表   

EDIT PARAMS ./GLOBALS

GGSCHEMA oggadmin

CHECKPOINTTABLE oggadmin.checkpointtable

 

 

創建複製組rt1,設置讀取trail文件路徑以及檢查點表加上PDB

ADD REPLICAT rt1, EXTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, checkpointtable pdb1.oggadmin.checkpointtable

 

爲複製組rt1配置參數文件初始化的時候加上HANDLECOLLISIONS,初始化之後去掉

 

GGSCL> EDIT PARAM rt1

 

REPLICAT rt1

SETENV (ORACLE_SID='xhtmp')

USERID oggadmin@jktmp, PASSWORD oggadmin

HANDLECOLLISIONS

ASSUMETARGETDEFS

ddloptions report

DISCARDFILE /u01/app/oracle/ogg/discards.dsc, append, megabytes 1024 

TABLEEXCLUDE pdbjk.new_jk.SYS_EXPORT_SCHEMA*

MAP pdbjk.new_jk.*, TARGET jktmp.*;

 

測試環節

啓動source管理進程

GGSCI (node1.localdomain) 1> START MGR

 

啓動target管理進程

GGSCI (oggtarget) 1> START MGR

 

啓動source提取進程

GGSCI (node1.localdomain) 2> START EX1

 

啓動source投遞進程

GGSCI (node1.localdomain) 3> START DP1

 

 

--初始化數據導出的時候指定flashback_scn

SELECT current_scn FROM v$database

 

expdp new_jk/XH1Q2W3E4R@pdbjk directory=dump_dir dumpfile=new_jk20160526.dump logfile=new_jk20160526.log encryption_password=12qw3edc flashback_scn=7851588331 compression=all

 

impdp jktmp/jktmp@jktmp DIRECTORY=dump_dir include=table dumpfile=new_jk20160526.dump logfile=new_jk20160526.log remap_schema=new_jk:jktmp remap_tablespace=new_jk:jktmp,idx_newjk:jktmp,sit_jk:jktmp,JK_MIGR:jktmp encryption_password=12qw3edc TABLE_EXISTS_ACTION=truncate

 

啓動target複製進程

GGSCI (oggtarget) 2>  start replicat rt1,aftercsn 7863029544

 

確認source進程狀態

GGSCI (node1.localdomain) 4> INFO ALL

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

EXTRACT     RUNNING     DP1         00:00:00      00:00:08

EXTRACT     RUNNING     EX1         00:00:00      00:00:03

 

確認target進程狀態

GGSCI (oggtarget) 3> INFO ALL

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

REPLICAT    RUNNING     RT1         00:00:00      00:00:02

 

源端節點node1插入數據

SNOW@devdb1 >insert into t1 values(1,'SNOW');

SNOW@devdb1 >commit;

 

源端節點node2插入數據

SNOW@devdb2 >insert into t1 values(2,'LILY');

SNOW@devdb2 >commit;

 

複製端驗證

SNOW@oggtarget >select * from t1;

 

        ID NAME

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

         1 SNOW

         2 LILY

 

實驗結束。 

 

Oracle GoldenGate是一個輕量級軟件,在Oracle數據庫上安裝配置是一種鬆耦合的狀態,這點非常理想。無論是在單實例環境還是多實例的RAC環境只需要做少量的配置就可以生效,軟件的啓動和關閉也不需要數據庫做任何設置。從安裝的角度來說,比DataGuard要輕便的多。DataGuard是一種“侵入式”配置。需要修改Oracle本身的配置文件。
--------------------- 
作者:cloudsnowe 
來源:CSDN 
原文:https://blog.csdn.net/Cloudsnowe/article/details/51613364 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章