pg_waldump — PostgreSQLデータベースクラスタの先行書き込みログを可読性が高い表現で表示する
pg_waldump [option...] [startseg [endseg]]
pg_waldumpは先行書き出しログ(WAL)を表示します。
主にデバッグや学習目的に有用です。
データディレクトリへの読み取り専用のアクセスが必要ですので、このユーティリティはサーバをインストールしたユーザによってのみ実行することができます。
以下のコマンドラインオプションは場所や出力書式を制御します。
startseg指定したWALセグメントファイルから読み取りを開始します。 これは暗黙的に検索されるファイルのパスや使用するタイムラインを決定します。
endseg指定したWALセグメントファイルを読み取り後終了します。
-b--bkp-detailsバックアップブロックに関する詳細情報を出力します。
-B block--block=block
指定されたブロックを修正するレコードのみを表示します。
リレーションも、--relationまたは-Rで指定しなければなりません。
-e end--end=endログストリームの終了点まで読み取る代わりに、指定したWAL位置で読み取りを終了します。
-f--follow有効なWALの終わりに到達した後、新しいWALが現れるのを1秒間に1回ポーリングし続けます。
-F fork--fork=fork
指定されると、指定されたフォーク内のブロックを変更するレコードのみを表示します。
有効な値は、メインフォークのmain、空き領域マップのfsm、可視性マップのvm、initフォークのinitです。
-n limit--limit=limit指定レコード数を表示し、終了します。
-p path--path=path
WALセグメントファイルを見つけ出すディレクトリ、あるいはWALセグメントファイルが含まれるpg_walサブディレクトリが含まれるディレクトリを指定します。
デフォルトではカレントディレクトリ、カレントディレクトリ内のpg_walサブディレクトリ、PGDATAのpg_walサブディレクトリから検索されます。
-q--quietエラーを除いて、出力を表示しません。 このオプションは、WALレコードの範囲の解析に成功したかを知りたいがレコードの内容を気にしない場合には有用でしょう。
-r rmgr--rmgr=rmgr
指定されたリソースマネージャによって生成されたレコードのみを表示します。
リソースマネージャを複数選択するために、このオプションを複数回指定できます。
listが名称として渡された場合は、有効なリソースマネージャの一覧を表示し、終了します。
拡張はカスタムリソースマネージャを定義するかもしれませんが、pg_waldumpは拡張モジュールをロードせず、したがってカスタムリソースマネージャを名前で認識しません。
その代わり、カスタムリソースマネージャをcustom###として指定できます。
ここで"###"は3桁のリソースマネージャIDです。
この形式の名前は常に有効とみなされます。
-R tblspc/db/rel--relation=tblspc/db/rel
指定されたリレーションのブロックを変更するレコードのみを表示します。
リレーションは、1234/12345/12345のように、スラッシュで区切られたテーブル空間OID、データベースOIDおよびrelfilenodeで指定されます。
これは、プログラムの出力でリレーションに使われる形式と同じです。
-s start--start=start読み取りを始めるWAL位置です。 デフォルトでは、最初に見つかったファイルの中で最初に見つかったWALレコードから読み取りを始めます。
-t timeline--timeline=timeline
WALレコードの読み取り先のタイムラインです。
デフォルトでは、startsegが指定されている場合はstartseg内の値が使用されます。
指定がない場合のデフォルトは1です。
値は10進数または16進数で指定できます。例えば17や0x11です。
-V--versionpg_waldumpのバージョンを表示し終了します。
-w--fullpageページ全体のイメージを含むレコードのみを表示します。
-x xid--xid=xid指定されたトランザクションIDで印付けられたレコードのみを表示します。
-z--stats[=record]個々のレコードの代わりに要約統計(レコードおよびページ全体のイメージの数とサイズ)を表示します。 オプションでrmgr毎の代わりにレコード毎の統計を生成します。
pg_waldumpがシグナルSIGINT(Control+C)で終了した場合、計算された統計情報の要約が終了点まで表示されます。 この操作はWindowsではサポートされていません。
--save-fullpage=save_path
WALレコードで見つかったページ全体のイメージをsave_pathディレクトリに保存します。
保存されたイメージは、表示されたレコードと同じフィルタおよび制限条件に従います。
ページ全体のイメージは、次のファイル名形式で保存されます。
ファイル名は、次の部分で構成されます。
TIMELINE-LSN.RELTABLESPACE.DATOID.RELNODE.BLKNOFORK
| 構成要素 | 説明 |
|---|---|
| TIMELINE |
8文字の16進数1つ%08Xで表された、そのレコードがあるWALセグメントファイルのタイムライン
|
| LSN |
8文字の16進数2つ%08X-%08Xで表された、このイメージのレコードのLSN
|
| RELTABLESPACE | ブロックのテーブル空間OID |
| DATOID | ブロックのデータベースOID |
| RELNODE | ブロックのファイルノード |
| BLKNO | ブロックのブロック番号 |
| FORK |
_main、_fsm、_vm、_initのような、ページ全体のイメージの由来するフォークの名前
|
-?--helppg_waldumpのコマンドライン引数に関する説明を表示し、終了します。
PGDATA
データディレクトリ。-pオプションも参照してください。
PG_COLOR
診断メッセージで色を使うかどうかを指定します。
可能な値はalways、auto、neverです。
サーバが実行中の場合は間違った結果になることがあります。
指定されたタイムラインのみが表示されます(指定がなければデフォルトのみが表示)。 他のタイムラインのレコードは無視されます。
pg_waldumpは拡張子.partialのWALファイルを読むことはできません。
読む必要がある場合は、ファイル名から拡張子.partialを削除してください。