支援版本:目前 (17)
開發版本:devel

pg_combinebackup

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 會在輸出目錄中寫入備份清單。此選項指定應應用於包含在備份清單中的每個檔案的校驗和演算法。目前,可用的演算法為 NONECRC32CSHA224SHA256SHA384SHA512。預設值為 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 指定是否在診斷訊息中使用顏色。可能的值為 alwaysautonever

另請參閱

pg_basebackup

提交更正

如果您在文件中發現任何不正確、與特定功能的使用經驗不符或需要進一步闡明的地方,請使用此表單回報文件問題。