デフォルトでは、データページはチェックサムで保護されていませんが、オプションでデータベースクラスタに対して有効にすることができます。 チェックサムを有効にすると、各データページにチェックサムが含まれます。 チェックサムは、ページが書き込まれるときに更新され、ページが読み取られるたびに検証されます。 チェックサムによってデータページのみ保護されます。 内部データ構造と一時ファイルは保護されません。
チェックサムは通常、initdbを使用してデータベースクラスタを初期化するときに有効にできます。 また、オフライン操作で後から有効化または無効化することもできます。 データチェックサムは、データベースクラスタ全体のレベルで有効または無効になり、データベースやテーブルに対して個別に指定することはできません。
データベースクラスタのチェックサムの現在の状態は、SHOW data_checksums
コマンドを実行して読み取り専用設定変数data_checksumsの値を参照することで確認できます。
ページ破損からの復旧を試みる場合、チェックサム保護のバイパスが必要な場合があります。 これを行うには、一時的に設定パラメータignore_checksum_failureを設定します。
pg_checksumsアプリケーションは、オフラインのデータベースクラスタ上でデータチェックサムを有効または無効にしたり、チェックサムを検証したりできます。