【JPUG主催】PostgreSQLカンファレンス2020【11月13日開催】
他のバージョンの文書 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

pg_checksums

pg_checksumsPostgreSQLデータベースクラスタのデータチェックサムを有効化、無効化、あるいは検査する。

概要

pg_checksums [option...] [[ -D | --pgdata ] datadir]

説明

pg_checksumsPostgreSQLクラスタのデータチェックサムの検査と有効化、無効化を行います。 pg_checksumsを実行する前にサーバは正常停止されていなければなりません。 チェックサムを検査する場合、終了ステータスはチェックサム誤りが無ければゼロで、チェックサム誤りが一つでも在ったなら非ゼロです。 チェックサムの有効化、無効化をする場合、終了ステータスは操作に失敗したときに非ゼロになります。

チェックサムを検査する場合、クラスタ内の全てのファイルがスキャンされます。 チェックサムの有効化ではクラスタ内のすべてのファイルが書き換えられます。 チェックサムの無効化ではファイルpg_controlだけ更新されます。

オプション

以下のコマンドラインオプションが使用できます。

-D directory
--pgdata=directory

データベースクラスタが格納されているディレクトリを指定します。

-c
--check

チェックサムを検査します。 これは何も指定しなかった場合のデフォルトのモードです。

-d
--disable

チェックサムを無効化します。

-e
--enable

チェックサムを有効化します。

-f filenode
--filenode=filenode

指定したファイルノードfilenodeのリレーション内のチェックサムだけを検査します。

-N
--no-sync

pg_checksumsはデフォルトでは全てのファイルが安全にディスクに書かれるまで待ちます。 このオプションは、pg_checksumsがこれを待たずに応答するようにします。より早いですが、その後のオペレーティングシステムのクラッシュで更新されたデータディレクトリの破損が残ることを意味します。 一般に、このオプションはテストには有用ですが、本番導入むけには使うべきではありません。 --checkを使う場合には、このオプションは効果がありません。

-P
--progress

進行報告を有効にします。 これを有効にするとチェックサムの検査あるいは有効化で、進行報告が出力されます。

-v
--verbose

冗長な出力を有効にします。 チェックした全ファイルの一覧を出力します。

-V
--version

pg_checksumsのバージョンを出力して終了します。

-?
--help

pg_checksumsのコマンドライン引数のヘルプを表示して終了します。

環境

PGDATA

データベースクラスタが格納されたディレクトリを指定します。 これに対して-Dオプションで上書き指定できます。

PG_COLOR

対話的メッセージで色を使用するかを指定します。 指定可能な値はalwaysautoneverです。

注釈

大きいクラスタでチェックサムを有効にするには、場合によっては長時間を要する可能性があります。 この操作中にデータディレクトリに書き込みをするクラスタや他のプログラムを開始してはいけません。さもないとでデータ損失が起きるかもしれません。

リレーションファイルブロックの直接コピーを行うツール(例えばpg_rewind)でレプリケーションのセットアップを使う時のチェックサムの有効化や無効化は、操作が全ノードを通して一貫して行われない場合、不正なチェックサムという形でページ破損を引き起こすおそれがあります。 したがって、レプリケーションのセットアップでチェックサムの有効化や無効化をするときには、一貫して切り替える前にすべてのクラスタを停止することを推奨します。 全てのスタンバイを廃棄して、プライマリ上で操作を行い、最後にスタンバイを新たに再作成するのも安全です。

チェックサムの有効化や無効化をしている最中にpg_checksumsが中断されたり、killされたりした場合、クラスタのデータチェックサム設定は変更されないままとなり、pg_checksumsを同じ操作を再実行できます。