文中涉及的安裝包以及任何問題請加下方二維碼免費獲取提問sql
1.環境準備數據庫
源Oracle:11g R2 64位 ip:192.168.40.66 操做系統:Centos6.5 64位vim
目標Oracle:11g R2 64位 ip:192.168.40.67 操做系統:Centos6.5 64位bash
2.下載OGG軟件並解壓安裝服務器
源服務器session
#mkdir -p /u01/app/oracle/ogg oracle
#unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zipapp
#tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/app/oracle/ogg/ ide
#chown -R oracle:oinstall /u01/app/oracle/ogg性能
目標服務器
#mkdir -p /u01/app/oracle/ogg
#unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
#tar –xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/app/oracle/ogg/
#chown -R oracle:oinstall /u01/app/oracle/ogg
準備OGG環境變量
1)源服務器
#vim /home/oracle/.bash_profile
增長以下兩行:
export GGATE=$ORACLE_BASE/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
生效環境變量
#source /home/oracle/.bash_profile
目標服務器
#vim /home/oracle/.bash_profile
增長以下兩行:
export GGATE=$ORACLE_BASE/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
生效環境變量
#source /home/oracle/.bash_profile
配置日誌模式
只要配置源服務器,目標服務器不用配置
配置爲規檔模式
#su – oracle
#sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> alter system set log_archive_dest_1='location=/u01/archive' scope=both;
配置日誌模式(打開強制規檔與補充日誌模式)
SQL> alter database add supplemental log data;
SQL> alter database force logging;
3)查看配置結果:
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;
建立GoldenGate用戶賬號
1) 源服務器
#su - oracle
#sqlplus / as sysdba
SQL>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10M autoextend on next 10M;
SQL>create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;
SQL>grant connect,resource to ogg;
SQL>grant create session,alter session to ogg;
SQL>grant select any dictionary,select any table to ogg;
SQL>grant alter any table to ogg;
SQL>grant flashback any table to ogg;
SQL>grant execute on dbms_flashback to ogg;
目標服務器
#su - oracle
#sqlplus / as sysdba
SQL>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10M autoextend on next 10M;
SQL>create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;
SQL>grant connect,resource to ogg;
SQL>grant create session,alter session to ogg;
SQL>grant select any dictionary,select any table to ogg;
SQL>grant alter any table to ogg;
SQL>grant flashback any table to ogg;
SQL>grant execute on dbms_flashback to ogg;
SQL>grant insert any table to ogg;
SQL>grant delete any table to ogg;
SQL>grant update any table to ogg;
安裝GoldenGate軟件
源服務器配置
#su – oracle
#cd /u01/app/oracle/ogg
#./ggsci
GGSCI 1>create subdirs
GGSCI 2> quit
目標服務器都要配置
#su - oracle
#cd /u01/app/oracle/ogg
#./ggsci
GGSCI 1> create subdirs
GoldenGate DML同步源端配置
#cd /u01/app/oracle/ogg
#./ggsci
源MGR進程
編輯主進程組
GGSCI 1>edit params mgr
輸入i進入編輯模式,在文件中增長以下參數:
port 7809
dynamicportlist 7800-8000
autorestart extract *,retries 5,waitminutes 2,resetminutes 5
按ESC鍵退出編輯模式,輸入:wq進行保存。
說明:
port 指定mgr進程通訊端口;
dynamicportlist 表示mgr進程能夠爲源與目的端動態通訊指定端口;
autorestart extract 表示自動重啓extract進程組,每2分鐘嘗試重啓全部進程,重試5次,每5分鐘清零。
配置參數後,重啓mgr進程生效
啓動主管理進程
GGSCI 2>start mgr
配置Extract進程組
編輯eora配置文件
GGSCI 4>edit params eora
輸入i進入編輯模式,在文件中增長以下參數:
extract eora
dynamicresolution
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
exttrail /u01/app/oracle/ogg/dirdat/et
table scott.*;
按ESC鍵退出編輯模式,輸入:wq進行保存。
說明:
extract eora定義extract進程別名
dynamicresolution
setenv設置環境變量
userid 登陸數據庫
exttrail指定本地trail文件地址
table 定義同步的表 scott.* 表示 同步scott用戶下的全部表
添加抽取進程
GGSCI 2>add extract eora, tranlog,begin now
添加本地trail文件
GGSCI 2>add exttrail /u01/app/oracle/ogg/dirdat/et,extract eora
說明:
建立本地trail文件,主extract進程負責寫這部分文件,pump負責把這部分文件傳到目標服務器端。
啓動eora服務
GGSCI 2>start extract eora
配置Pump進程組
編輯pump配置文件
GGSCI 2>edit params pump_so
輸入i進入編輯模式,在文件中增長以下參數:
extract pump_so
dynamicresolution
passthru
rmthost 192.168.40.66,mgrport 7809,compress
rmttrail /u01/app/oracle/ogg/dirdat/pt
table scott.*;
按ESC鍵退出編輯模式,輸入:wq進行保存。
上面文件中的ip(192.168.40.66),要換成目標端的ip。
添加pump進程 源端路徑
GGSCI 2>add extract pump_so,exttrailsource /u01/app/oracle/ogg/dirdat/et
添加遠程trail文件 目標路徑
GGSCI 2>add rmttrail /u01/app/oracle/ogg/dirdat/pt,extract pump_so
說明: 指定遠程trail文件
啓動pump進程
GGSCI 2>start extract pump_so
GoldenGate DML同步目標端配置
#cd /u01/app/oracle/ogg
#./ggsci
目標端MGR進程
編輯MGR配置文件
GGSCI 2>edit params mgr
輸入i進入編輯模式,在文件中增長以下參數:
port 7809
dynamicportlist 7800-8000
autostart er *
autorestart extract *, waitminutes 2, resetminutes 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts /u01/app/oracle/ogg/dirdat/rt*, usecheckpoints, minkeepdays 3
按ESC鍵退出編輯模式,輸入:wq進行保存。
2) 啓動MGR
GGSCI 2>start mgr
添加檢查表
說明: 當咱們在GLOBALS 文件裏指定了默認的checkpoint 以後,新的Replicat groups 在建立時會自動使用這個參數,不須要其餘指令
編輯全局配置文件
GGSCI 2>edit params ./GLOBALS
輸入i進入編輯模式,在文件中增長以下參數:
CHECKPOINTTABLE ogg.checkpoint
按ESC鍵退出編輯模式,輸入:wq進行保存。
這裏須要退出ggsci終端
GGSCI 2>exit
從新進入
#./ggsci
添加checkpoint表
GGSCI 1> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI 2> add checkpointtable ogg.checkpoint
Successfully created checkpoint table OGG.CHECKPOINT.
配置目標端Peplicat進程組
編輯配置文件
GGSCI 1>edit params repl
輸入i進入編輯模式,在文件中增長以下參數:
replicat repl
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile /u01/app/oracle/ogg/dirrpt/repl.dsc,append,megabytes 50
dynamicresolution
map scott., target scott.;
按ESC鍵退出編輯模式,輸入:wq進行保存。
添加複製進程
GGSCI 1>add replicat repl,exttrail /u01/app/oracle/ogg/dirdat/pt, CHECKPOINTTABLE ogg.checkpoint
啓動進程
GGSCI 1>start repl
目標端查看checkpoint狀態
#su - oracle
#sqlplus ogg/ogg
SQL>select tname from tab;
TNAME
-------------------------------------
CHECKPOINT TABLE
CHECKPOINT_LOX TABLE
SQL>exit;
DML配置測試
源端和目標端同時建立t1表
源端建立t1表
#sqlplus scott/123456
SQL>create table t1 (id char(10));
目標端建立t1表
#sqlplus scott/123456
SQL>create table t1 (id char(10));
源端執行DML操做後提交
SQL>insert into t1 values(100);
SQL>insert into t1 values(300);
SQL>commit;
4)目標端查看
SQL> select * from t1;
能查到下面兩條數據,便可
說明:到此goldengate DML單向配置已經配置完畢,經過簡單的測試示例來進行測試。
GoldenGate DDL同步源端配置
服務器源端操做
指定數據庫模式
SQL>exit
#cd /u01/app/oracle/ogg/
#./ggsci
GGSCI 1> edit param ./GLOBALS
輸入i進入編輯模式,在文件中增長以下參數:
ggschema ogg
按ESC鍵退出編輯模式,輸入:wq進行保存。
GGSCI 2> view param ./GLOBALS 查看
ggschema ogg
GGSCI 3> stop mgr
oralce 11gR2數據庫須要關閉回收站。
GGSCI 3>quit
#sqlplus / as sysdba;
在關以前能夠先看一下,若是是on,以下圖所示,則回收站是開啓的。
SQL>show parameter recyclebin
SQL>alter system set recyclebin=off deferred;
改完須要把數據庫重啓一下才會生效
SQL>shutdown immediate
SQL>startup
SQL>show parameter recyclebin
3) 安裝DDL對象
SQL> grant dba to ogg;
說明: 如下各執行如提示:Enter Oracle GoldenGate schema name,均指定用戶:ogg
SQL>@marker_setup
SQL>@ddl_setup
SQL>@role_setup
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
SQL>@marker_status.sql
注1: 執行dbmspool包將在數據庫中建立DBMS_SHARED_POOL包,以後ddl_pin包須要用到
SQL>@?/rdbms/admin/dbmspool.sql
Package created.
Grant succeeded.
View created.
Package body created.
注2: 執行ddl_pin.sql經過dbms_shared_pool.keep存儲過程將DDLReplication相關對象keep在共享池中,以保證這些對象不要RELOAD,提高性能。
SQL>@ddl_pin.sql ogg
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
源端操做-修改eora(抽取)進程的params文件
中止eora(抽取)進程
GGSCI 2> stop extract eora
編輯配置文件
GGSCI 3> edit params eora
輸入i進入編輯模式,在文件中增長以下黑色背景參數:
extract eora
dynamicresolution
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
exttrail /u01/app/oracle/ogg/dirdat/et
ddl include all
ddloptions addtrandata, report
table scott.*;
按ESC鍵退出編輯模式,輸入:wq進行保存。
啓動mgr,eora進程
GGSCI 4> start mgr
GGSCI 5> start extract eora
查看eora進程啓動狀況
GGSCI 6> info extract eora
目標端操做-修改replicat進程的params文件
中止mgr進程
GGSCI 1>stop mgr
中止repl進程
GGSCI 1> stop replicat repl
編輯repl配置文件
GGSCI 1> edit params repl
輸入i進入編輯模式,在文件中增長以下黑色背景參數:
replicat repl
userid ogg, password ogg
assumetargetdefs
reperror default, discard
discardfile /u01/app/oracle/ogg/dirrpt/repl.dsc, append, megabytes 50
dynamicresolution
ddloptions report
ddlerror default ignore retryop maxretries 3 retrydelay 5
ddlerror default discard
ddlerror default ignore retryop
map scott., target scott.;
按ESC鍵退出編輯模式,輸入:wq進行保存。
啓動repl進程
GGSCI 4>start mgr
啓動mgr進程後,系統會自動啓動repl進程
GGSCI 5> info all
DDL測試
本節驗證源端t1表增長字段後,目標端自動改變。
添加字段前:
源端查看:
#sqlplus scott/123456
SQL> desc t1;
目標端查看
#sqlplusscott/123456
SQL> desc t1;
源端添加字段test
SQL>alter table t1 add(test number(10));
SQL>desc t1;
目標端驗證
SQL> desc t1;到此配置完成。若是對此有興趣或者有問題須要問,請添加:15149813470,免費解答。