Oracle GoldenGate實現數據庫同步


前言:最近剛好在弄數據庫同步,網上查了些資料再加上自己整理了一些,做個分享!

一、GoldenGate的安裝

 

官方文檔:

 

Oracle®GoldenGate安裝和配置Oracle GoldenGate for Oracle數據庫(https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm)

1、安裝包准備

數據庫版本:Oracle Database 11g Release 2(11.2.0.1.0)

此次使用的安裝包版本為Oracle GoldenGate 12.3.0.1.2 for Oracle on Linux x86-64

 

root權限

(創建安裝包存放目錄)

[root@dbsrc oracle]# mkdir /data/goldengate

(創建源端安裝目錄)

[root@dbsrc oracle]# mkdir /data/oracle/product/ogg_src

(創建目標端安裝目錄)

[root@dbtrg oracle]# mkdir /data/oracle/product/ogg_trg

將U盤中的安裝包拷貝到本地目錄進行解壓縮(此處不再贅述)

2、配置環境變量

(oracle權限

[oracle@dbsrc ~]$ vim ~/.bash_profile

添加以下參數

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#以上參數為安裝oracle時配置的環境變量
# Path Oracle GoldenGate export OGG_HOME=/data/oracle/product/ogg_src export PATH=$OGG_HOME:$PATH export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH

注:OGG_HOMEGoldenGate的安裝目錄

[oracle@dbsrc ~]$ source ~/.bash_profile

3、運行安裝程序進行圖形化界面安裝

[root@dbsrc oracle]# cd /data/goldengate/fbo_oggs_Linux_x64_shiphome/Disk1
[root@dbsrc Disk1]# ./runInstaller

根據使用的數據庫版本選擇相應的版本

選擇安裝目錄為剛才創建的安裝目錄其他都默認,接下來都步驟都默認直至安裝完成。

4、配置快捷命令

詳見上一篇:Rlwrap工具的安裝和配置(http://www.cnblogs.com/VoiceOfDreams/p/8576850.html)

(源端)

alias ggsci="rlwrap /data/oracle/product/ogg_src/ggsci"

(目標端)

alias ggsci="rlwrap /data/oracle/product/ogg_trg/ggsci"

路徑均為GoldenGate的安裝目錄

5、查看GoldenGate是否安裝成功

[oracle@dbsrc ~]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.2 OGGCORE_12.3.0.1.0_PLATFORMS_171208.0005_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Dec  8 2017 21:13:00
Operating system character set identified as US-ASCII.

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

GGSCI (dbsrc) 1> view param mgr
PORT 7809

GGSCI (dbsrc) 2> info mgr
Manager is running (IP port dbsrc.7809,Process ID 5682)

此版本已經自動建立子目錄,無需再使用(create subdirs)命令創建

二、配置數據庫支持GoldenGate

1、為GoldenGate創建獨立的用戶和分配必要的權限

[oracle@dbsrc ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 12 16:09:25 2018

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create tablespace OGG logging datafile '/data/oracle/oradata/orcl/OGG.DBF' size 20m autoextend on uniform size 2m;

注:autoextend on 打開自動擴展         uniform 指定表空間extend的大小,缺省值為1m

此表空間只用於DDL模式,不可用於其他模式

若需刪除表空間:

SQL> drop tablespace OGG including contents and datafiles cascade constraints;

創建用戶並授權

SQL> create user ogg identified by pwd default tablespace OGG temporary tablespace TEMP quota unlimited on OGG;

注:create user 用戶名 identified by 密碼 default tablespace 表空間名 temporary tablespace 臨時表空間名 quota unlimited on 表空間名;

若需要刪除用戶,執行以下SQL

SQL> drop user 用戶名 cascade;

給用戶授權

SQL> grant unlimited tablespace to ogg;

SQL> grant connect, resource, dba to ogg;

SQL> grant create session, alter session to ogg;

SQL> grant alter system to ogg;

SQL> grant select any dictionary to ogg;

SQL> grant flashback any table to ogg;

SQL> grant select any table, insert any table, update any table, delete any table, drop any table to ogg;

SQL> grant create table, create sequence to ogg;

SQL> grant select on dba_clusters to ogg;

SQL> grant select on v_$database to ogg;

SQL> grant select on sys.logmnr_buildlog to ogg;

SQL> grant select any transaction to ogg;

SQL> grant lock any table to ogg;

SQL> grant execute on dbms_flashback to ogg;

SQL> grant execute on dbms_logmnr_d to ogg;

SQL> grant execute on dbms_capture_adm to ogg;

SQL> grant execute on dbms_streams to ogg;

SQL> grant execute on utl_file to ogg;

SQL> exec dbms_streams_auth.grant_admin_privilege('ogg');

創建測試用表和數據

SQL> create table ogg.togg(id primary key, name, type, CREATED, update_date) as select object_id, object_name, object_type, CREATED, sysdate from dba_objects where rownum < 101;

2、開啟數據庫附加日志

oracle 11.2.0.4oracle 12.1.0.2及之后的版本需要設置如下參數,本次所用數據庫版本為Oracle 11.2.0.1.0就無需設置此參數了,做個記錄吧!

SQL> alter system set enable_goldengate_replication=true scope=both;

查看歸檔模式、附加日志和強制日志是否開啟

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

修改模式

SQL> shutdown immediate;                                  #立即關閉數據庫,不允許新的連接和事物啟動
SQL> startup mount;                                       #裝載數據庫而不啟動
SQL> alter database archivelog;                           #啟用歸檔模式
SQL> alter database open;                                 #打開數據庫
SQL> alter database force logging;                        #啟用強制日志 SQL> alter database add supplemental log data;            #啟用附加日志
SQL> alter system switch logfile; #切換日志文件

 (用戶級別的附加日志和表級別的附加日志可以在最后配置,即啟動同步服務前一步進行配置。兩種類型的附加日志只需配置其中之一,不過可以配置用戶級別的附加日志的話就不需要每張表都配置了)

用戶級別的附加日志

[oracle@dbsrc ~]$ ggsci
...
GGSCI (dbsrc) 1> dblogin userid ogg, password pwd Successfully logged into database GGSCI (dbsrc as ogg@orcl) 2> add schematrandata ogg

(由於此版本數據庫為11.2.0.1,需要打補丁)

官方參考文獻:https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands066.htm#GWURF265

(如果Oracle版本早於11.2.0.2,則將Oracle Patch 10423000應用於源數據庫。)

 

表級別的附加日志

[oracle@dbsrc ~]$ ggsci
...
GGSCI (dbsrc) 1> dblogin userid ogg, password pwd Successfully logged into database GGSCI (dbsrc as ogg@orcl) 2> add trandata ogg.togg;

 

注:add trandata 用戶名.表名;

3、執行配置腳本

進入GoldenGate安裝目錄

(源端)

[oracle@dbsrc ~]$ cd /data/oracle/product/ogg_src

(目標端)

[oracle@dbtrg ~]$ cd /data/oracle/product/ogg_trg

登錄sqlplus

SQL> @marker_setup 輸入GoldenGate賬戶名ogg
SQL> @ddl_setup 輸入GoldenGate賬戶名ogg
SQL> @role_setup 輸入GoldenGate賬戶名ogg GRANT GGS_GGSUSER_ROLE TO
<loggedUser> SQL> grant ggs_ggsuser_role to ogg;
SQL> @ddl_enable

(DDL同步配置完成)

4、配置Manager進程(管理進程)

 Manager進程必須在源端和目標端運行,並且在ExtractReplicat進程之前啟動,沒有該進程OGG無法做其它的操作,它管理啟動Oracle GoldenGate進程、啟動動態進程、分配端口給GoldenGate進程、管理trail file、創建事件,錯誤和診斷報告工作;

[oracle@dbsrc ~]$ ggsci GGSCI (dbsrc) 1> info mgr Manager is running (IP port dbsrc.7809,Process ID 5682)

源端:

GGSCI (dbsrc) 2> edit param mgr PORT 7839 DYNAMICPORTLIST 7840-7939 AUTOSTART EXTRACT * AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2 PURGEOLDEXTRACTS /data/oracle/product/ogg_src/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45

注:

PORT 7839

通信端口7839, 源端和目標端需要保持一致。

DYNAMICPORTLIST  7840-7939

動態端口列表的范圍從78407939。當制定端口被占用或者出現通信故障,管理進程將會從列表中選擇下一個端口嘗試連接,避免通信端口的單點故障。

AUTOSTART EXTRACT *

MGR進程啟動后啟動EXTRACT進程

AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2

EXTRACT進程中斷后嘗試自動重啟,每隔2分鍾嘗試啟動一次,嘗試5次。

PURGEOLDEXTRACTS /data/oracle/product/ogg_src/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5

(相對路徑寫法)PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5

定期清理dirdat路徑下的本地隊列(local trail)。保留期限10天,過期后自動刪除。從而控制隊列文件的目錄不會增長過大。

LAGREPORTHOURS 1

每隔一小時檢查各進程延時情況,並記錄到goldengate report文件。

LAGINFOMINUTES 30

進程復制延時超過30分鍾,向日志文件記錄一條錯誤日志

LAGCRITICALMINUTES 45

傳輸延時超過45分鍾將寫入警告日志

目標端:

GGSCI (dbtrg) 1> edit param mgr PORT 7839
USERID ogg, PASSWORD pwd DYNAMICPORTLIST 7840-7939 AUTOSTART REPLICAT * AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2 PURGEOLDEXTRACTS /data/oracle/product/ogg_trg/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10 PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45

注:

USERID ogg, PASSWORD pwd

GoldenGate用戶登錄數據庫的用戶名和密碼,密碼未做加密處理。

如果密碼需要加密使用:GGSCI (dbtrg) 1> encrypt password pwd ,ENCRYPTKEY default

可以得到加密后的密碼字符串,之后配置進程若使用加密過的密碼,需要帶參數(ENCRYPTKEY default)。

例如:USERID ogg, PASSWORD xxx(加密過的密碼) ,ENCRYPTKEY default

AUTOSTART REPLICAT *

MGR進程啟動后啟動REPLICAT進程

AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2

REPLICAT進程中斷后嘗試自動重啟,每隔2分鍾嘗試啟動一次,嘗試5次。

PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10

刪除DDL歷史表,最小保存7天,最大保存10天。

PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10

刪除MARKER歷史表,最小保存7天,最大保存10天。

5、配置Extract進程(只在源端配置)

  Extract 運行在源端或者根據系統和業務的需求可以同時運行在兩端,抽取捕獲系統變更統數據;它可以配置為初始化數據加載(直接從數據源中加載靜態的數據)和在某個時間點后源端與服務端變更數據同步(從在線日志或歸檔日志抽取捕獲變更的數據),它也可以在支持DDL變更的系統中抽取捕獲DDL

  當配置為數據同步時,extract進程抽取捕獲extract配置文件里配置的對象的任何DMLDDL(需要額外配置)的操作,extract進程記錄這些操作,直到用戶提交或回滾事務;當收到回滾(rollback)時,extract撤銷這些記錄;當收到(commit)操作后,extract進程記錄保存這些操作到一個或多個trail文件里並以隊列的形式發送到目標端,以確保數據傳輸速度和數據的一致性。

1)、配置主抽取進程(Primary Extract)

使用ogg用戶登錄GoldenGate

GGSCI (dbsrc) 5> dblogin userid ogg, password pwd

創建主抽取進程

GGSCI (dbsrc as ogg@orcl) 6> add extract ext1,tranlog,begin now

創建源端trail文件並指定路徑

主進程的作用是抽取捕獲系統變更數據並將這些數據保存到trail文件里,所以必須為其配置trail文件目錄和trail文件名的兩個字符名

GGSCI (dbsrc as ogg@orcl) 7> add exttrail /data/oracle/product/ogg_src/dirdat/sr, extract ext1 GGSCI (dbsrc as ogg@orcl) 8> edit param ext1 extract ext1 SETENV(ORACLE_SID="orcl") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg, password pwd REPORTCOUNT EVERY 30 MINUTES, RATE DISCARDFILE /data/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024 DISCARDROLLOVER AT 3:00 EXTTRAIL /data/oracle/product/ogg_src/dirdat/sr DYNAMICRESOLUTION DBOPTIONS ALLOWUNUSEDCOLUMN FETCHOPTIONS NOUSESNAPSHOT FETCHOPTIONS FETCHPKUPDATECOLS table ogg.*;

注:

SETENV(ORACLE_SID="orcl")

設置Oracle數據庫實例sid

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

設置goldengate的字符集變量信息,此處值會覆蓋操作系統級別的變量。該值需要和數據庫字符集匹配一致。

REPORTCOUNT EVERY 30 MINUTES, RATE

每隔30分鍾報告一次從程序開始到現在的抽取進程或者復制進程的事物記錄數,並匯報進程的統計信息

DISCARDFILE /data/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024

將執行失敗的記錄保存在discard file中,discard file文件記錄了GoldenGate進程錯誤、數據庫錯誤、GoldenGate操作等信息。該文件位於/data/oracle/product/ogg_src/dirrpt/extsr.dsc,大小為1024MB。 文件中已經包含記錄的話,再后面繼續追加,不刪除之前的記錄。

DISCARDROLLOVER AT 3:00

為了防止discard file被寫滿,每天3:00做一次文件過期設定

EXTTRAIL /data/oracle/product/ogg_src/dirdat/sr

隊列文件路徑, trail文件存放路徑。

DYNAMICRESOLUTION

有時候開啟OGG進程的時候較慢,可能是因為需要同步的表太多,OGG在開啟進程之前會將需要同步的表建立一個記錄並且存入到磁盤中,這樣就需要耗費大量的時間。使用該參數來解決此問題。

DBOPTIONS  ALLOWUNUSEDCOLUMN

用於阻止抽取進程抽取數據時由於表含有unused列而導致進程異常終止(abend)。使用該參數,抽取進程抽取到unused列時也會向日志文件記錄一條警告信息。

FETCHOPTIONS NOUSESNAPSHOT

默認值為 usesnapshot,表示利用數據庫閃回讀取數據。Nousesnapshot表示直接從原表讀取相關數據。

FETCHOPTIONS FETCHPKUPDATECOLS

當使用了HANDLECOLLISIONS時,請使用該參數。

復制進程出現丟失update記錄(missing update)並且更新的是主鍵,update將轉換成insert。由於插入的記錄可能不是完整的行,若要保證完整需要加入此參數

table ogg.*;

需要復制的對象列表

 

2)、配置投遞進程(Data Pump)

  Data Pumps是第二種類型的GoldenGate extract配置,如果不使用Data Pumpextract進程必須發送抽取捕獲的操作數據到目標端trail;如果配置了Data Pumpextract進程抽取捕獲數據寫入到trailData pump讀取trail並且通過網絡發送trail到目標端traildata pump 加強了源端和目標端抽取捕獲數據的可用性,

主要優點:

1.保護網絡傳輸失敗和目標端失敗;

2.可以實現復雜的數據過濾和轉換;

3.可以結合多個數據源到目標端;

4.可以同步一個源數據到多個目標端。

 

創建並指定源數據庫trail文件位置,必須包含兩個字符,這個路徑和主抽取進程(Primary Extract)中指定的trail目錄和trail文件命名必須相同,因為Data Pump進程要從此讀取主抽取進程生成的trail文件;

GGSCI (dbsrc as ogg@orcl) 9> add extract dpump1, exttrailsource /data/oracle/product/ogg_src/dirdat/sr  GGSCI (dbsrc as ogg@orcl) 10> edit param dpump1 extract dpump1 SETENV(ORACLE_SID="orcl") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) RMTHOST 10.0.0.64, mgrport 7839, COMPRESS PASSTHRU RMTTRAIL /data/oracle/product/ogg_trg/dirdat/tr --DYNAMICRESOLUTION table ogg.*;

注:

RMTHOST 10.0.0.64, mgrport 7839, COMPRESS

目標端主機IP,管理進程端口號,投遞前壓縮隊列文件

PASSTHRU

表示傳輸進程直接跟抽取進程交互,而不再和數據庫進行交互,減少數據庫資源的利用。

RMTTRAIL /data/oracle/product/ogg_trg/dirdat/tr

目標端保存隊列文件的目錄

DYNAMICRESOLUTION

動態解析表名

table ogg.*;

復制范圍和抽取進程對應即可

 

源端可以配置多個主抽取進程,也可以配置多個Data Pump進程,但必須為每個要同步的目標端配置一個Data Pump進程;

指定Data Pump進程發送trail文件到目標端的位置(目標端trail文件添加到隊列中)

GGSCI (dbsrc as ogg@orcl) 11> add rmttrail /data/oracle/product/ogg_trg/dirdat/tr, extract dpump1

6、目標端配置Replicat進程(復制進程)

  Replicat進程運行在目標端讀取tail文件和重構DML、DDL並應用到目標數據庫;Replicat編譯SQL一次,當變量值不同時重復使用編譯過的SQLReplicat進程可以像extract進程一樣配置初始化數據加載(直接從數據源中加載靜態的數據)和在某個時間點后源端與服務端變更數據同步(從在線日志或歸檔日志抽取捕獲變更的數據);

  Checkpoint存儲從文件讀取和寫入的檢測點位置,用於還原和恢復數據,Checkpoint確保發生變化並提交(commit)的數據被extract抽取捕獲和被replicat進程應用到目標端;保證在系統、網絡或者GoldenGate需要重啟進程時發生的錯誤不會導致數據丟失;在復雜的同步配置中checkpoints啟用多個extractreplicat進程從同一個trail集中讀取數據。

 

使用GoldenGate用戶(ogg)登錄

GGSCI (dbtrg) 1> dblogin userid ogg, password pwd

創建和配置Checkpoint Table

GGSCI (dbtrg as ogg@orcl) 2> add checkpointtable ogg.checkpoint GGSCI (dbtrg as ogg@orcl) 3> edit param ./GLOBALS GGSCHEMA ogg CHECKPOINTTABLE ogg.checkpoint

注:首次編輯GoldenGate配置文件時,GLOBALS文件以大寫命名並且沒有擴展名創建在GoldenGate_home根目錄

創建replicat進程

GGSCI (dbtrg as ogg@orcl) 4> add replicat rep1, exttrail /data/oracle/product/ogg_trg/dirdat/tr, checkpointtable ogg.checkpoint  GGSCI (dbtrg as ogg@orcl) 5> edit param rep1 REPLICAT rep1 SETENV(ORACLE_SID="orcl") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) USERID ogg, PASSWORD pwd REPORT AT 06:00 REPORTCOUNT EVERY 30 MINUTES, RATE REPORTROLLOVER AT 02:00 REPERROR DEFAULT, ABEND ALLOWNOOPUPDATES ASSUMETARGETDEFS HANDLECOLLISIONS DISCARDFILE /data/oracle/product/ogg_trg/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024 DISCARDROLLOVER AT 02:00 MAP ogg.*, target ogg.*;

注:

REPORT AT 06:00

每天06:00定期生成一個report文件

REPORTCOUNT EVERY 30 MINUTES, RATE

每隔30分鍾報告一次從程序開始到現在的抽取進程或者復制進程的事物記錄數,並匯報進程的統計信息

REPORTROLLOVER AT 02:00

為了防止report file被寫滿,每天2:00做一次文件過期設定

REPERROR DEFAULT, ABEND

除了特殊指定的REPERROR語句,報告所有復制期間出現的錯誤,回滾非正常中斷的事物和進程。遇到不能處理的錯誤就自動abend,啟動需要人工干預處理

ALLOWNOOPUPDATES

當源表有排除列情況或者有目標表不存在的列時,當更新這列goldengate默認報錯。應用該參數后,即可讓goldengate生成一條警告信息而不是報錯。

ASSUMETARGETDEFS

使用ASSUMETARGETDEFS參數時,用MAP語句中指定的生產庫源表和災備端目標表具有相同的列結構。它指示的Oracle GoldenGate不在生產端查找源表的結構定義。

HANDLECOLLISIONS

用於goldengate自動過濾不能出來的沖突記錄,為了嚴格保證數據一致性

DISCARDFILE /data/oracle/product/ogg_trg/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024

將執行失敗的記錄保存在discard file中,discard file文件記錄了GoldenGate進程錯誤、數據庫錯誤、GoldenGate操作等信息。該文件位於./dirrpt/repsa.dsc,大小為1024MB。 文件中已經包含記錄的話,再后面繼續追加,不刪除之前的記錄。 

DISCARDROLLOVER AT 02:00

為了防止discard file被寫滿,每天2:00做一次文件過期設定

MAP ogg.*, target ogg.*;

對應需要復制的對象,默認一一對應傳輸進程

 

三、 初始化數據

  DML操作包括INSERT、UPDATE、DELETE、SELECT操作,而在這些操作中UPDATE、DELETE操作Redo只記錄了變更的數據列以及行ID(ROWID),GoldenGate抽取數據后將其轉換為自己的格式發送都目標端。在同步開始前目標端沒有初始化數據(目標端為空數據),那么事物產生的UPDATE、DELETE DML操作發送到目標端,目標端GoldenGate Replicat進程會因為找不到數據而報錯從而導致Replicat進程崩潰停止(ABENDED),所以這就需要我們在同步前初始化數據,初始化完后再同步,這樣大大降低錯誤率。同步數據的方式可以通過DBLINK、EXP/IMP、SQLLDR或者表空間遷移等方式同步。

四、啟動GoldenGate

數據初始化后,分別啟動目標端MGR進程、Replicat進程,源端MGR進程、主抽取進程(Primary Extract)、Data Pump進程(Secondly Extract)

(目標端)

[oracle@dbtrg ~]$ ggsci GGSCI (dbtrg) 1> start mgr Manager started. GGSCI (dbtrg) 2> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP1 00:00:00 00:00:02 GGSCI (dbtrg) 3> stats rep1 Sending STATS request to REPLICAT REP1 ... No active replication maps.  

(源端)

[oracle@dbsrc ~]$ ggsci  GGSCI (dbsrc) 1> start mgr Manager started. GGSCI (dbsrc) 2> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING DPUMP1 00:00:00      00:08:30 EXTRACT RUNNING EXT1 00:00:00      00:00:03 GGSCI (dbsrc) 3> stats ext1 Sending STATS request to EXTRACT EXT1 ... No active extraction maps. GGSCI (dbsrc) 4> stats dpump1 Sending STATS request to EXTRACT DPUMP1 ... No active extraction maps.

因為在mgr都相應的配置了extract進程和replicat進程的自啟動,所以在mgr進程啟動后會自動啟動extract進程和replicat進程

如果啟動失敗,查看日志文件ggserr.log

日志文件存儲路徑:GoldenGate安裝目錄下(/data/oracle/product/ogg_src/ggserr.log

[oracle@dbsrc ~]$ vi $OGG_HOME/ggserr.log

Oracle GoldenGate錯誤集https://wenku.baidu.com/view/e78f9dd402d276a201292e14.html

五、同步測試

測試的時候分別測試insert、delete、update操作

1、源端進行數據插入操作

[oracle@dbsrc ~]$ sqlplus / as sysdba

使用ogg賬戶登錄

SQL> conn ogg/pwd SQL> select count(*) from togg; COUNT(*) ----------
      100 SQL> insert into togg(id,name,type) values(111,'ww','user'); 1 row created. SQL> select count(*) from ogg.togg; COUNT(*) ----------
      101

2、源端查看extract(提取)進程狀態

GGSCI (dbsrc) 5> stats ext1  Sending STATS request to EXTRACT EXT1 ... Start of Statistics at 2018-03-15 16:22:46. Output to /data/oracle/product/ogg_src/dirdat/sr: Extracting from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 End of Statistics. GGSCI (dbsrc) 6> stats dpump1 Sending STATS request to EXTRACT DPUMP1 ... Start of Statistics at 2018-03-15 16:22:49. Output to /data/oracle/product/ogg_trg/dirdat/tr: Extracting from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 End of Statistics.

3、目標端查看replicat(復制)進程狀態

GGSCI (dbtrg) 4> stats rep1 Sending STATS request to REPLICAT REP1 ... Start of Statistics at 2018-03-15 16:23:00. Replicating from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 End of Statistics.

4、目標端數據查詢

[oracle@dbtrg ~]$ sqlplus / as sysdba

使用ogg賬戶登錄

SQL> conn ogg/pwd SQL> select count(*) from togg; COUNT(*) ----------
      101 SQL> select id, name, type from togg where name='ww';  ID NAME TYPE ---------- ---------- -------------------
 111            ww         user

 


免責聲明!

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



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