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
--version
pg_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
.BLKNO
FORK
構成要素 | 説明 |
---|---|
TIMELINE |
8文字の16進数1つ%08X で表された、そのレコードがあるWALセグメントファイルのタイムライン
|
LSN |
8文字の16進数2つ%08X-%08X で表された、このイメージのレコードのLSN
|
RELTABLESPACE | ブロックのテーブル空間OID |
DATOID | ブロックのデータベースOID |
RELNODE | ブロックのファイルノード |
BLKNO | ブロックのブロック番号 |
FORK |
_main 、_fsm 、_vm 、_init のような、ページ全体のイメージの由来するフォークの名前
|
-?
--help
pg_waldumpのコマンドライン引数に関する説明を表示し、終了します。
PGDATA
データディレクトリ。-p
オプションも参照してください。
PG_COLOR
診断メッセージで色を使うかどうかを指定します。
可能な値はalways
、auto
、never
です。
サーバが実行中の場合は間違った結果になることがあります。
指定されたタイムラインのみが表示されます(指定がなければデフォルトのみが表示)。 他のタイムラインのレコードは無視されます。
pg_waldumpは拡張子.partial
のWALファイルを読むことはできません。
読む必要がある場合は、ファイル名から拡張子.partial
を削除してください。