Oracle12C ogg配置node
配置 OGG 安裝目錄的共享:數據庫
這裏的共享就是把 OGG 安裝到一個共享的設備上,把該目錄同時掛到不一樣節點的相同位置上,這樣當 c#
一個節點掛了以後,能夠在另外一個節點啓動和維護 OGG。 bash
因此咱們上面在配置的時候,纔會同時在 2 個節點操做,而且參數名稱也一致。 若是不考慮這種冗餘 session
的方案,能夠直接在其中一個節點上操做,不用搞的這麼麻煩。 oracle
咱們這裏就在一個節點操做,不搞那麼複雜了,這裏僅說明一下。 app
上面的配置完成以後,就和咱們單實例操做相似了。 不過在參數配置這塊會有細微區別。 dom
--此處安裝的是Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO 能夠去oracle官網下載ide
--目標和原庫都要配置測試
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自己的配置文件。
---轉載於http://blog.csdn.net/cloudsnowe/article/details/51613364---