OGG基礎

quanjima發表於2014-12-11

GoldenGate技術架構圖


 

從圖中可以看到:GoldenGate主要包含Manager程式、Extract程式、Pump程式、Replicat程式,下面對其一一說明:

Manager程式是GoldenGate的控制程式,它主要作用有以下幾個方面:啟動、監控、重啟GoldenGate的其他程式,報告錯誤及時間,分配資料儲存空間,釋出閥值報告等。

Extract程式執行在資料庫源端,負責從源端資料表或日誌中捕獲資料。Extract程式利用其內在的checkpoint機制,週期性地檢查並記錄其讀寫的位置,通常是寫入到本地的trail檔案。這種機制是為了保證如果Extract程式終止或者作業系統當機,我們重啟Extract程式後,GoldenGate能夠恢復到以前的狀態,從上一個斷點處繼續往下執行,而不會有任何資料損失。

Pump程式執行在資料庫源端,其作用非常簡單。如果源端使用了本地trail檔案,那麼Pump程式就會把Trail檔案以資料塊的形式通過TCP/IP協議傳送到目標端,我們下面的配置都是這種方式。Pump程式本質是Extract程式的一種特殊形式,如果不使用Trail檔案,那麼Extract程式在抽取完資料後,直接投遞到目標端。

與Pump程式相對應的叫Server Collector程式,這個程式不需要引起我們關注,因為在實際操作過程中無需對其進行任何配置,它執行在目標端,任務就是把Extract/Pump程式投遞過來的資料塊重新組裝成Trail檔案。

Replicat程式執行在目標端,是資料投遞的最後一站,負責讀取目標端Trail檔案中的內容,並將解析其解析為DML或DDL語句,然後應用到目標資料庫中。

 

RAC到單機複製的配置

 

源端安裝

GoldenGate安裝目錄(OCFS2目錄/ggate)解壓安裝檔案

unzip ogg112101_fbo_ggs_Linux_x64_ora10g_64bit.zip

tar xvf fbo_ggs_Linux_x64_ora10g_64bit.tar

 

設定環境變數

在使用者引數檔案中新增以下內容:

export GGATE_HOME=/ggate

export LD_LIBRARY_PATH=$GGATE_HOME:$ORACLE_HOME/lib

注意:新增後需使引數檔案生效

 

安裝GoldenGate

進入OGG控制檯建立OGG工作目錄

然後在安裝目錄下執行 ./ggsci  進入OGG控制檯

執行命令 create subdirs建立工作目錄,顯示如下:

GGSCI (node1) 1> create subdirs

 

Creating subdirectories under current directory /ggate

 

Parameter files                /ggate/dirprm: already exists

Report files                   /ggate/dirrpt: created

Checkpoint files               /ggate/dirchk: created

Process status files             /ggate/dirpcs: created

SQL script files               /ggate/dirsql: created

Database definitions files       /ggate/dirdef: created

Extract data files              /ggate/dirdat: created

Temporary files               /ggate/dirtmp: created

Stdout files                   /ggate/dirout: created

 

目標端安裝

 

參考源端安裝

 

配置源端資料庫

 

資料庫模式配置

源端資料庫必須開啟歸檔模式

Alter database archivelog;

開啟最小附加日誌

Alter database add supplemental log data;

使用SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

可檢視是否開啟了最小附加日誌;

 

源端資料庫建立GoldenGate資料庫使用者並授權:(我們這裡以ogg為例,使用其他亦可)

create user ogg identified by oracle default tablespace DATA_OL;

grant connect,resource,unlimited tablespace to ogg;

grant execute on utl_file to ogg;

grant select any dictionary,select any table to ogg;

grant alter any table to ogg;

grant flashback any table to ogg;

grant execute on DBMS_FLASHBACK to ogg;

新增表級transdata

GGSCI (node1) 1> dblogin userid ogg,password oracle

Successfully logged into database.

GGSCI (node1) 2> add trandata SCOTT.DEPT

Logging of supplemental redo data enabled for table SCOTT.DEPT.

GGSCI (node1) 3> add trandata SCOTT.EMP

Logging of supplemental redo data enabled for table SCOTT.EMP. 

 

配置源端程式組

 

配置管理程式mgr

GGSCI (node1) 1> edit param mgr

(貼上下面這段配置)

PORT 7839

DYNAMICPORTLIST 7840-7939

--AUTOSTART ER *

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

 

啟動管理程式:

GGSCI (node1) 2> start mgr

Manager started.

GGSCI (node1) 3> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

 

配置抽取程式:

GGSCI (node1) 6> add extract extnd,tranlog,begin now,threads 2

EXTRACT added.

GGSCI (node1) 7> add exttrail ./dirdat/nd,extract extnd,megabytes 100

EXTTRAIL added.

GGSCI (node1) 8> edit params extnd

(貼上下面這段配置)

EXTRACT extnd

SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")

SETENV (ORACLE_HOME = "/u01/app/oracle/product/10.2.0/db_1")

USERID ogg@RAC, PASSWORD oracle

--GETTRUNCATES

REPORTCOUNT EVERY 1 MINUTES, RATE

DISCARDFILE ./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024

--THREADOPTIONS  MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000

DBOPTIONS  ALLOWUNUSEDCOLUMN

WARNLONGTRANS 2h,CHECKINTERVAL 3m

EXTTRAIL ./dirdat/nd

--TRANLOGOPTIONS EXCLUDEUSER USERNAME

FETCHOPTIONS NOUSESNAPSHOT

TRANLOGOPTIONS  CONVERTUCS2CLOBS

TABLE scott.dept;

TABLE scott.emp; 

 

注意:threadsRAC節點數相同即可,RAC中不再使用ORACLE_SID設定,而使用USERID ogg@RAC,注意兩個節點均可連線資料庫。

 

新增傳輸程式,配置引數

GGSCI (node1) 2> add extract dpend,exttrailsource ./dirdat/nd

EXTRACT added.

GGSCI (node1) 3> add rmttrail /uo1/app/ogg/dirdat/nd, EXTRACT DPEND

RMTTRAIL added.

GGSCI (node1) 4> edit params dpend

(貼上下面這段配置)

EXTRACT dpend

SETENV (NLS_LANG = AMERICAN_AMERICA.UTF8)

USERID ogg@RAC, PASSWORD oracle

PASSTHRU

RMTHOST 10.123.112.235, MGRPORT 7839, compress

RMTTRAIL /uo1/app/ogg/dirdat/nd

TABLE scott.dept;

TABLE scott.emp; 

 

配置目標資料庫

 

目標庫建立GoldenGate資料庫使用者並授權:

create user ogg identified by oracle default tablespace USERS;

grant connect,resource,unlimited tablespace to ogg;

grant execute on utl_file to ogg;

grant select any dictionary,select any table to ogg;

grant alter any table to ogg;

grant flashback any table to ogg;

grant execute on DBMS_FLASHBACK to ogg;

grant insert any table to ogg;

grant delete any table to ogg;

grant update any table to ogg;

 

新增checkpoint

GGSCI (sun.linux) 2> edit params GLOBALS

 

然後在引數檔案中輸入

GGSCHEMA ogg

CHECKPOINTTABLE ogg.checkpoint

 

GGSCI (sun.linux) 4> dblogin userid ogg,password oracle

Successfully logged into database.

 

GGSCI (sun.linux) 5> add checkpointtable ogg.checkpoint

 

Successfully created checkpoint table ogg.checkpoint.

 

配置目標程式組

 

配置MGR引數

GGSCI (sun.linux) 6> edit params mgr

(貼上下面這段配置)

PORT 7839

DYNAMICPORTLIST 7840-7939

--AUTOSTART ER *

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

 

配置複製佇列

GGSCI (sun.linux)8> add replicat repnd,exttrail /uo1/app/ogg/dirdat/nd,checkpointtable ogg.checkpoint

REPLICAT added.

 

GGSCI (sun.linux) 10> edit params repnd

(貼上下面這段配置)

REPLICAT repnd

SETENV (NLS_LANG = AMERICAN_AMERICA.UTF8)

USERID ogg, PASSWORD oracle

ASSUMETARGETDEFS

REPERROR default,discard

discardfile ./dirrpt/repnd.dsc,append,megabytes 50

map scott.*,target pmsbi.*; 

 

啟動源端程式組

 

啟動抽取程式和傳輸程式:

start extnd

start dpend

啟動後使用info all檢視程式狀態,正常status應該RUNNING,顯示如下:

GGSCI (node1) 19> info all

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING                                           

EXTRACT     RUNNING     DPEND       00:00:00      00:00:09    

EXTRACT     RUNNING     EXTND       00:00:00      00:00:04 

 

啟動目標端程式

 

start repnd

顯示如下:

GGSCI (sun.linux) 2> info all

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING                                           

REPLICAT    RUNNING     REPND       00:00:00      00:00:03  

到此RAC到單點OGG的安裝配置就完成了,可以進行資料同步測試了。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29337971/viewspace-1077538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章