pg_checksums — 在 PostgreSQL 資料庫叢集中啟用、停用或檢查資料校驗和
pg_checksums
[option
...] [[ -D
| --pgdata
]datadir
]
pg_checksums 檢查、啟用或停用 PostgreSQL 叢集中的資料校驗和。在執行 pg_checksums 之前,必須先乾淨地關閉伺服器。 驗證校驗和時,如果沒有校驗和錯誤,則結束狀態為零;如果檢測到至少一個校驗和失敗,則為非零。啟用或停用校驗和時,如果操作失敗,則結束狀態為非零。
驗證校驗和時,會掃描叢集中的每個檔案。 啟用校驗和時,每個具有已更改校驗和的關聯檔案區塊都會就地重寫。停用校驗和只會更新檔案 pg_control
。
以下為可用的命令列選項:
-D directory
--pgdata=directory
指定儲存資料庫叢集的目錄。
-c
--check
檢查校驗和。 如果未指定其他內容,這是預設模式。
-d
--disable
停用校驗和。
-e
--enable
啟用校驗和。
-f filenode
--filenode=filenode
僅驗證 filenode 為 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 以執行相同的操作。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。