Postgresql
Postgres 同步備份 - 存檔是什麼?
我正在設置一個 Postgres 9.1 主伺服器和一個熱備用伺服器。我閱讀了文件,但我不太確定我應該如何處理我的 WAL 文件。
每次送出都在返回應用程序之前在兩台伺服器上完成,因此將 WAL 歸檔到一些第三系統接縫上是無用的。但是想像一下我的熱備份伺服器失敗了,那麼我將不得不手動重新配置主實例而不使用任何備用伺服器。僅在那時啟動 WAL 存檔是否明智?
我想不會,因為新創建的 WAL 對任何新設置的熱備份都沒有用。我是否應該始終讓 WAL 存檔處於活動狀態,並且不時對正在執行的系統進行完整的快照備份,然後通過時間戳手動刪除舊的存檔 WAL?那麼如果目前的熱備實例出現故障,我可以快速建立一個新的熱備實例嗎?還是讓一個新的熱備用伺服器趕上每個 TCP 連接更好,因為它對數據庫進行一些高吞吐量的批量傳輸,並且僅在它幾乎是最新的時才切換到重放流 WAL?這會很棒,因為這樣我就不必關心 WAL 歸檔了?
如果寫入數據庫在幾個小時內不起作用,我不在乎,只有讀取必須是高可用的。
**編輯:**我也對新的熱備用如何趕上主數據庫的一些細節感興趣。是否所有事情都在事務中完成,或者是否涉及一些高速 TCP 追趕,這類似於(在執行時復雜性方面)僅複製磁碟。
Wal 存檔可用於備份目的。例如-您每天都進行完整備份,並保留自上次備份以來的 wal 段,因此,您始終可以將數據庫恢復到白天的任何狀態(例如-就在有人執行之前:drop table users cascade; )。