デフォルトでは、リカバリはWALログの最後までリカバリします。以下のパラメータは、それより前の停止ポイントを指定するために使う事ができます。
多くの場合、recovery_target
、recovery_target_name
、recovery_target_time
やrecovery_target_xid
のうち一つが使われますが、
設定ファイルで、2つ以上指定された場合、最後に指定されたものが使われます。
recovery_target
= 'immediate'
このパラメータは、整合性のとれた状態になると、つまりできるだけ早く、リカバリを終了するよう指定します。 オンラインバックアップからリストアした場合、これはバックアップが終了した時点を意味します。
厳密には、この文字列パラメータは、'immediate'
だけが有効な値です。
recovery_target_name
(string
)
このパラメータは、リカバリを実施するために、(pg_create_restore_point()
により作成された)名前付けされたリストアポイントを指定します。
recovery_target_time
(timestamp
)
このパラメータは、リカバリを実施するタイムスタンプの上限を指定します。 厳密な停止ポイントは、recovery_target_inclusive によっても影響を受けます。
recovery_target_xid
(string
)
このパラメータは、リカバリを進行させるトランザクションIDの上限を指定します。 トランザクションIDはトランザクションの開始時に順番に割り振られ、トランザクションはそれとは異なる順番で完了し得るということを理解しておいてください。 リカバリされるトランザクションは、指定されたものよりも前 (オプションによっては指定されたものも含まれる) にコミットされたものになります。 厳密な停止ポイントは、recovery_target_inclusive によっても影響を受けます。
以下のオプションはリカバリ対象をより詳細に指定し、リカバリが対象に達した時の動作に影響を与えます。
recovery_target_inclusive
(boolean
)
指定したリカバリ対象の後に停止するか (true
) 、その前に停止するか (false
) を指定します。
recovery_target_time と recovery_target_xid のどちらが指定されているかに関係なく、双方に適用されます。
この設定は、指定した対象のコミット時間あるいはトランザクションIDのトランザクションが、それぞれリカバリに含まれるかどうかを制御します。
デフォルトは true
です。
recovery_target_timeline
(string
)
リカバリが作成する個別のタイムラインを指定します。
デフォルトでは、ベースバックアップが取得された際のものと同じタイムラインに沿ってリカバリされます。
これをlatest
に設定すると、アーカイブ時に見つけた最新のタイムラインに回復します。これはスタンバイサーバで有用です。
この他にこのパラメータが必要となるのは、ポイントインタイムリカバリの実施後に到達したような状態に戻す場合など、複数回に渡ってリカバリするような複雑なリカバリのシチュエーションのみです。
この論考については 24.3.5. タイムライン を参照してください。
recovery_target_action
(enum
)
リカバリ対象に到達した場合に、サーバがする動作を指定します。
デフォルトはpause
で、リカバリを休止することを意味します。
promote
は、リカバリの過程が終われば、サーバは接続の受け付けを始めることを意味します。
最後に、shutdown
は、リカバリ対象に到達した後にサーバを停止します。
pause
の設定の意図した使い方は、このリカバリ対象がリカバリのための最も望ましいポイントかどうかチェックするために、データベースに対して問い合わせを実行できるようにすることです。
休止された状態は、pg_xlog_replay_resume()
(表9.70「リカバリ制御関数」参照)の使用により再開することができます。
その後、それはリカバリを終了させます。
このリカバリ対象が希望の止まるポイントでない場合、サーバをシャットダウンし、リカバリ対象の設定をより後の対象に変更し、リカバリを継続するために再起動してください。
shutdown
の設定はインスタンスを正確に望ましい再生ポイントで準備するのに有用です。
インスタンスはさらに多くのWALレコードを再生できます(実際、次に起動するときには最後のチェックポイントからWALレコードを再生しなければなりません)。
recovery_target_action
をshutdown
に設定する場合、recovery.conf
の名前が変更されるわけではありませんので、設定を変更するか、recovery.conf
を手動で削除しない限り、次の起動はすぐにシャットダウンで終わってしまうことに注意してください。
この設定はリカバリ対象が設定されていない場合には効果がありません。
hot_standbyが有効になっていない場合、pause
の設定はshutdown
と同じように動作します。