真實環境的OracleGoldenGate配置引數詳解 -- 生產端
很多剛開始學習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.
啟動的程式
EXTYA為抽取程式,DPEYA為投遞程式
管理程式配置
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),為這些大表單獨的開啟專用通道。
抽取程式配置
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版本後就不在使用了。
投遞程式配置
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》,該文件詳盡的描述了各個引數的概念和用法。
本文分為兩篇,第一篇介紹生產端的管理程式配置引數、抽取程式配置引數、投遞程式配置引數;第二篇介紹災備端管理程式配置引數和複製程式配置引數。
本文來自一個真實的企業應用,生產端和災備端位於不同的城市。讓我們走出實驗室看看真實的生產環境的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 |
通訊埠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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 真實環境的OracleGoldenGate配置引數詳解 -- 災備端OracleGo
- JDK1.8 JVM生產環境引數配置JDKJVM
- Yarn生產環境核心引數Yarn
- NGINX生產環境反向代理到後端tomcat配置Nginx後端Tomcat
- Webpack(開發、生產環境配置)Web
- 實戰生產環境vCenter HA配置(VCSA6.5)
- Yarn 生產環境多佇列配置Yarn佇列
- kafka生產者Producer引數設定及引數調優建議-kafka 商業環境實戰Kafka
- TorchServe 詳解:5 步將模型部署到生產環境模型
- ionic app 開發和生產環境的配置APP
- MySQL Xtrabackup真實生產環境搭建主從複製全過程MySql
- 《Kafka實戰》之生產者API使用(引數解釋超詳細)KafkaAPI
- 容器化環境中,JVM最佳引數配置實踐JVM
- 環境變數詳解變數
- Nuxt.js中配置生產環境和開發環境APIUXJS開發環境API
- DataGuard引數配置詳解
- struts配置引數詳解
- Elasticsearch叢集搭建教程及生產環境配置Elasticsearch
- 使用 Webpack 進行生產環境配置(附 Demo)Web
- Vue 移動端專案生產環境的優化Vue優化
- Windows下Java環境變數的配置(詳)WindowsJava變數
- kafka生產環境規劃-kafka 商業環境實戰Kafka
- 蘋果iPhone X引數詳解與真機圖賞 iPhone X引數配置怎麼樣蘋果iPhone
- redmine生產環境搭建
- Django生產環境搭建Django
- Spring(環境搭建&配置詳解)Spring
- Mysql配置引數詳解(一)MySql
- Prometheus hashmod 配置引數詳解Prometheus
- oracle RMAN引數配置詳解Oracle
- 操作生產環境的規範
- MyHeritage是如何實現釋出到生產環境的
- Webpack4 學習筆記八 開發環境和生產環境配置Web筆記開發環境
- .NET Core 環境變數詳解變數
- VS2010遠端除錯環境配置詳解除錯
- Windows下配置NodeJS環境詳解WindowsNodeJS
- Hyperledger Fabric 通道配置檔案和容器環境變數詳解變數
- Nginx 配置檔案引數詳解Nginx
- redis配置檔案引數詳解Redis