自動歸檔discard文件

1.背景

GoldenGate重要的日誌文件有2個:ggserr.log和discard文件。

  1. ggserr.log記錄重要的日誌,如進程啓停、進程失敗abend及響應ggsci命令的響應輸出。
  2. discard文件,是丟棄文件,在備機端,同步環境沒有問題的前提下,在執行具體某個sql時失敗,會把執行失敗的sql放入到discard文件。

由此看出,discard文件很重要,是運維發現哪些表主從不一致的重要線索。

2.當前環境的問題

當前設置如下:

discardfile ./dirrpt/rept01.dsc , purge,megabytes 100

會出現2個問題:

  1. discard文件太小:只有200M,持續運行N天后,會滿。
  2. discard文件會被覆蓋:尤其重啓replicat進程後,文件會被清空。

3.解決方法

修改控制參數,相關參數包括:

3.1.追加還是清空

指定discard文件名時一起設定爲append追加。並調整最大大小。

Syntax DISCARDFILE <file name> 
	[, APPEND | PURGE] 
	[, MAXBYTES <n> | MEGABYTES <n>]

同時,如果文件大小超限後,進程就會退出,顧大小盡量設大。
To set an upper limit for the size of the file, use either the MAXBYTESor MEGABYTESoption. If the specified size is exceeded, the process will abend.

3.2. 定期歸檔

使用參數:discardrollover
本參數指定個時點,當到達時點時,自動歸檔discard文件。歸檔文件的格式是,<group name><n>.<extension>。

3.3.修改後

discardfile ./dirrpt/rept01.dsc , append,megabytes 2048
discardrollover at 05:30

經過觀察,

  1. 確實在每天的05:30,自動創建個新的discard文件。
  2. 最新的歸檔總是從0號開始。假設現在已有2個歸檔文件,rept010.dsc\rept011.dsc;新歸檔後,已有的更名爲rept010.dsc->rept011.dsc,rept011.dsc->rept012.dsc,新的歸檔文件名爲rept010.dec。
  3. 發現一個問題,雖然新生成了文件,但文件整個生命週期內,沒有任何數據。
    對比之前的內容,至少也該有類似trail文件切換的系想你;還有,中間有過4天數據不同步,肯定有無法更新、或刪除的記錄纔對。具體看handlecollisions參數介紹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章