Postgresql

Postgresql - 增加 WAL 保留,以避免從站與主站不同步

  • December 14, 2021

我設置了一個主/從Postgresql *(13.4)*組,1個主和1個從,使用WAL熱備用。(參考:https ://postgresql.org/docs/current/warm-standby.html#STANDBY-SERVER-SETUP )

從站不同步,並且由於主站上不再存在 WAL 而無法恢復,有關詳細資訊,請參閱另一個問題:Postgresql - 在與使用 WAL 的主站不同步後恢復從站

現在,我正在重新做奴隸。master上有3.7T數據,而且增長很快,大概每天30Gb ?

為了避免從站再次不同步,我正在嘗試增加 WAL 保留。

這是我打算做的事情:

  • max_wal_size = 20Gb
  • min_wal_size = 10GB

問題:

  • A-1。上述參數值是否正確?
  • A-2。增加這些參數是否有不好的副作用?
  • A-3。我只需要將這 2 個參數應用到 master 上,對嗎?
  • 。我應該配置更多參數嗎?
  • C. _ 有沒有更好的方法來避免從站不同步?

謝謝你。

不,這根本沒有幫助。

您有三個備選方案:

  • 增加到wal_keep_size足夠大的值

這是一個簡單但粗略的解決方案,因為它使主節點始終保留一定數量的 WAL,無論它是太多還是不夠(因為停機時間比預期的要長)。

  • 設置一個restore_commandon the,這樣它就可以使用 WAL 歸檔來趕上

如果您有 WAL 存檔,這可能是最佳選擇。

  • 使用物理複製槽

這樣的對象標記了 WAL 流中的某個位置,並防止主伺服器丟棄備用伺服器仍需要的 WAL。雖然這是一個優雅的解決方案,但如果備用伺服器停機時間過長,這將承擔破壞主伺服器的風險。因此,在這種情況下監控複製和/或設置max_slot_wal_keep_size對保留在主節點上的 WAL 數量設置上限是一個好主意。

引用自:https://dba.stackexchange.com/questions/303868