Postgresql

在熱備用伺服器上執行 pg_dump?

  • September 8, 2021

免責聲明:我承認我還沒有嘗試過,但我不確定我是否會知道它是否工作不正常,所以我想問一下。

我想pg_dumpall從執行流複製的熱備用伺服器執行每晚備份作業(通過),以避免將負載放在主伺服器上。我只看到提到人們遇到的一些問題,例如這里這裡,但很少有指導。如果備份稍微落後於主數據庫,這沒關係,只要它是一致的(它應該是)。

我的問題是:

  1. 我真的要這樣做,還是應該在主伺服器上進行備份?為什麼?
  2. 在備用設備上進行轉儲時,我需要哪些設置以及我應該使用哪些程序來正確執行此操作?例如,我必須在備份期間停止複制嗎?

AFAIK,pg_dump在熱備用上執行是備用的主要用途之一。它是完全安全的,儘管它不是完全可靠的——如果備用數據庫落後於主數據庫太遠而中止事務,則轉儲可能會失敗。

您真正需要注意的唯一一件事是確保待機是最新的並且跟上。如果備用數據庫失去了與主數據庫的連接並且落後太遠,那麼您不會想要愉快地備份一個三週過時的備用數據庫。

在備份期間,您需要讓備用伺服器遠遠落後於主伺服器,否則它必須取消您的pg_dump事務才能繼續重播 WAL。請參閱有關熱備的文件,尤其是“處理查詢衝突”部分以及max_standby_archive_delaymax_standby_streaming_delay參數。

請注意,master 必須願意保留足夠的 WAL 檔案以允許 slave 再次趕上。

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