pg_archivecleanup — 清理 PostgreSQL WAL 封存檔案
pg_archivecleanup
[選項
...] archivelocation
oldestkeptwalfile
pg_archivecleanup 被設計為當作為待機伺服器執行時(請參閱第 26.2 節),用作清理 WAL 檔案封存的 archive_cleanup_command
。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
中產生除錯輸出
從封存目錄中移除不再需要的檔案
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的內容,請使用此表單報告文件問題。