Oracle GoldenGate實現數據庫同步

前言:最近恰好在弄數據庫同步,網上查了些資料再加上本身整理了一些,作個分享!html

1、GoldenGate的安裝

 

官方文檔:sql

 

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

一、安裝包準備

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

這次使用的安裝包版本爲Oracle GoldenGate 12.3.0.1.2 for Oracle on Linux x86-64bash

 

root權限網絡

(建立安裝包存放目錄)session

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

(建立源端安裝目錄)oracle

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

(建立目標端安裝目錄)ide

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

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

二、配置環境變量

(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

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

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

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

選擇安裝目錄爲剛纔建立的安裝目錄其餘都默認,接下來都步驟都默認直至安裝完成。

四、配置快捷命令

詳見上一篇: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的安裝目錄

五、查看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)命令建立

2、配置數據庫支持GoldenGate

一、爲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;

二、開啓數據庫附加日誌

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 用戶名.表名;

三、執行配置腳本

進入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同步配置完成)

四、配置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天。

五、配置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

六、目標端配置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.*;

對應須要複製的對象,默認一一對應傳輸進程

 

3、 初始化數據

  DML操做包括INSERT、UPDATE、DELETE、SELECT操做,而在這些操做中UPDATE、DELETE操做Redo只記錄了變動的數據列以及行ID(ROWID),GoldenGate抽取數據後將其轉換爲本身的格式發送都目標端。在同步開始前目標端沒有初始化數據(目標端爲空數據),那麼事物產生的UPDATE、DELETE DML操做發送到目標端,目標端GoldenGate Replicat進程會由於找不到數據而報錯從而致使Replicat進程崩潰中止(ABENDED),因此這就須要咱們在同步前初始化數據,初始化完後再同步,這樣大大下降錯誤率。同步數據的方式能夠經過DBLINK、EXP/IMP、SQLLDR或者表空間遷移等方式同步。

4、啓動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

5、同步測試

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

一、源端進行數據插入操做

[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

二、源端查看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.

三、目標端查看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.

四、目標端數據查詢

[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
相關文章
相關標籤/搜索