pg_checksums — 在 PostgreSQL 資料庫叢集中啟用、停用或檢查資料校驗和
pg_checksums
[選項
...] [[ -D
| --pgdata
]資料目錄
]
pg_checksums 檢查、啟用或停用 PostgreSQL 叢集中的資料校驗和。在執行 pg_checksums 之前,伺服器必須已乾淨關閉。在驗證校驗和時,如果沒有校驗和錯誤,退出狀態為零;如果檢測到一個或多個校驗和失敗,退出狀態為非零。在啟用或停用校驗和時,如果操作失敗,退出狀態為非零。
在驗證校驗和時,將掃描叢集中的每個檔案。在啟用校驗和時,將就地重寫每個校驗和已更改的關聯檔案塊。停用校驗和僅更新 pg_control
檔案。
以下命令列選項可用
-D directory
--pgdata=directory
指定資料庫叢集儲存的目錄。
-c
--check
檢查校驗和。如果未指定其他選項,則為預設模式。
-d
--disable
停用校驗和。
-e
--enable
啟用校驗和。
-f 檔案節點
--filenode=檔案節點
僅驗證檔案節點為 檔案節點
的關聯的校驗和。
-N
--no-sync
預設情況下,pg_checksums
會等待所有檔案安全寫入磁碟。此選項會導致 pg_checksums
在不等待的情況下返回,這樣更快,但這意味著後續的作業系統崩潰可能會導致更新的資料目錄損壞。通常,此選項對於測試很有用,但不應在生產環境中安裝時使用。使用 --check
時,此選項無效。
-P
--progress
啟用進度報告。啟用此選項後,將在檢查或啟用校驗和時提供進度報告。
--sync-method=method
設定為 fsync
(這是預設設定)時,pg_checksums
將遞迴地開啟並同步資料目錄中的所有檔案。檔案搜尋將遵循 WAL 目錄和每個配置的表空間的符號連結。
在 Linux 上,還可以使用 syncfs
來要求作業系統同步包含資料目錄、WAL 檔案和每個表空間的整個檔案系統。有關使用 syncfs
時需要注意的注意事項,請參閱 recovery_init_sync_method。
當使用 --no-sync
時,此選項無效。
-v
--verbose
啟用詳細輸出。列出所有已檢查的檔案。
-V
--version
列印 pg_checksums 版本並退出。
-?
--help
顯示關於 pg_checksums 命令列引數的幫助,然後退出。
PGDATA
指定資料庫叢集儲存的目錄;可以使用 -D
選項覆蓋。
PG_COLOR
指定是否在診斷訊息中使用顏色。可能的值為 always
、auto
和 never
。
在大型叢集中啟用校驗和可能會花費很長時間。在此操作期間,叢集或其他寫入資料目錄的程式不得啟動,否則可能會發生資料丟失。
當使用執行關聯檔案塊直接複製的工具(例如 pg_rewind)的複製設定時,啟用或停用校驗和可能會導致頁面損壞(表現為不正確的校驗和),如果操作在所有節點上不一致。因此,在複製設定中啟用或停用校驗和時,建議在所有叢集切換之前停止所有叢集。銷燬所有備用伺服器,在主伺服器上執行操作,然後從頭開始重新建立備用伺服器也是安全的。
如果在啟用或停用校驗和時 pg_checksums 被中止或殺死,叢集的資料校驗和配置將保持不變,並且可以重新執行 pg_checksums 來執行相同的操作。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步說明的內容,請使用 此表格 報告文件問題。