1.Goldengate的起停 啟動goldengate a> 啟動goldengate時最好先從target節(jié)點開始,然后是source節(jié)點.否則data pump進程可能會由于沒有收到target端的響應而異常退出。 b> manager進程是其他進程的管理程序,需要先啟動。如果manager配置參數中設置了AUTOSTART參數,則可由manager進程自動啟動其他進程。 例如: log in target server: cd <$GG_HOME> ggsci GGSCI> start mgr GGSCI> start <replicat> log in source server: cd <$GG_HOME> ggsci GGSCI> start mgr GGSCI> start <extract> GGSCI> start <pump> 關閉goldengate a> 關閉goldengate時最好先從source節(jié)點開始,然后是target節(jié)點.否則data pump進程可能會由于沒有收到target端的響應而異常退出。 b> manager進程通常最后關閉,并且manager進程沒有自動關閉其他進程的選項. 例如: log in source server: cd <$GG_HOME> ggsci GGSCI> stop <pump> GGSCI> stop <extract> GGSCI> stop manager log in target server: cd <$GG_HOME> ggsci GGSCI> stop <replicat> GGSCI> stop manager 2.監(jiān)控goldengate復制延遲 goldengate分為多個組件(extract,lag,replicat),所以在說延遲的時候也應該具體到是說哪個組件.作為一個復制解決方案來說,我們通常關心復制延遲,也就是消息在source數據庫的生成,到被apply到target數據庫的這段時間. a> GGSCI的lag命令可以查詢復制延遲, 如: GGSCI> lag <replicat> b> 實際應用中,我們通常采用heartbeat表的方式來監(jiān)控復制延遲,其優(yōu)點是不僅可以監(jiān)控適時復制延遲,還可以監(jiān)控歷史延遲情況. 該機制的缺點是當goldengate本身發(fā)生異常停止了,heartbeat數據也不能更新,則表中的延遲數據不能反映真實的延遲情況. 規(guī)避該問題的方式是用當前系統(tǒng)時間減去heartbeat表中的源消息生成時間,則可以更準確的反映此時的真實延遲. 但若heartbeat job出現異常停止更新heartbeat表,則heartbeat表中的源消息生成時間也不再及時,計算得來的延遲數據也不準確,所以采用heartbeat監(jiān)控延遲還要注意對heartbeat表本身的監(jiān)控. 3.監(jiān)控goldengate復制錯誤 默認情況下,當goldengate遇到復制錯誤時,goldengate是會異常終止的,處于abended狀態(tài).但在實際使用中,通常會修改這種默認設置,以讓goldengate在遇到復制錯誤后能繼續(xù)工作,避免造成過大的復制延遲. 這種情況下一般會將錯誤信息寫到discard文件中.要監(jiān)控discard文件中有多少錯誤,可使用以下命令: GGSCI> STATS <replicat> latest,totalsonly *.* *** Latest statistics since 2013-08-14 07:17:33 *** Total inserts 18840062.00 Total updates 26221878.00 Total deletes 6471532.00 Total discards 0.00 Total operations 51533472.00 這里的Total discards統(tǒng)計值就是出錯的消息數.錯誤的詳細信息記錄在discard文件中,當然,也可能存在于某個表中,取決于你的goldengate配置中對錯誤信息的處理機制. 當我們對錯誤信息作了處理后,比如手工fix了這些問題,我們就不希望上述檢查命令再重復報告這些錯誤記錄,這時可以運行以下命令來重置goldengate對錯誤信息的統(tǒng)計: GGSCI> STATS <replicat> latest,reset,totalsonly *.* 4.監(jiān)控goldengate消息處理量 a> 監(jiān)控goldengate自啟動以來總的消息處理量,可用以下命令: GGSCI> STATS <replicat>,totalsonly *.* 這里查的是replicat進程,同樣,也可以查詢extract和pump進程 b> 按表來統(tǒng)計消息處理量,使用以下命令: GGSCI> STATS <replicat> 或者制定某個表作統(tǒng)計: GGSCI> STATS <replicat>,table <schema>.<table> c> 實際使用中,我們通常關心一定時間單位內的處理能力,比如每秒處理多少消息。這時我們可以借助heartbeat表的統(tǒng)計信息來監(jiān)控,heartbeat表中的RDMLDELTASTATS列記錄了總的DML數,除以時間就可以得到goldengate處理能力統(tǒng)計數據。 d> 除了以上方法之外,還可以設置REPORTCOUNT參數來讓goldengate每隔一定時間將處理的消息統(tǒng)計寫入goldengate report文件中,比如: ReportCount Every 30 Minutes, Rate 5.goldengate的事務處理命令 對于常用的復制解決方案,無論是高級復制,stream還是goldengate,大事務或者長事務都是影響復制性能的重要因素之一。goldengate中有一些事務操作命令,可以幫助我們更好的監(jiān)控或者人工干預這些大/長事務。 a> 查看extract進程當前打開的事務: GGSCI> send <extract>,showtrans b> 當我們意識到某個事務可能存在問題,我們可能希望看看該事務中的具體信息,可采用以下命令: GGSCI> send extract <extract name>,showtrans <XID> file <file_name> detail 上述命令會將事務的詳細信息寫到文件中。 c> 當我們看到某個事務運行了很長時間,同時認為該事務可以提交或直接忽略時,可使用以下命令: GGSCI> send extract <extract name>,skiptrans <xid> --跳過某個事務 GGSCI> send extract <extract name>,forcetrans <xid> --強制提交某個事務
|
|