Postgresql
在 PostgreSQL 伺服器上恢復伺服器複製
我有一台主伺服器,另外兩台伺服器正在從主伺服器複製。
我在主伺服器上獲得了完整的磁碟空間(我有一個
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_command
為true
、重新載入並將存檔再次更改回原始文件?我試圖避免重新啟動伺服器本身。
似乎歸檔在空間用完之前設法部分寫入了 WAL 歸檔文件。
然後
test
你archive_command
會注意到已經有一個同名的 fike 並且會失敗。在這種情況下,解決方案是手動刪除部分歸檔的 WAL 段,以便下一次歸檔它的嘗試可以成功。
如果失敗,您可能希望
archive_command
通過刪除文件來改進您的文件cp
(同時仍返回非零返回碼)。