PITR(時点を指定した復旧)の使い方
ベースバックアップと WAL で、ある時点に戻す
書き方
\! tar -xf /backup/base/base.tar -C $PGDATA restore_command = 'cp /backup/wal/%f %p' recovery_target_time = '2026-11-04 22:14:00' recovery_target_name = '名前'(pg_create_restore_point) \! touch $PGDATA/recovery.signal SELECT pg_wal_replay_resume();
止めたサーバーのデータディレクトリをベースバックアップで置き換え、restore_command(アーカイブから WAL を取ってくるコマンド)と目標(recovery_target_time・_name・_lsn)を書き、recovery.signal を置いて起動します。サーバーは WAL を流し直して目標で止まり(recovery_target_action の既定は pause)、読むだけの状態になります。データを確かめてから pg_wal_replay_resume() で復旧を終えると、新しいタイムラインで書けるようになります。
例
\! touch recovery.signal SELECT pg_is_in_recovery(); SELECT pg_wal_replay_resume();
実際に打って練習する
PostgreSQL DBA コースの Lv40「時点を指定して戻す PITR」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。