メモ:PITR(Point In Time Recovery)の概要

PostgreSQLのバックアップ/リカバリでは、dump(メモ:PostgreSQLのDBを丸ごと移行する方法 - 虎塚)だけでなく、こちらも押さえておかないといけない模様。。。というわけで、あわてて勉強した内容をメモ。

おおまかな流れ

  1. ベースバックアップファイルでリストアする
  2. ベースバックアップ以降のWALファイル(アーカイブファイル、アクティブファイルの両方)、メタファイルをそろえる
  3. リカバリ指示ファイルを作成する
  4. PostgreSQLを起動する(リカバリが行われる)

仕組み

  • DBクラスタ稼動状態のまま、バックアップできる
  • PITRで戻った時点以降に作成されるWALファイルには、新規のタイムラインIDが振られる
    • 分岐のようなイメージ??
  • タイムラインIDとは、文字どおりライン上に振られる番号である
    • 1個1個のWALファイルに振られる番号(WALファイル番号)ではない
  • タイムラインIDとWALファイル番号は、WALファイル名に含まれている

注意点

  • PITR実施前に、必要なWALファイルをアーカイブディレクトリに全部戻しておく
  • リカバリにはWALファイルのメタ情報も必要なので、バックアップ対象にする
  • 取得したバックアップファイルの確認方法
    • ベースバックアップ情報が記録されたテキストファイルを確認し、pg_start_backupで指定したラベル名と一致しているか見る