Goldengate參數規範
1. 文檔綜述
1.1. 文檔說明
本文檔規定了在實施Goldengate時,各個進程需要配置的參數.
該參數模板適合於Goldengate11.2.1.0版本;
**註:本文檔為Goldengate實施規範系列文檔內容之一。在Goldengate的實施過程中,需要嚴格遵循系列實施規範。
**註:無主鍵,大事務,這些都是OGG支持有問題的,需要進行應用調整,否則即使按照規範執行,某些情況下也會出現問題。
**註:本文檔不涉及任何調優參數,如需使用性能調優參數需咨詢oracle後謹慎使用。
**註:前提復制範圍已確定,DML復制的對象都需要在DDL復制範圍內。
1.2. 讀者範圍
本文檔主要供容災相關人員、納入數據級容災範圍的應用系統相關人員使用,在Goldengate實施、運維的整個生命周期中,必須嚴格遵循本系列文檔。
1.3. 術語說明
序號 |
完整說法 |
縮略說法 |
1 |
GoldenGate |
GG或OGG |
|
|
|
|
|
|
|
|
|
|
|
|
1.4. 輸入輸出
1.4.1. 輸入條件
N/A
1.4.2. 文檔產出
N/A
2. Goldengate進程參數模板
參數文件中的參數分為三類:
- 必選參數:進程必須配置的參數;
- 可選參數:可以根據應用的實際情況選擇使用的參數,例如性能調優參數;
- 特定參數:特定環境或者特定平臺使用的參數;
- 非選參數:該類參數不能進行配置
- DDL配置參數(在實施DDL復制時需要配置的參數,在參數模板文件中一律標紅
Global參數源端默認為 schema goldengate
目標端默認為 CHECKPOINTTABLE goldengate.ggschkpt 即可
註:請遵照本參數模板的參數順序來進行配置;
2.1. 管理進程MGR參數配置
範例: --配置普通基本參數區域 PORT 7809 DYNAMICPORTLIST7840-7914 AUTOSTART ER * STARTUPVALIDATIONDELAY 5 AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3 --配置DDL參數區域 PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10,FREQUENCYMINUTES 30 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 配置一般日誌信息區域 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45
PORT 7839 --必選參數 DYNAMICPORTLIST 7840-7914 --必選參數 --配置建議:一個傳輸進程(datapump)一般需要預留5個端口,其他監控端口另行考慮; 這些端口用於與goldengate的復制進程,collector進程,ggsci命令進行通信。 AUTOSTART ER * --非選參數 --此參數用於啟動mgr進程時,自動啟動下邊的其它資源組。 AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3 --此參數表示extract進程由於網絡中斷或者其它原因停止時,goldengate會自動嘗試啟動5次,直到成功,每次自動啟動間隔為3分鐘。 STARTUPVALIDATIONDELAY 5 –-配合autostart ER *使用,表示啟動每組資源是延時5S,建議穩定時候開啟 --可選參數 --配置建議:在系統運行穩定時,打開該參數; PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3 --必選參數 --配置建議:根據隊列空間大小適當進行調整,建議>=3天; --purgeoldextracts參數用於定期刪除維護不用的trail文件。此次含義為用checkpoints,刪除超過3天且已經應用--完的trail文件。
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10,FREQUENCYMINUTES 30 --DDL 配置時需要的參數,此參數用於維護GGS_DDL_HIST表,默認清除1小時沒有變更過的記錄。此處為GGS_DDL_HIST表記錄保存7-10天內沒有變更過的記錄。 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 --DDL配置時需要的參數,用於維護GGS_MARKER的記錄數。默認為超過1小時的記錄沒有變更即刪除。此處的參數含義為7-10天內的記錄沒有變更,就刪除該記錄,每30分鐘檢查並執行一次。 LAGREPORTHOURS 1 --必選參數 --配置建議:統一設定為1個小時; --表示mgr進程每隔一小時檢查各進程延時情況,並記錄到goldengate report文件。 LAGINFOMINUTES 30 --必選參數 --配置建議:統一設定為30分鐘; --表示進程復制延時超過30分鐘,goldengate即向日誌文件記錄一條info級別的延時信息。 . LAGCRITICALMINUTES 45 --必選參數 --配置建議:統一設定為45分鐘; 表示進程復制延時超過45分鐘,goldengate即向日誌文件記錄一條critical級別的延時信息。 |
2.2. 抽取進程EXTRACT參數配置
範例: --基礎參數區域 EXTRACT extya SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK") USERID goldengate, PASSWORD AACAAAAAAAAAAGAIF, ENCRYPTKEY default REPORTCOUNT EVERY 30 MINUTES, RATE DISCARDFILE ./dirrpt/exta.dsc, APPEND, MEGABYTES 256 DISCARDROLLOVER AT 3:00 WARNLONGTRANS 2h, CHECKINTERVAL 3m EXTTRAIL ./dirdata/ya, MEGABYTES 256 DYNAMICRESOLUTION DBOPTIONSALLOWUNUSEDCOLUMN FETCHOPTIONS NOUSESNAPSHOT TRANLOGOPTIONSCONVERTUCS2CLOBS tranlogoptions asmuser [email protected], asmpassword AACAAAAAAAAAAGAIF, ENCRYPTKEY default TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch1 altarchivelogdest instancerac2 /arch2 THREADOPTIONSMAXCOMMITPROPAGATIONDELAY 60000 THREADOPTIONSIOLATENCY 1000 --DDL參數區域,所有復制對象,屏蔽對象在源端體現。 DDL & INCLUDE MAPPED OBJTYPE ‘TABLE‘ & INCLUDE MAPPED OBJTYPE ‘INDEX‘ & INCLUDE MAPPED OBJTYPE ‘SEQUENCE‘ & INCLUDE MAPPED OBJTYPE ‘VIEW‘ & INCLUDE MAPPED OBJTYPE ‘PROCEDURE‘ & INCLUDE MAPPED OBJTYPE ‘FUNCTION‘ & INCLUDE MAPPED OBJTYPE ‘PACKAGE‘ & EXCLUDE OPTYPE COMMENT DDLOPTIONS addtrandata REPORT --對象範圍區域,總的原則為盡量將處在同一事物與業務,即相關聯的對象放到同一進程,具體依據前期收集到的信息進--行歸類。 TABLE SCHEMA.*; Sequence schema.*; -------------------------------------------- EXTRACT extxx --必選參數 setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) --必選參數 --配置建議:需要根據數據庫的字符集進行設置; --用於設置goldengate的字符集變量信息,此處值會覆蓋操作系統級別的變量。該值需要和數據庫字符集匹配一致。 USERID ggs, PASSWORD AACAAAAAAAAAAGAIF, ENCRYPTKEY default --必選參數 --配置建議:要求使用密文參數,添加需要的配置參數; --加密步驟:參考附錄3.1; tranlogoptions asmuser [email protected], asmpassword AACAAAAAAAAAAGAIF, ENCRYPTKEY default --TRANLOGOPTIONS DBLOGREADER --特定參數 --配置建議:在ASM情況下使用,要求使用密文參數,添加需要的配置參數; --加密步驟:參考附錄3.1; --其他說明:需要註意配置ASM監聽,關註listener.ora和tnsnames.ora配置文件。 --對於數據庫版本等於或高於10.2.0.5,建議使用TRANLOGOPTIONS DBLOGREADER替代tnsnames連接方式 GETTRUNCATES --可選參數(復制truncate操作) --配置建議:在僅進行DML復制時,該參數需要打開;如果DDL和DML的復制同時打開,該參數必須關閉; --默認不復制truncate操作。 DDL & INCLUDE MAPPED OBJTYPE ‘TABLE‘ & INCLUDE MAPPED OBJTYPE ‘INDEX‘ & INCLUDE MAPPED OBJTYPE ‘SEQUENCE‘ & INCLUDE MAPPED OBJTYPE ‘VIEW‘ & INCLUDE MAPPED OBJTYPE ‘PROCEDURE‘ & INCLUDE MAPPED OBJTYPE ‘FUNCTION‘ & INCLUDE MAPPED OBJTYPE ‘PACKAGE‘ & EXCLUDE OPTYPE COMMENT DDLOPTIONS addtrandata REPORT --匹配table/index/sequence/view/procedure/function/package對象進行DDL復制 此處參數為按對象類型進行匹配復制,還可以配合schema,操作類型進行匹配。需要oracle與應用確認範圍後敲定。
REPORTCOUNT EVERY 25 MINUTES, RATE --可選參數 --配置建議:如果需要優化,可以適當進行調整; --此參數每隔25分鐘,goldengate向日誌文件生成一條記錄(抽取進程自從啟動後處理的記錄數與計算處理速率的信息)。 DISCARDFILE ./dirrpt/extxx.dsc,APPEND,MEGABYTES 1024 --必選參數 --配置建議:該參數的路徑必須為相對路徑,該參數的值設置為1024M --discard文件用於記錄goldengate不能處理的記錄信息。該文件可以采用purge(刪除覆蓋)與append(追加)方式。 --此處參數設置了discard文件的路徑與文件名./dirrpt/extxx,采用追加方式保存,文件大小最大為1024M。當文件大小超過1024M時,抽取進程就會abend,一般配合DISCARDROLLOVER使用,這樣保證不會由於超過文件大小導致進程abend。 THREADOPTIONSMAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000 --特定參數,在rac環境下需要配置,非Rac的生產環境不需要配置; --配置建議:設置為60000,最大可以設置為90000; --主要用於解決RAC兩個節點時間有偏差造成transaction不準確。
AIXTHREAD_SCOPE=S export AIXTHREAD_SCOPE --對於aix系統建議在環境變量引入該變量,可以使goldengate使用多cpu,提高性能。 DBOPTIONS ALLOWUNUSEDCOLUMN --必選參數; --配置建議:在生產端庫表中存在unused列時,需要配置該參數; --用於阻止抽取進程抽取數據時由於表含有unused列而導致進程abend。即使使用該參數,抽取進程抽取到unused列時也會向日誌文件記錄一條警告信息。 WARNLONGTRANS 2h,CHECKINTERVAL 3m --必選參數 --配置建議:要求設置為2h,3m,如有特殊需要,可以調整;表示向日誌記錄超過2小時的長事務信息,每隔3分鐘檢查一次。 EXTTRAIL ./dirdat/xx --必選參數 --配置建議:要求使用相對路徑,遵循命名規範; --用於指定trail文件存放路徑。 TRANLOGOPTIONS EXCLUDEUSER USERNAME --可選參數 --配置建議:可以使用來排除大事務用戶 --排除不需要的用戶的數據復制。主要用於雙活拓撲結構的系統時,用來排除goldengate用戶的數據。避免形成環路。 FETCHOPTIONS NOUSESNAPSHOT --必選參數 --配置建議:要求必須設置該參數 --默認值為 usesnapshot,表示利用數據庫閃回讀取數據。Nousesnapshot表示直接從原表讀取相關數據。 所有需要添加的fetchoption參數需要oracle確認 TRANLOGOPTIONS CONVERTUCS2CLOBS --必選參數 --對CLOB字段進行處理 --此參數官方文檔沒有,需要oracle確認。 TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch1 altarchivelogdest instancerac2 /arch2 --特定參數 --配置建議:rac使用,解決歸檔路徑不一致的問題;可以在一個實例上面配置多個歸檔路徑; --需要保證goldengate能同時讀到各節點的歸檔,一般采用NFS掛載rac另外節點的歸檔。 TRANLOGOPTIONSRAWDEVICEOFFSET 0 --特定參數 --配置建議:僅限於AIX平臺下使用裸設備時使用,其它平臺或非裸設備均不需要 --需要在Aix操作系統中去查有沒有偏移量,如果有偏移量的話,該參數不需要進行設置,goldengate的默認就可以了; --如果沒有偏移量,則需要設置為0; --該參數官方文檔不存在,需要oracle確認 TABLE SCHEMA.*; --需要復制的對象列表,拆分需遵循拆分規範 |
2.3. 傳輸進程DATAPUMP參數配置
範例: --基礎參數區域 EXTRACT dpeya RMTHOST hostname, MGRPORT 7809, COMPRESS PASSTHRU NUMFILES 5000 RMTTRAIL ./dirdata/ya DYNAMICRESOLUTION --對象區域,盡量保證與抽取進程一致。 TABLE schema.*;
EXTRACT dpxx --必選參數 --表示進程名,需遵循設計規範。 PASSTHRU --必選參數 --表示傳輸進程直接跟抽取進程交互,而不再和數據庫進行交互,減少數據庫資源的利用。 RMTHOST *.*.*.*, MGRPORT 7839, compress, PARAMS –W 30 --必選參數 --配置建議:*.*.*.* 目標端的ip地址,7839為目標端的管理端口,要求配置compress壓縮參數,節省網絡帶寬,但會增加CPU開銷; 此參數用在HP NONSTOP系統上,建議刪除,需討論-- PARAMS –W 30 可以確保datadump進程宕掉以後,容災端的server在30秒後自動停掉;
RMTTRAIL ./dirdat/xx --必選參數 --配置建議:要求使用相對路徑,遵循命名規範;
TABLE SCHEMA.*; 復制範圍和抽取進程對應即可,對於拆分情況參照拆分設計文檔 |
2.4. 復制進程REPLICAT參數配置
範例: REPLICAT repya USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default SETENV (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK") REPORT AT 01:59 REPORTCOUNT EVERY 25 MINUTES, RATE REPORTROLLOVER AT 02:00 REPERROR DEFAULT, ABEND ALLOWNOOPUPDATES ASSUMETARGETDEFS DISCARDFILE ./dirrpt/ya.dsc, APPEND, MEGABYTES 256M DISCARDROLLOVER AT 02:00 ALLOWNOOPUPDATES --DDL參數區域 需要屏蔽的操作類型在此區域屏蔽 DDL include mapped ddloptions report --DDL 錯誤過濾 DDLERROR <error1> IGNORE --復制對象區域,盡量與dpe進程保持一致。 MAP schema.*, TARGETschema.*;
REPLICAT repxx --必選參數 --設置復制進程名字,需遵循命名規範 setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) --必選參數 --配置建議:需要根據數據庫源端的字符集進行設置; SQLEXEC "ALTER SESSION SET CONSTRAINTS=DEFERRED" --必選配置 --註:打開數據庫中的延遲約束的特性,避免復制進程因拆分造成插入相關的約束錯誤。
USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default --必選參數 --配置建議:要求使用密文參數,添加需要的配置參數; --加密步驟:參考附錄3.1;
DDL include mapped ddloptions report --以上標紅為開啟DDL復制時需要配置的參數; --復制所有匹配的DDL。 REPORT AT 01:59 --可選參數,定期生產進程相關的report文件。 --配置建議:該時間也根據需要進行修改 --每天01:59定期生成一個report文件 REPORTCOUNT EVERY 30 MINUTES, RATE --可選參數 --配置建議:可以根據需要進行調整; --此參數每隔30分鐘,goldengate向日誌文件生成一條記錄(抽取進程自從啟動後處理的記錄數與計算處理速率的信息)。 REPERROR DEFAULT, ABEND --必選參數 --配置建議:使用abend參數; --goldengate遇錯的處理原則,即遇到不能處理的錯誤就自動abend,啟動需要人工幹預處理。 HANDLECOLLISIONS --非選參數 --配置建議:用於goldengate自動過濾不能出來的沖突記錄,為了嚴格保證數據一致性,該參數不允許打開,如需打開,請聯系Oracle Support;
assumetargetdefs --必選參數 --表示源庫與目標庫表結構一致。 DISCARDFILE ./dirrpt/repya1.dsc, APPEND, MEGABYTES 1024 --必選參數 --配置建議:該參數的路徑必須為相對路徑,建議該參數的值設置為1024M; --discard文件用於記錄goldengate不能處理的記錄信息。該文件可以采用purge(刪除覆蓋)與append(追加)方式。 DISCARDROLLOVER AT 02:30 --可選參數 --配置建議:該參數統一設定為02:30,根據情況也可以進行調整; --表示discard文件每天02:30定期輪轉。
GETTRUNCATES --可選參數 --配置建議:在僅進行DML復制時,該參數需要打開;如果DDL和DML的復制同時打開,該數據必須關閉; --默認不復制truncate操作。 ALLOWNOOPUPDATES --必選參數,默認值為NOALLOWNOOPUPDATES --註:當源表有排除列情況或者有目標表不存在的列時,當更新這列goldengate默認報錯。應用該參數後,即可讓goldengate生成一條警告信息而不是報錯。
MAP SCHEMA.*; 對應需要復制的對象,默認一一對應傳輸進程,當有拆分時參考拆分規範。 |
3. 附錄
3.1. 明文密碼加密步驟
在參數文件的Login設置中,密碼信息需要使用密文,加密步驟如下:
(一) 獲取密碼經過GG默認算法加密的密文
GGSCI>ENCRYPT PASSWORD ny14072 BLOWFISH ENCRYPTKEY DEFAULT
--其中,xxxxxxx為OGG用戶實際的明文密碼
Using default key...
Encrypted password:AACAAAAAAAAAAAHANGWARBMCFHHDCFMF
Algorithm used: BLOWFISH --得到加密後的密文
(二) 修改Extract參數文件:
USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default
4.GoldenGate參數文檔
Windows and UNIX Reference Guide 11g Release 2 Patch Set 1 (11.2.1.0.1)
Goldengate參數規範