名前
pgx_userlog_control - userlog_controlファイルの内容を表示または初期化する
概要
pgx_userlog_control init -p userlog_directory [-D data_directory]
pgx_userlog_control set -p userlog_directory {-l lsn | --follow-primary} [-D data_directory]
pgx_userlog_control show -p userlog_directory [-D data_directory]
説明
initモードで実行すると、ユーザログの抽出開始位置が、最後のチェックポイント位置に初期化され、その位置を標準出力に出力します。出力フォーマットは、タイムラインIDとログ位置であるpg_lsn型の文字列表現を空白以外の文字で連結した文字列です。このコマンドは、正常終了したプライマリでのみ実行してください。この条件に反していてもコマンドはエラーになりません。
setモードで実行すると、-lオプションを使用した場合にはユーザログの抽出位置を指定された場所に設定し、--follow-primaryオプションを使用した場合には正しい抽出ファイルを出力できるログ位置に到達したときから抽出を開始するように設定します。このコマンドは、停止したスタンバイでのみ実行してください。この条件に反していてもコマンドはエラーになりません。
showモードで実行すると、ユーザログの抽出制御ファイルの内容が表示されます。本モードは何かのトラブルが起きた時などの調査のため以外には使用する機会がないかもしれません。
オプション
postgresql.confのuserlog.directoryパラメータに指定されたディレクトリを指定してください。
プライマリでpgx_userlog_controlをinitモードで実行したときに標準出力に出力された文字列を指定してください。この文字列のフォーマットは、タイムラインIDとpg_lsn型の文字列表現を空白以外の文字で連結した文字列です。
インスタンスのデータディレクトリを指定してください。本パラメータが省略された場合には、環境変数PGDATAに指定されたディレクトリを参照します。本オプションおよび環境変数PGDATAの両方を省略することはできません。
診断
エラーがあれば、0以外の値を返します。成功したならば0を返します。
現在は、user_controlファイルまたはpg_controlファイルが存在しない場合には1を、存在していても内容が不正ならば2を、それ以外のエラーならば3を返却しますが、将来変更される可能性があるので、0か0以外かという情報だけを利用してください。
注釈
showモードの表示では、新しいフィールドが追加されることがあり、また、フィールドの出現順序も変更される可能性があります。
権限
pgx_userlog_controlコマンドは、PostgreSQLのインスタンスを作成したユーザで実行してください。それ以外のユーザであっても-pオプションに指定されたディレクトリへの移動権限と、そのディレクトリにあるuserlog_controlファイルの読み書き権限を持っていればコマンドは成功します。
pgx_userlog_control showの表示内容
以下の例のように、フィールド名の後に「:」を挟んで値が並びます。
表示内容は、追加、変更される可能性があります。
LatestExtractedFilename:00000001000000000000001C … (1) OldestUserlogLSN:0/16EF3A8 … (2)
(1) LatestExtractedFilename : 最後に抽出を完了した抽出ファイルの名前 (2) OldestUserlogLSN : 現在必要とされる最も古いWALログ位置