Oracle GoldenGate安裝應用及初始化資料示例

lovestanford發表於2015-07-26

  在本配置中,目標是初始化源端ora9node1中jss.j1物件資料到目標端rhel5u3資料庫。

安裝goldengate

  Oracle GoldenGate是個小軟體(相比Oracle Database),該軟體可以在oracle的官網直接下載:。注意,下載的GoldenGate版本一定要與database版本相匹配,否則無法正常使用。

  GoldenGate的安裝非常簡單,詳細步驟如下:

    # su - oracle

    $ mkdir /data/oracle/ora9i/ggate

    $ unzip V22662-01.zip

    $ tar xvf ggs_Linux_x64_ora9i_64bit_v11_1_1_0_0_078.tar -C /data/oracle/ora9i/ggate/

  基本上,安裝就算完成了,其實就是解包解壓縮。

  為了方便呼叫,最好將相關的路徑加入到環境變數中,GoldenGate與database如果是在同一個帳戶下就更簡單了(就像本例中這樣),直接修改當前的環境變數,增加一些路徑即可,本例中編譯環境變數如下:

    $ vi ~/.bash_profile

    export ORACLE_BASE=/data/oracle/ora9i

    export ORACLE_SID=jss9i 

    export PATH=$ORACLE_BASE/ggate:$PATH

    export LD_LIBRARY_PATH=$ORACLE_BASE/ggate/:$LD_LIBRARY_PATH

  載入剛剛設定的環境變數:

    $ source /home/oracle/.bash_profile

  進入ggsci命令列:

    [oracle@ora9node1 ~]$ /data/oracle/ora9i/ggate/ggsci

    Oracle GoldenGate Command Interpreter for Oracle

    Version 11.1.1.0.0 Build 078

    Linux, x64, 64bit (optimized), Oracle 9 on Jul 28 2010 15:51:02

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

    GGSCI (ora9node1) 1> 

  建立相關目錄:

    GGSCI (ora9node1) 1> create subdirs

    Creating subdirectories under current directory /data/oracle/ora9i/ggate

    Parameter files                /data/oracle/ora9i/ggate/dirprm: created

    Report files                   /data/oracle/ora9i/ggate/dirrpt: created

    Checkpoint files               /data/oracle/ora9i/ggate/dirchk: created

    Process status files           /data/oracle/ora9i/ggate/dirpcs: created

    SQL script files               /data/oracle/ora9i/ggate/dirsql: created

    Database definitions files     /data/oracle/ora9i/ggate/dirdef: created

    Extract data files             /data/oracle/ora9i/ggate/dirdat: created

    Temporary files                /data/oracle/ora9i/ggate/dirtmp: created

    Veridata files                 /data/oracle/ora9i/ggate/dirver: created

    Veridata Lock files            /data/oracle/ora9i/ggate/dirver/lock: created

    Veridata Out-Of-Sync files     /data/oracle/ora9i/ggate/dirver/oos: created

    Veridata Out-Of-Sync XML files /data/oracle/ora9i/ggate/dirver/oosxml: created

    Veridata Parameter files       /data/oracle/ora9i/ggate/dirver/params: created

    Veridata Report files          /data/oracle/ora9i/ggate/dirver/report: created

    Veridata Status files          /data/oracle/ora9i/ggate/dirver/status: created

    Veridata Trace files           /data/oracle/ora9i/ggate/dirver/trace: created

    Stdout files                   /data/oracle/ora9i/ggate/dirout: created

  目標端也按照上述步驟安裝GoldenGate並建立工作目錄。

配置源端資料庫

  源端資料庫必須置於歸檔模式,force logging,並且啟用supplemental logging。檢視這幾個選項是否啟動,最簡單的方式是查詢v$database檢視,例如:

    SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;

    LOG_MODE     SUP FOR

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

    NOARCHIVELOG NO  NO

  啟用上述幾個選項的操作如下,以sysdba身份登入到sqlplus命令列,執行下列命令:

    --啟動到mount狀態:

    startup mount;

    --置於歸檔模式:

    alter database archivelog;

    --強制日誌記錄:

    alter database force logging;

    --啟用最少附加日誌

    alter database add supplemental log data;

    --啟動資料庫並查詢狀態:

    SQL> alter database open;

    Database altered.

    SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;

    LOG_MODE     SUP FOR

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

    ARCHIVELOG   YES YES

  注意,對於oracle9i版本來說,必須要將LOG_PARALLELISM引數值設定為1,GoldenGate不支援該引數值大於1。

  建立GoldenGate管理使用者:

    SQL> create user ggate identified by ggate;        

    User created.

    SQL> grant dba to ggate;

    Grant succeeded.

  建立測試使用者:

    SQL> create user jss identified by jss default tablespace jsstbs quota unlimited on jsstbs;

    User created.

    SQL> grant connect,resource to jss;                     

    Grant succeeded.

  初始化一個預設表:

    SQL> create table j1 (id number not null ,vl varchar2(200) ,primary key(id));

    Table created.

    SQL> insert into j1 select rownum rn,object_name from all_objects;

    23623 rows created.

    SQL> commit;

    Commit complete.

配置目標端資料庫

  目標端資料庫同樣需要建立jss/ggate兩使用者。同時,目標端資料庫還需要建立j1表,但是不需要填充資料,初始化資料的操作將由goldengate來完成。

  提示:目標庫的使用者名稱和物件名稱可以與源端不同,關鍵在於配置檔案中要能夠正確匹配。另外,不要忘記配置源和目標兩端tnsnames,保持互聯互通。

配置源端goldengate

  檢視資訊:

    GGSCI (ora9node1) 1> info all

    Program     Status      Group       Lag           Time Since Chkpt

    MANAGER     STOPPED                                           

  編譯引數檔案:

    GGSCI (ora9node1) 2> edit params mgr

  增加下列內容:

    PORT 7809

  啟動管理服務:

    GGSCI (ora9node1) 3> start manager

    Manager started.

    GGSCI (ora9node1) 4> info all

    Program     Status      Group       Lag           Time Since Chkpt

    MANAGER     RUNNING                

  接下來,配置源端複製佇列,先連線到資料庫:

    GGSCI (ora9node1) 5> dblogin userid ggate, password ggate

    Successfully logged into database.

  增加一個抽取:

    GGSCI (ora9node1) 6> add extract ext1,SOURCEISTABLE

    EXTRACT added.

    GGSCI (ora9node1) 7> info extract ext1, tasks

    EXTRACT    EXT1      Initialized   2011-06-24 13:51   Status STOPPED

    Checkpoint Lag       Not Available

    Log Read Checkpoint  Not Available

                         First Record         Record 0

    Task                 SOURCEISTABLE

  編輯配置檔案:

    GGSCI (ora9node1) 8> edit params ext1

  增加下列內容,主要是配置目標端主機及要啟動的任務:

    extract ext1

    userid ggate@source, password ggate

    rmthost 172.16.1.110, mgrport 7809

    RMTTASK REPLICAT, GROUP rep1

    table jss.j1

  源端配置完成。

配置目標端goldengate

  檢視資訊:

    GGSCI (rhel5u3) 1> info all

    Program     Status      Group       Lag           Time Since Chkpt

    MANAGER     STOPPED                                           

  編譯引數檔案:

    GGSCI (rhel5u3) 2> edit params mgr                                           

  增加下列內容:

    PORT 7809

  啟動管理服務:

    GGSCI (rhel5u3) 3> start manager

    Manager started.

    GGSCI (rhel5u3) 4> info all

    Program     Status      Group       Lag           Time Since Chkpt

    MANAGER     RUNNING                

  接下來配置目標端的複製類,連線到目標端管理使用者下:

    GGSCI (rhel5u3) 1> dblogin userid ggate, password ggate

    Successfully logged into database.

  增加一個複製類,命名為rep1,指定specialrun引數,讓其作為任務執行:

    GGSCI (rhel5u3) 2> add replicat rep1,specialrun

    REPLICAT added.

  編輯該類的配置檔案:

    GGSCI (rhel5u3) 3> edit params rep1

  增加下列內容:

    REPLICAT rep1

    ASSUMETARGETDEFS

    USERID ggate@target, PASSWORD goldengate

    DISCARDFILE ./dirrpt/rep1_gg2.dsc, PURGE

    MAP jss.*, TARGET jss.*;

  目標端配置完成!

同步資料

  僅需要在源端啟動ext1即可,它會自動呼叫目標端的rep1:

    GGSCI (ora9node1) 46> start extract ext1

    Sending START request to MANAGER ...

    EXTRACT EXT1 starting

  而後,目標端查詢資料量:

    SQL> select count(0) from jss.j1;

      COUNT(0)

    ----------

         23623

  資料量無誤,可以看到,資料已然同步。

  兩端均可以使用view report檢視任務的詳細資訊,例如,源端檢視ext1的詳細資訊:

    GGSCI (ora9node1) 47> view report ext1

    2011-06-23 14:42:25  INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.

    ***********************************************************************

                     Oracle GoldenGate Capture for Oracle

                         Version 11.1.1.0.0 Build 078

        Linux, x64, 64bit (optimized), Oracle 9 on Jul 28 2010 16:08:42

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

                        Starting at 2011-06-24 14:42:25

    ***********************************************************************

    Operating System Version:

    Linux

    Version #1 Wed May 2 15:01:08 PDT 2007, Release 2.6.9-55.0.0.0.2.EL

    Node: ora9node1

    Machine: x86_64

                             soft limit   hard limit

    Address Space Size   :    unlimited    unlimited

    Heap Size            :    unlimited    unlimited

    File Size            :    unlimited    unlimited

    CPU Time             :    unlimited    unlimited

    Process id: 5981

    Description: 

    ***********************************************************************

    **            Running with the following parameters                  **

    ***********************************************************************

    extract ext1

    userid ggate, password *****

    rmthost 172.16.1.110, mgrport 7809

    RMTTASK REPLICAT, GROUP rep1

    table jss.j1;

    Using the following key columns for source table JSS.J1: ID.

    CACHEMGR virtual memory values (may have been adjusted)

    CACHEBUFFERSIZE:                         64K

    CACHESIZE:                                8G

    CACHEBUFFERSIZE (soft max):               4M

    CACHEPAGEOUTSIZE (normal):                4M

    PROCESS VM AVAIL FROM OS (min):          16G

    CACHESIZEMAX (strict force to disk):  13.99G

    Database Version:

    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production

    PL/SQL Release 9.2.0.8.0 - Production

    CORE    9.2.0.8.0       Production

    TNS for Linux: Version 9.2.0.8.0 - Production

    NLSRTL Version 9.2.0.8.0 - Production

    Database Language and Character Set:

    NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" 

    NLS_LANGUAGE     = "AMERICAN" 

    NLS_TERRITORY    = "AMERICA" 

    NLS_CHARACTERSET = "ZHS16GBK" 

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

相關文章