pg_combinebackup — 從增量備份和相關備份中重建完整備份
pg_combinebackup
[選項
...] [備份目錄
...]
pg_combinebackup 用於從增量備份以及其所依賴的先前備份中重建一個合成完整備份。
在命令列上指定所有需要的備份,從最舊到最新。也就是說,第一個備份目錄應該是完整備份的路徑,最後一個應該是您想要還原的最終增量備份的路徑。重建的備份將被寫入由 -o
選項指定的輸出目錄。
pg_combinebackup 將嘗試驗證您指定的備份是否形成合法的備份鏈,從中可以重建正確的完整備份。但是,它並非旨在幫助您追蹤哪些備份依賴於哪些其他備份。如果您刪除增量備份所依賴的一個或多個先前備份,您將無法還原它。此外,pg_combinebackup 僅嘗試驗證備份彼此之間是否具有正確的關係,而不是驗證每個單獨的備份是否完整;為此,請使用 pg_verifybackup。
由於 pg_combinebackup 的輸出是合成的完整備份,因此它可以作為未來調用 pg_combinebackup 的輸入。合成的完整備份將在命令列上指定,以代替重建它的備份鏈。
-d
--debug
在 stderr
上列印大量除錯日誌輸出。
-n
--dry-run
-n
/--dry-run
選項指示 pg_combinebackup
計算出將要執行的操作,而無需實際建立目標目錄或任何輸出檔案。它與 --debug
結合使用時特別有用。
-N
--no-sync
預設情況下,pg_combinebackup
將等待所有檔案安全地寫入磁碟。此選項會導致 pg_combinebackup
在不等待的情況下返回,這更快,但意味著隨後的作業系統崩潰可能會使輸出備份損壞。通常,此選項對於測試很有用,但不應在建立生產安裝時使用。
-o 輸出目錄
--output=輸出目錄
指定合成完整備份應寫入的輸出目錄。目前,此參數是必需的。
-T 舊目錄
=新目錄
--tablespace-mapping=舊目錄
=新目錄
在備份期間,將目錄 舊目錄
中的表空間重新定位到 新目錄
。舊目錄
是表空間在命令列上指定的最終備份中存在的絕對路徑,而 新目錄
是在重建的備份中用於表空間的絕對路徑。如果任一路徑需要包含等號 (=
),請在其前面加上反斜線。可以多次指定此選項,用於多個表空間。
--clone
使用高效的檔案複製(在某些系統上也稱為 「重新連結」)而不是將檔案複製到新的資料目錄,這可以導致近乎瞬時地複製資料檔案。
如果備份清單不可用或不包含正確類型的校驗和,將使用檔案複製來複製檔案,但也會逐個區塊地讀取該檔案以進行校驗和計算。
檔案複製僅在某些作業系統和檔案系統上受支援。如果選擇了它但不受支援,pg_combinebackup 執行將會出錯。目前,它在 Linux(核心 4.5 或更高版本)與 Btrfs 和 XFS(在建立時具有重新連結支援的檔案系統上)以及 macOS 與 APFS 上受支援。
--copy
執行常規檔案複製。這是預設值。(另請參閱 --copy-file-range
和 --clone
。)
--copy-file-range
使用 copy_file_range
系統呼叫進行高效複製。在某些檔案系統上,這會產生類似於 --clone
的結果,共享物理磁碟區塊,而在其他檔案系統上,它可能仍然複製區塊,但會通過最佳化的路徑執行此操作。目前,它在 Linux 和 FreeBSD 上受支援。
如果備份清單不可用或不包含正確類型的校驗和,將使用 copy_file_range
來複製檔案,但也會逐個區塊地讀取該檔案以進行校驗和計算。
--manifest-checksums=演算法
與 pg_basebackup 類似,pg_combinebackup 會在輸出目錄中寫入備份清單。此選項指定應應用於包含在備份清單中的每個檔案的校驗和演算法。目前,可用的演算法為 NONE
、CRC32C
、SHA224
、SHA256
、SHA384
和 SHA512
。預設值為 CRC32C
。
--no-manifest
停用產生備份清單。如果未指定此選項,則重建備份的備份清單將被寫入輸出目錄。
--sync-method=方法
當設定為 fsync
(預設值)時,pg_combinebackup
將以遞迴方式開啟並同步備份目錄中的所有檔案。當使用純文字格式時,對檔案的搜尋將遵循 WAL 目錄和每個設定的表空間的符號連結。
在 Linux 上,可以使用 syncfs
來要求作業系統同步包含備份目錄的整個檔案系統。當使用純文字格式時,pg_combinebackup
也會同步包含 WAL 檔案和每個表空間的檔案系統。有關使用 syncfs
時需要注意的注意事項,請參閱 recovery_init_sync_method。
當使用 --no-sync
時,此選項沒有任何作用。
-V
--version
印出 pg_combinebackup 的版本並結束。
-?
--help
顯示關於 pg_combinebackup 命令列引數的說明,並結束。
pg_combinebackup
在寫入輸出目錄時不會重新計算頁面校驗和。因此,如果用於重建的任何備份是在禁用校驗和的情況下進行的,但最終備份是在啟用校驗和的情況下進行的,則產生的目錄可能包含具有無效校驗和的頁面。
為了避免這個問題,建議在使用 pg_checksums 更改叢集的校驗和狀態後,進行一次新的完整備份。或者,您可以禁用,然後選擇性地重新啟用 pg_combinebackup
產生的目錄上的校驗和,以糾正此問題。
這個工具,像大多數其他的 PostgreSQL 工具一樣,使用 libpq 支援的環境變數 (參見 第 32.15 節)。
環境變數 PG_COLOR
指定是否在診斷訊息中使用顏色。可能的值為 always
、auto
和 never
。
如果您在文件中發現任何不正確、與特定功能的使用經驗不符或需要進一步闡明的地方,請使用此表單回報文件問題。