pg_combinebackup — 從增量備份和依賴備份重建完整備份
pg_combinebackup
[選項
...] [備份目錄
...]
pg_combinebackup 用於從 增量備份 和它所依賴的早期備份中重建一個合成的完整備份。
在命令列中按從舊到新的順序指定所有必需的備份。也就是說,第一個備份目錄應為完整備份的路徑,最後一個應為您希望恢復的最終增量備份的路徑。pg_combinebackup 會將重建的備份寫入由 -o
選項指定的輸出目錄。
pg_combinebackup 會嘗試驗證您指定的備份是否形成一個合法的備份鏈,從中可以正確地重建一個完整的備份。但是,它並不是為了幫助您跟蹤哪些備份依賴於其他哪些備份。如果您刪除了增量備份所依賴的一個或多個早期備份,您將無法恢復它。此外,pg_combinebackup 只嘗試驗證備份之間是否存在正確的關係,而不驗證每個單獨備份的完整性;有關這一點,請使用 pg_verifybackup。
由於 pg_combinebackup 的輸出是一個合成的完整備份,它可以作為未來呼叫 pg_combinebackup 的輸入。合成的完整備份將在命令列中指定,以替代從中重建它的備份鏈。
-d
--debug
在 stderr
上列印大量除錯日誌輸出。
-k
--link
使用硬連結而不是將檔案複製到合成備份。重建合成備份可能會更快(無需複製檔案)並佔用更少的磁碟空間,但在使用輸出目錄時必須小心,因為對該目錄的任何修改(例如,啟動伺服器)也可能影響輸入目錄。同樣,對輸入目錄的更改(例如,在完整備份上啟動伺服器)也可能影響輸出目錄。因此,當輸入目錄僅為副本且將在 pg_combinebackup 完成後刪除時,使用此選項最佳。
要求輸入備份和輸出目錄在同一個檔案系統中。
如果備份清單不可用或不包含正確型別的校驗和,仍然會建立硬連結,但檔案仍將逐塊讀取以進行校驗和計算。
-n
--dry-run
-n
/--dry-run
選項指示 pg_combinebackup
在不實際建立目標目錄或任何輸出檔案的情況下找出將要執行的操作。它與 --debug
結合使用特別有用。
-N
--no-sync
預設情況下,pg_combinebackup
會等待所有檔案安全寫入磁碟。此選項導致 pg_combinebackup
在不等待的情況下返回,這樣更快,但這意味著後續的作業系統崩潰可能會導致輸出備份損壞。通常,此選項對於測試很有用,但不應用於建立生產環境。
-o outputdir
--output=outputdir
指定應將合成完整備份寫入的輸出目錄。目前,此引數是必需的。
-T olddir
=newdir
--tablespace-mapping=olddir
=newdir
在備份過程中,將目錄 olddir
中的表空間重新定位到 newdir
。olddir
是表空間在命令列指定的最終備份中存在的絕對路徑,而 newdir
是在重建備份中用於表空間的絕對路徑。如果任一路徑需要包含等號 (=
),則在其前面加上反斜槓。此選項可以指定多次以用於多個表空間。
--clone
使用高效的檔案克隆(在某些系統上稱為““reflinks””)而不是將檔案複製到新資料目錄,這可以近乎即時地複製資料檔案。
如果備份清單不可用或不包含正確型別的校驗和,檔案克隆將用於複製檔案,但檔案仍將逐塊讀取以進行校驗和計算。
檔案克隆僅在某些作業系統和檔案系統上受支援。如果選擇了但不支援,pg_combinebackup 執行將出錯。目前,它支援 Linux(核心 4.5 或更高版本),使用 Btrfs 和 XFS(在建立時支援 reflink 的檔案系統上),以及 macOS(使用 APFS)。
--copy
執行常規檔案複製。這是預設行為。(另請參見 --copy-file-range
、--clone
和 -k
/--link
。)
--copy-file-range
使用 copy_file_range
系統呼叫進行高效複製。在某些檔案系統上,這會產生與 --clone
類似的結果,共享物理磁碟塊,而在其他檔案系統上,它仍可能複製塊,但透過最佳化路徑進行。目前,它支援 Linux 和 FreeBSD。
如果備份清單不可用或不包含正確型別的校驗和,copy_file_range
將用於複製檔案,但檔案仍將逐塊讀取以進行校驗和計算。
--manifest-checksums=algorithm
與 pg_basebackup 類似,pg_combinebackup 會在輸出目錄中寫入備份清單。此選項指定應應用於備份清單中包含的每個檔案的校驗和演算法。當前可用的演算法為 NONE
、CRC32C
、SHA224
、SHA256
、SHA384
和 SHA512
。預設值為 CRC32C
。
--no-manifest
停用備份清單的生成。如果未指定此選項,將把重建備份的備份清單寫入輸出目錄。
--sync-method=method
當設定為 fsync
(預設值)時,pg_combinebackup
將遞迴開啟並同步備份目錄中的所有檔案。當使用普通格式時,檔案搜尋將遵循 WAL 目錄和每個已配置表空間的符號連結。
在 Linux 上,還可以使用 syncfs
來要求作業系統同步包含備份目錄的整個檔案系統。當使用普通格式時,pg_combinebackup
還會同步包含 WAL 檔案和每個表空間的upaten系統。有關使用 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
。
如果您在文件中發現任何不正確、與您對特定功能的實際體驗不符或需要進一步說明的內容,請使用 此表單 報告文件問題。