搭建GoldenGate的單向復制環境


配置環境:

建議在相同版本OGG(即Oracle GoldenGate)之間進行復制,我在這里之所以選擇不同版本的OGG,便於后續的比較學習。

一、准備OGG的運行用戶

在這里,我直接使用oracle用戶作為OGG的運行用戶。

 

二、確認OGG的安裝目錄

在源端,即Linux環境下,我選擇/u01/app/goldengate作為OGG的安裝目錄,注意:/u01/app/goldengate目錄的屬主必須為OGG的運行用戶,在這里,該目錄的屬主必須為oracle。

在目標端,即Win環境下,我選擇G:\app\goldengate作為OGG的安裝目錄

 

三、打開數據庫的歸檔模式

SQL> archive log list 
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Current log sequence           7
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
 

 

四、打開源端數據庫最小附加日志

因為這里搭建的只是單向復制,OGG捕捉的是源端數據庫的更改,所以只需對源端數據庫開啟最小附加日志

SQL> select supplemental_log_data_min from v$database;

SUPPLEME
--------
NO

SQL> alter database add supplemental log data;

Database altered.

SQL> alter system switch logfile;   --切換日志使附加日志生效

System altered.

 

五、在數據庫中建立OGG用戶並賦予響應的權限

為了簡化授權,直接將dba角色賦予給gg用戶。

SQL> create user gg identified by gg;
SQL> grant dba to gg;

 

六、上傳軟件包到指定目錄,進行安裝

在源端:

[oracle@node1 ~]$ cd /u01/app/goldengate/
[oracle@node1 goldengate]$ ls
ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@node1 goldengate]$ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip 
Archive:  ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
  inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar  
  inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf  
  inflating: Oracle GoldenGate 11.2.1.0.1 README.txt  
  inflating: Oracle GoldenGate 11.2.1.0.1 README.doc  
[oracle@node1 goldengate]$ tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar 

在當前目錄下,執行ggsci命令

[oracle@node1 goldengate]$ ./ggsci 
./ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory

報以上錯誤,在/home/oracle/.bash_profile添加如下內容:export LD_LIBRARY_PATH=$ORACLE_HOME/lib,添加完畢后,記得使配置文件生效:source /home/oracle/.bash_profile。

注意:為了ggsci命令在任何目錄下可以執行,可在/home/oracle/.bash_profile設置如下環境變量:

export GG_HOME=/u01/app/goldengate
export PATH=$GG_HOME:$PATH

重新執行ggsci命令

[oracle@node1 goldengate]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.



GGSCI (node1.being.com) 1> 

表示進入成功

在ggsci環境下創建GoldenGate子目錄

[oracle@node1 goldengate]$ ggsci 

GGSCI (node1.being.com) 1> create subdirs

Creating subdirectories under current directory /u01/app/goldengate

Parameter files                /u01/app/goldengate/dirprm: already exists
Report files                   /u01/app/goldengate/dirrpt: created
Checkpoint files               /u01/app/goldengate/dirchk: created
Process status files           /u01/app/goldengate/dirpcs: created
SQL script files               /u01/app/goldengate/dirsql: created
Database definitions files     /u01/app/goldengate/dirdef: created
Extract data files             /u01/app/goldengate/dirdat: created
Temporary files                /u01/app/goldengate/dirtmp: created
Stdout files                   /u01/app/goldengate/dirout: created

在目標端:即Win8環境下,注意,Win8的OGG版本是12.1.2.1.0,需圖形界面安裝,而11.2.1.0.1則不需要,直接解壓縮即可。

將12.1.2.1.0版本的OGG解壓縮以后,雙擊里面的setup文件。

第一步:選擇OGG對應的數據庫版本

第二步:指定OGG的運行目錄

其它直接點擊下一步即可。    

安裝完畢后,會啟動一個mgr進程的窗口。

同樣需要在目標端ggsci環境下創建GoldenGate子目錄,因該OGG安裝完畢后,以上目錄均已自動創建,故不再創建。

 

七、配置Manager進程

在ggsci環境下配置Manager進程

源端配置如下:

[oracle@node1 goldengate]$ ggsci 
GGSCI (node1.being.com) 1> edit param mgr GGSCI (node1.being.com) 2> start mgr Manager started. GGSCI (node1.being.com) 3> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING --可見MGR進程已啟動

目標端同樣如此。

 

八、在源端上添加表級附加日志

為了驗證搭建的效果,在這里我們新建一個test用戶,並新建一張test表。

SQL> create user test identified by test;

User created.

SQL> grant connect,resource to test;

Grant succeeded.

SQL> conn test/test
Connected.

SQL> create table test (id number);

Table created.

在ggsci命令行中登錄數據庫,為所有需要復制的表添加trandata 

GGSCI (node1.being.com) 1> dblogin userid gg,password gg
Successfully logged into database.

GGSCI (node1.being.com) 2> add trandata test.*

2015-08-24 18:14:59  WARNING OGG-00869  No unique key is defined for table 'TEST'. All viable columns will be used to represent the key, but may not guarantee uniqueness.  KEYCOLS may be used to define the key.

Logging of supplemental redo data enabled for table TEST.TEST.

從上面的WARNING我們可以看出,因為test表沒有唯一性約束,故OGG將該行的所有列來作為它的唯一性約束。

 

九、在源端上添加Extract進程

GGSCI (node1.being.com) 5> add ext exta,tranlog,begin now

其中,exta為進程名,一般為ext開頭表示是extract進程,后面可以加1-2位字符標識;

         tranlog表示要抽取數據庫日志;

         begin now表示從當前時間點開始抽取

注意:添加完Extract進程后,我們有兩種方式來傳輸數據。

第一種,exta進程直接將捕捉到的有效數據寫入到遠程隊列,網絡拓撲如下:

 

不難看出,該方式對網絡要求較高,在實際生產環境中很少使用該種方式。

第二種,首先將數據抽取到本地,然后再由Pump進程傳輸到遠程隊列。網絡拓撲如下:

在這里,我們采用第二種方式

 

十、在源端上配置Pump進程

創建完exta進程后,使用本地隊列時為exta進程配置隊列如下:

GGSCI (node1.being.com) 1> add exttrail /u01/app/goldengate/dirdat/la,ext exta,megabytes 20

megabytes表示每個隊列文件的大小,超過該大小則會滾動寫入到下一個隊列文件。

此時exta復制到了本地,下面來配置Pump進程,負責將數據原封不動的搬運到目標端。

GGSCI (node1.being.com) 3> add extract dpea,exttrailsource /u01/app/goldengate/dirdat/la

此時exttrailsource指定的是本地隊列的路徑

為該Pump進程配置遠程隊列

GGSCI (node1.being.com) 4> add rmttrail G:\app\goldengate\dirdat\ra,ext dpea,megabytes 20

rmttrail為目標隊列的位置,隊列一般由路徑加上兩個標識如ra來表示。

 

十一、在源端配置Extract進程參數

GGSCI (node1.being.com) 6> edit param exta

內容如下:

EXTRACT exta
setenv ( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )
setenv ( ORACLE_SID = orcl )
USERID gg, PASSWORD gg
EXTTRAIL /u01/app/goldengate/dirdat/la
dynamicresolution
table test.*;

啟動exta進程,看其能否正常啟動

GGSCI (node1.being.com) 15> start exta

Sending START request to MANAGER ...
EXTRACT EXTA starting

GGSCI (node1.being.com) 17> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     STOPPED     DPEA        00:00:00      00:27:12    
EXTRACT     RUNNING     EXTA        00:55:27      00:00:07  

注意:正常情況下,exta進程啟動后的status是running,如果依舊是stopped,可通過view report exta查看exta啟動異常的原因。

PS:第一次配置后,啟動異常,后來通過view report exta命令查看其報錯信息:ERROR   OGG-00396  Command not terminated by semi-colon,才知道table test.*參數后沒有加分號。添加完畢后,重新啟動,啟動正常。

 

十二、在源端配置Pump進程參數

GGSCI (node1.being.com) 19> edit param dpea

內容如下:

extract dpea
setenv ( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )
passthru
rmthost 192.168.2.1,mgrport 7809, compress
rmttrail G:\app\goldengate\dirdat\ra
dynamicresolution
table test.*;

其中rmthost指定目標端的主機IP和端口,rmttrail指定遠程隊列的路徑,passthru表示本進程是一個Pump進程,不需要跟數據庫交互。

啟動查看狀態

GGSCI (node1.being.com) 20> start dpea

Sending START request to MANAGER ...
EXTRACT DPEA starting

GGSCI (node1.being.com) 21> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPEA        00:00:00      00:42:42    
EXTRACT     RUNNING     EXTA        00:00:00      00:00:04 

啟動OK。

 

十三、在目標端上初始化目標表

可以通過exp/imp、RMAN、init load進行數據初始化

如果目標端不需要歷史數據,可以只建立表結構

在這里,同源端一樣,在目標端新建一個test用戶,並新建一張test表。

 

十四、在目標端添加Replicat進程

GGSCI (Lenovo-PC) 5> add rep repa,exttrail G:\app\goldengate\dirdat\ra,nodbcheckpoint
REPLICAT added.

 

十五、配置Replicat進程參數

GGSCI (Lenovo-PC) 7> edit param repa

內容如下:

replicat repa
setenv (NLS_LANG = 'AMERICAN_AMERICA.ZHS16GBK')
setenv (ORACLE_SID = test)
userid gg, password gg
reperror default,abend
discardfile G:\app\goldengate\dirrpt\repa.dsc,append, megabytes 10
assumetargetdefs
dynamicresolution
map test.*, target test.*;

啟動Replicat進程

GGSCI (Lenovo-PC) 25> start repa

Sending START request to MANAGER ...
REPLICAT REPA starting

GGSCI (Lenovo-PC) 26> info all  

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    ABENDED     REPA        00:00:00      01:45:47   

發現REPA進程的狀態是ABENDED,通過view report exta命令查看其報錯信息:

2015-08-24 14:39:21 ERROR OGG-02091 Operation not supported because enable_goldengate_replication is not set to true.

在目標數據庫中將enable_goldengate_replication的值設為true

SQL> alter system set enable_goldengate_replication=true;

系統已更改。

重新啟動Replicat進程,狀態OK

GGSCI (Lenovo-PC) 29> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REPA        00:00:00      00:00:08

至此,各進程均已正常啟動,下面,通過對源端test表進行增刪改,看其目標端的變化

源端新增一條數據

SQL> insert into test values(1);

1 row created.

SQL> commit;

Commit complete.

目標端的結果如下:

SQL> select * from test;

        ID
----------
         1

對源端進行刪、改,變化同樣發生在目標端中。

也可通過查看各進程的狀態來查看復制的情況

GGSCI (node1.being.com) 31> stats exta

Sending STATS request to EXTRACT EXTA ...

Start of Statistics at 2015-08-24 23:23:49.

Output to /u01/app/goldengate/dirdat/la:

Extracting from TEST.TEST to TEST.TEST:

*** Total statistics since 2015-08-24 23:15:07 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Daily statistics since 2015-08-24 23:15:07 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Hourly statistics since 2015-08-24 23:15:07 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Latest statistics since 2015-08-24 23:15:07 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

End of Statistics.


GGSCI (node1.being.com) 32> stats dpea

Sending STATS request to EXTRACT DPEA ...

Start of Statistics at 2015-08-24 23:23:54.

Output to G:\app\goldengate\dirdat\ra:

Extracting from TEST.TEST to TEST.TEST:

*** Total statistics since 2015-08-24 23:15:08 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Daily statistics since 2015-08-24 23:15:08 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Hourly statistics since 2015-08-24 23:15:08 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

*** Latest statistics since 2015-08-24 23:15:08 ***
    Total inserts                                  1.00
    Total updates                                  1.00
    Total deletes                                  1.00
    Total discards                                 0.00
    Total operations                               3.00

End of Statistics.
GGSCI (Lenovo-PC) 30> stats repa

Sending STATS request to REPLICAT REPA ...

Start of Statistics at 2015-08-24 15:24:34.

Replicating from TEST.TEST to TEST.TEST:

*** Total statistics since 2015-08-24 15:15:14 ***
        Total inserts                                      1.00
        Total updates                                      1.00
        Total deletes                                      1.00
        Total discards                                     0.00
        Total operations                                   3.00

*** Daily statistics since 2015-08-24 15:15:14 ***
        Total inserts                                      1.00
        Total updates                                      1.00
        Total deletes                                      1.00
        Total discards                                     0.00
        Total operations                                   3.00

*** Hourly statistics since 2015-08-24 15:15:14 ***
        Total inserts                                      1.00
        Total updates                                      1.00
        Total deletes                                      1.00
        Total discards                                     0.00
        Total operations                                   3.00

*** Latest statistics since 2015-08-24 15:15:14 ***
        Total inserts                                      1.00
        Total updates                                      1.00
        Total deletes                                      1.00
        Total discards                                     0.00
        Total operations                                   3.00

End of Statistics.

至此,基於GoldenGate的單向復制環境搭建完畢。

 


免責聲明!

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



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