Postgresql

在 PostgreSQL 伺服器上恢復伺服器複製

  • June 4, 2019

我有一台主伺服器,另外兩台伺服器正在從主伺服器複製。

我在主伺服器上獲得了完整的磁碟空間(我有一個archive_command將 wal 檔案放入/wal_archive/目錄中)。

它已滿,PostgreSQL 日誌顯示錯誤:

archive command failed:

   2019-06-04 09:52:49.079 EEST [3365] LOG:  archive command failed with exit code 1
   2019-06-04 09:52:49.079 EEST [3365] DETAIL:  The failed archive command was: test ! -f /wal_archive/000000010000028C0000003B && cp pg_xlog/000000010000028C0000003B /wal_archive/000000010000028C0000003B

我用 清理了/wal_archive/目錄pg_archivecleanup,但 PostgreSQL 仍然拋出同樣的錯誤。

我試圖重新載入 PostgreSQL 配置而不更改配置本身並且不使用以下方法重新啟動:

/etc/init.d/postgresql reload

但還是一樣,在日誌中,PostgreSQL 會拋出一個錯誤。我應該如何恢復 wal_archive 複製到 wal_archive 目錄?

我是否應該更改archive_commandtrue、重新載入並將存檔再次更改回原始文件?

我試圖避免重新啟動伺服器本身。

似乎歸檔在空間用完之前設法部分寫入了 WAL 歸檔文件。

然後testarchive_command會注意到已經有一個同名的 fike 並且會失敗。

在這種情況下,解決方案是手動刪除部分歸檔的 WAL 段,以便下一次歸檔它的嘗試可以成功。

如果失敗,您可能希望archive_command通過刪除文件來改進您的文件cp(同時仍返回非零返回碼)。

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