タイプ: | string |
コンテキスト: | postmaster |
再起動: | true |
以来: | 12 |
一連のWALファイルからアーカイブセグメントを取り出すために実行するローカルのシェルコマンドです。このパラメータはアーカイブリカバリでは必須ですが、ストリーミングレプリケーションではオプションです。文字列中の%f
はアーカイブから取り出すファイルの名前に置換され、%p
はサーバ上のコピー先のパス名に置換されます。(パス名は現在の作業ディレクトリの相対パス、つまりクラスタのデータディレクトリです。)%r
は有効な最後のリスタートポイントを含むファイル名に置換されます。これはリストアが再開可能であるために維持しなければならない最古のファイルで、現在のリストアからの再開をサポートするのに最小限必要なアーカイブを残して切り詰めるのに必要な情報として利用できます。%r
は通常ウォームスタンバイ構成でのみ使用されます。(warm-standby参照。)%
文字自体を埋め込むには%%
と書いてください。
コマンドは、成功した時のみ終了コードのゼロを返却することが重要です。コマンドはアーカイブにないファイル名を聞かれることになります。その場合には、非ゼロの値を返却しなければなりません。以下に例を示します。restore_command = 'cp /mnt/server/archivedir/%f "%p"'restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows例外は、データベースサーバのシャットダウンの一部として、SIGTERM以外のシグナルでコマンドが終了させられたり、シェルによってエラーが発生した(コマンドが見つからない場合など)場合で、その場合はリカバリは中断され、サーバはスタートアップしなくなります。
このパラメータはサーバ起動時のみ設定可能です。
On StackOverflow
- PostgreSQL 9.1 streaming replication restore_command: special meaning of exit code 255?
- Is it mandatory to set "restore_command" and "archive_cleanup_command" in recovery.conf?
- Hot standby is falling behind -- how to speed up WAL ingestion rate from `restore_command` in PostgreSQL?
- use of archive_command in PostgreSQL streaming replication
- Is it mandatory parameter recover_target_timeline='latest' in switchover and switchback in PostgreSQL 9.4.1?