抽出ファイルの名前は、WALセグメントファイルと同名であり、24文字の16進数の数字で構成され、その数字は常に増加します。
例えば、00000001000000000000001Cという名前のWALセグメントファイルに、あるトランザクションのCOMMITログがあったならば、仮にそのトランザクションがもっと前のセグメントファイルの中にユーザログを挿入していたとしても、そのトランザクションのすべてのユーザログシーケンスは00000001000000000000001Cという名前の抽出ファイルに出力されます。
ユーザログを挿入したことがあるトランザクションの完了ログが、あるセグメントファイルに1つも現れなければ、そのセグメントファイルと同じ名前の抽出ファイルはゼロバイトになります。
このファイルには、PostgreSQLユーザ(データベースクラスタを起動したユーザ)に対してのみ、読み込み権限だけが付与されます。これは、ユーザログの内容がWALセグメントファイルと同等だからです。
抽出ファイルのフォーマットは、“付録A ユーザログファイルのフォーマット”を参照してください。
抽出が完了した最新のファイルは、pgx_stat_userlogビューのlatest_extracted_filenameカラムによって知ることができます。pgx_stat_userlogビューについては、“付録B pgx_stat_userlogビュー”を参照してください。
注意
pgx_stat_userlogビューのlatest_extracted_filenameカラムに示されたファイルよりも新しいファイルは、作成の途中であるため利用しないでください。
アクセス対象の抽出ファイルを出力したインスタンスのpgx_stat_userlogビューの情報を元に、作成済みの抽出ファイルを判断してください。他のインスタンスのビューから得られた情報では時差があり、誤った判断になるからです。
抽出が完了した抽出ファイルは、いつ削除してもかまいません。
ただし、userlog.directoryに指定したディレクトリ配下には、抽出を制御するためのuserlog_controlおよびその作成途中に生成されるuserlog_control.tmpという名前のファイルがありますが、これらを削除しないでください。
このファイルは、再起動を挟んだとしても継続的に抽出を続けるために必要な情報を保持しています。例えば、どのファイルまで抽出を完了したのか、最後の抽出ファイルを作成し終わった段階で実行中だったトランザクションが出力した最も古いユーザログの場所がどこか(次の抽出ファイルを作成するにはどのアーカイブファイルから読み直せば良いのか)、といった情報です。
また、このディレクトリには、抽出制御ファイルのinitまたはsetモードの初期化コマンドの実行履歴を保持したpgx_userlog_control.logという名前のファイルがあります。このファイルは削除しても動作に問題はありませんが、何らかのトラブルが発生したときの調査に時間がかかる可能性があるので削除しないことを推奨します。
なお、このファイルは1回の初期化コマンドの実行に対して約50バイト増加します。