支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12

pg_checksums

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

指定是否在診斷訊息中使用顏色。 可能的值為 alwaysautonever

備註

在大型叢集中啟用校驗和可能需要很長時間。 在此操作期間,不得啟動叢集或其他寫入資料目錄的程式,否則可能會發生資料遺失。

當使用複製設定以及直接複製關係檔案區塊的工具(例如 pg_rewind)時,如果在所有節點上未一致地執行操作,則啟用或停用校驗和可能會導致頁面損毀,表現為不正確的校驗和。 因此,在複製設定中啟用或停用校驗和時,建議先停止所有叢集,然後一致地切換它們。 銷毀所有待機伺服器,在主伺服器上執行操作,最後從頭開始重新建立待機伺服器也是安全的。

如果在啟用或停用校驗和時中止或終止 pg_checksums,則叢集的資料校驗和配置保持不變,並且可以重新執行 pg_checksums 以執行相同的操作。

提交更正

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