pg_waldump

pg_waldumpPostgreSQLデータベースクラスタの先行書き込みログを可読性が高い表現で表示する

概要

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サブディレクトリ、PGDATApg_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進数で指定できます。例えば170x11です。

-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.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のような、ページ全体のイメージの由来するフォークの名前

-?
--help

pg_waldumpのコマンドライン引数に関する説明を表示し、終了します。

環境

PGDATA

データディレクトリ。-pオプションも参照してください。

PG_COLOR

診断メッセージで色を使うかどうかを指定します。 可能な値はalwaysautoneverです。

注釈

サーバが実行中の場合は間違った結果になることがあります。

指定されたタイムラインのみが表示されます(指定がなければデフォルトのみが表示)。 他のタイムラインのレコードは無視されます。

pg_waldumpは拡張子.partialのWALファイルを読むことはできません。 読む必要がある場合は、ファイル名から拡張子.partialを削除してください。

関連項目

30.6