blob: 4394fa6107dac1bcfbd3074bf87cfc8a2303ccc8 [file] [log] [blame]
pt-verify-checksum
==================
概要
----
指定したPostgreSQLのファイルのチェックサムを検証します。
チェックサムを有効にしてデータベースクラスタを作成している必要があります。 ``initdb`` コマンドの ``-k`` オプション)
PostgreSQL 9.3以降のバージョンが対象です。
このスクリプトは内部で ``verifychecksum`` コマンドを呼び出します。Red Hat Enterprise Linux 6/CentOS 6以外のOSで動作させる場合は、``src/verifychecksum.c`` を別途ビルドして ``bin`` ディレクトリ以下に配置する必要があります。
実行方法
--------
.. code-block:: none
pt-verify-checksum [option...] [segment file | directory]
引数としてファイル名を指定した場合には、そのファイルのチェックサムを検証します。
引数としてディレクトリ名を指定した場合には、そのディレクトリにあるファイルのうち、以下のファイルを対象としてチェックサムを検証します。
* ``global`` または ``base`` ディレクトリ以下にあり、かつ、
* ファイル名が数字で構成されるもの(例: ``1234````1234.1``)、および末尾に ``_vm`` または ``_fsm`` が付与されているファイル(例: ``1234_vm````1234_fsm``
チェックサム検証で1つ以上のファイルにエラーが見つかった場合には終了コード ``1`` を返します。それ以外のエラーが発生した場合には終了コード ``2`` を返します。どのファイルにも問題がなかった場合には ``0`` を返します。
オプション
----------
.. code-block:: none
-r, --recursive
-v, --verbose
--help
``-r``, ``--recursive`` オプションは、ディレクトリを指定した場合に、サブディレクトリ以下を再帰的にスキャンし、該当するファイルのチェックサムを検証します。
``-v``, ``--verbose`` オプションは、チェックサム検証中により多くのメッセージを出力します。
出力項目
--------
.. csv-table::
``blkno``, チェックサムエラーの見つかったブロック番号
``expected``, ブロックのデータから計算されたチェックサム
``found``, ページヘッダに記録されていたチェックサム
``Verified N files``, チェックサムの検証をしたファイル数
``N files corrupted``, チェックサムのエラーの見つかったファイル数
実行例
------
単一のファイルのチェックサムを検証します。
.. code-block:: none
$ pt-verify-checksum /var/lib/pgsql/9.4/data/base/16386/16399
[2015-03-28 15:50:03] INFO: Verified 1 files. 0 files corrupted.
$
データベース内のすべてのファイルのチェックサムを検証します。
.. code-block:: none
$ pt-verify-checksum /var/lib/pgsql/9.4/data/base/16386
[2015-03-28 15:51:00] INFO: Verified 311 files. 0 files corrupted.
$
データベースクラスタ内を再帰的に探索し、すべてのファイルのチェックサムを検証します。
.. code-block:: none
$ pt-verify-checksum -r /var/lib/pgsql/9.4/data
[2015-03-28 15:55:16] INFO: /var/lib/pgsql/9.4/data/base/12144/11905: blkno 7, expected 2cf, found da97
[2015-03-28 15:55:16] INFO: 1 blocks corrupted in /var/lib/pgsql/9.4/data/base/12144/11905.
[2015-03-28 15:55:16] INFO: Verified 1046 files. 1 files corrupted.
$