真實環境的OracleGoldenGate配置引數詳解 -- 生產端

silencelion99發表於2015-10-24
很多剛開始學習OGG的同學在學會基本配置後,想要進一步提高的階段必不可少的要跟各種配置引數打交道。比如管理程式的引數、抽取程式的引數、投遞程式的引數和複製程式的引數。這些引數檔案中樣式繁多的引數都是什麼作用,怎樣使用,真正的企業應用會怎樣配置一定是初學者渴望瞭解的。

本文分為兩篇,第一篇介紹生產端的管理程式配置引數、抽取程式配置引數、投遞程式配置引數;第二篇介紹災備端管理程式配置引數和複製程式配置引數。

本文來自一個真實的企業應用,生產端和災備端位於不同的城市。讓我們走出實驗室看看真實的生產環境的OGG配置吧。


OGG的版本為:11.2.1.0.4

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.4 14636914 OGGCORE_11.2.1.0.4_PLATFORMS_121007.2020
HP/UX, IA64, 64bit (optimized), Oracle 10g on Oct  8 2012 02:26:37

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


啟動的程式
GGSCI> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DPEYA       00:00:00      00:00:02
EXTRACT     RUNNING     EXTYA       00:00:02      00:00:05

EXTYA為抽取程式,DPEYA為投遞程式


管理程式配置
GGSCI> view params mgr

PORT 7839
DYNAMICPORTLIST  7840-7914
--AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
PORT 7839
通訊埠7839。 生產端和災備端需要保持一致。

DYNAMICPORTLIST  7840-7914
動態埠列表的範圍從7840到7914。當制定埠被佔用或者出現通訊故障,管理程式將會從列表中選擇下一個埠嘗試連線,避免通訊埠的單點故障。

--AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7
當提取程式中斷後嘗試自動重啟,每隔7分鐘嘗試啟動一次,嘗試5次。OGG運維人員通常會註釋掉這條配置,更喜歡用手工重啟的方式來控制。

PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10
定期清理dirdat路徑下的本地佇列(local trail)。保留期限10天,過期後自動刪除。從而控制佇列檔案的目錄不會增長過大。

LAGREPORTHOURS 1
每隔一小時檢查一次傳輸延遲情況

LAGINFOMINUTES 30
傳輸延時超過30分鐘將寫入錯誤日誌

LAGCRITICALMINUTES 45
傳輸延時超過45分鐘將寫入警告日誌

通常在一些海量資料的分割槽表中容易出現傳輸延時的現象。建議在災備端啟動多個複製程式(replicat),為這些大表單獨的開啟專用通道。


抽取程式配置
GGSCI 3> view params extya

EXTRACT extya
SETENV (NLS_LANG="AMERICAN_AMERICA.UTF8")
USERID goldengate, PASSWORD AACAAAAAAAAAAAJAPJYATHVIMGMAOFHIUCUEPFYGGJBFJGIH, ENCRYPTKEY default
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE ./dirrpt/extya.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
WARNLONGTRANS 2h, CHECKINTERVAL 3m
EXTTRAIL ./dirdat/ya
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
--CACHEMGR CACHESIZE 8000MB, CACHEDIRECTORY  /goldengate/temp, CACHEDIRECTORY /goldengate/temp2
TRANLOGOPTIONS  CONVERTUCS2CLOBS
--tranlogoptions asmuser sys@asm, asmpassword  AACAAAAAAAAAAGAIF, ENCRYPTKEY default
TRANLOGOPTIONS altarchivelogdest primary instance sgpmdb1 /sgpmdb/arch altarchivelogdest  instance  sgpmdb2 /sgpmdb/arch
THREADOPTIONS   MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000

—Schema名稱涉及敏感字元,在此統一使用Schema來代替
—table名稱涉及敏感字元,在此統一使用table來代替
mapexclude Schema1.table1;
mapexclude Schema1.table2;
mapexclude Schema2.table1;
mapexclude Schema2.table1;

TABLE Schema1.*;
TABLE Schema2.*;
TABLE Schema3.*;
TABLE Schema4.*;
TABLE Schema5.*;

sequence Schema1.*;
sequence Schema2.*;
sequence Schema3.*;
sequence Schema4.*;
sequence Schema5.*;

SETENV (NLS_LANG="AMERICAN_AMERICA.UTF8")
設定字符集環境變數為UTF8
如果系統中存在多個資料庫有時候會用引數SETENV設定ORACLE_HOME、ORACLE_SID等,例如:
SETENV (ORACLE_HOME = “/home/oracle/product/10.2.0/db)
SETENV (ORACLE_SID = “PROD”)

REPORTCOUNT EVERY 30 MINUTES, RATE
每隔30分鐘報告一次從程式開始到現在的抽取程式或者複製程式的事物記錄數,並彙報程式的統計資訊

DISCARDFILE ./dirrpt/extya.dsc, APPEND, MEGABYTES 1024
將執行失敗的記錄儲存在discard file中,該檔案位於./dirrpt/extya.dsc,大小為1024MB。 檔案中已經包含記錄的話,再後面繼續追加,不刪除之前的記錄。 

DISCARDROLLOVER AT 3:00
為了防止discard file被寫滿,每天3:00做一次檔案過期設定

WARNLONGTRANS 2h, CHECKINTERVAL 3m
每隔3分鐘檢查一下大事務,超過2小時還沒結束的進行報告

EXTTRAIL ./dirdat/ya
佇列檔案路徑

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

DBOPTIONS  ALLOWUNUSEDCOLUMN
當抽取程式遇到一個沒有使用的欄位時只生成一個警告,程式會繼續執行而不會被異常終止(abend)

FETCHOPTIONS NOUSESNAPSHOT
不會從閃回日誌中獲取資料

FETCHOPTIONS FETCHPKUPDATECOLS
當使用了HANDLECOLLISIONS時,請使用該引數。
複製程式出現丟失update記錄(missing update)並且更新的是主鍵,update將轉換成insert。由於插入的記錄可能不是完整的行,若要保證完整需要加入此引數

--CACHEMGR CACHESIZE 8000MB, CACHEDIRECTORY  /goldengate/temp, CACHEDIRECTORY /goldengate/temp2
在/goldengate/temp,/goldengate/temp2 目錄設定虛擬記憶體

TRANLOGOPTIONS  CONVERTUCS2CLOBS
指定在解析資料庫日誌時所需要的特殊引數
本引數只用在extract端 UTF字元型別,並且11.1.1前處理CLOB才需要。

TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch altarchivelogdest  instance  rac2 /arch
指定RAC環境下每個節點的歸檔日誌地址

THREADOPTIONS   MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000
RAC叢集中的所有節點必須同步系統時鐘。GoldenGate透過比較本地系統的時間和事務提交的時間點來做出關鍵決策。可以透過NTP來不同系統時間。所有節點上的COMPATIBLE引數設定也必須相同。
這個引數在Oracle11.2版本後就不在使用了。


投遞程式配置
GGSCI 6> view params dpeya

EXTRACT dpeya
RMTHOST 10.10.10.1, MGRPORT 7839, COMPRESS
PASSTHRU
NUMFILES 5000
RMTTRAIL ./dirdat/yb
DYNAMICRESOLUTION

—要複製的表清單
TABLE Schema1.*;
TABLE Schema2.*;
TABLE Schema3.*;
TABLE Schema4.*;
TABLE Schema5.*;

RMTHOST 10.10.10.1, MGRPORT 7839, COMPRESS
災備端主機IP,管理程式埠號,投遞前壓縮佇列檔案

NUMFILES 5000
最多處理5000張表

RMTTRAIL ./dirdat/yb
災備端儲存佇列檔案的目錄

PASSTHRU
採用pass-through模式處理表

DYNAMICRESOLUTION
動態解析表名


關於引數的定義我們可以查閱OGG的官方文件《Oracle GoldenGate Windows and UNIX Reference Guide》,該文件詳盡的描述了各個引數的概念和用法。

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

相關文章