pg_archivecleanup — 清理 PostgreSQL WAL 封存檔案
pg_archivecleanup
[選項
...] archivelocation
oldestkeptwalfile
pg_archivecleanup 設計用作 archive_cleanup_command
,在以備用伺服器執行時清理 WAL 檔案封存(請參閱第 26.2 節)。 pg_archivecleanup 也可以用作獨立程式來清理 WAL 檔案封存。
要設定備用伺服器以使用 pg_archivecleanup,請將其放入其 postgresql.conf
設定檔中
archive_cleanup_command = 'pg_archivecleanup archivelocation
%r'
其中 archivelocation
是應該從中移除 WAL 區段檔案的目錄。
在 archive_cleanup_command 中使用時,邏輯上位於 %r
引數值之前的所有 WAL 檔案將從 archivelocation
中移除。 這可以最大限度地減少需要保留的檔案數量,同時保留當機重新啟動功能。 如果 archivelocation
是此特定備用伺服器的暫時性暫存區域,則適合使用此參數,但如果 archivelocation
打算作為長期 WAL 封存區域,或多個備用伺服器從同一封存位置恢復,則不適合。
當用作獨立程式時,邏輯上位於 oldestkeptwalfile
之前的所有 WAL 檔案將從 archivelocation
中移除。 在此模式下,如果您指定 .partial
或 .backup
檔案名稱,則只會使用檔案字首作為 oldestkeptwalfile
。 這種處理 .backup
檔案名稱的方式允許您移除特定基本備份之前封存的所有 WAL 檔案而不會出錯。 例如,以下範例將移除比 WAL 檔案名稱 000000010000003700000010
更舊的所有檔案
pg_archivecleanup -d archive 000000010000003700000010.00000020.backup pg_archivecleanup: keep WAL file "archive/000000010000003700000010" and later pg_archivecleanup: removing file "archive/00000001000000370000000F" pg_archivecleanup: removing file "archive/00000001000000370000000E"
pg_archivecleanup 假設 archivelocation
是一個伺服器擁有者使用者可讀寫的目錄。
pg_archivecleanup 接受以下命令列引數
-b
--clean-backup-history
也移除備份歷程檔案。 有關備份歷程檔案的詳細資訊,請參閱第 25.3.2 節。
-d
--debug
在 stderr
上列印大量除錯記錄輸出。
-n
--dry-run
在 stdout
上列印將要移除的檔案名稱(執行試執行)。
-V
--version
列印 pg_archivecleanup 版本並結束。
-x extension
--strip-extension=extension
提供一個擴展名,在決定是否應該刪除檔案之前,將從所有檔案名稱中剝離該擴展名。 這通常對於清理在儲存期間已壓縮的封存很有用,因此壓縮程式已新增擴展名。 例如:-x .gz
。
-?
--help
顯示有關 pg_archivecleanup 命令列引數的說明,然後結束。
環境變數 PG_COLOR
指定是否在診斷訊息中使用顏色。 可能的值為 always
、auto
和 never
。
pg_archivecleanup 設計為與 PostgreSQL 8.0 及更新版本一起使用,當用作獨立公用程式時,或與 PostgreSQL 9.0 及更新版本一起使用,當用作封存清理命令時。
pg_archivecleanup 是用 C 語言編寫的,並且具有易於修改的原始碼,並具有專門指定的區段來根據您自己的需求進行修改
在 Linux 或 Unix 系統上,您可以使用
archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
其中封存目錄實際位於備用伺服器上,因此 archive_command
正在透過 NFS 存取它,但檔案位於備用伺服器本機。 這將
在 cleanup.log
中產生除錯輸出
從封存目錄中移除不再需要的檔案
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用此表格回報文件問題。