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