【ぽいんといんたいむりかばり】

ポイントインタイムリカバリ とは?

最終更新:
💡 データベースを「指定した時刻の状態に巻き戻す」復元技術

データベースを指定した時点の状態へ復元する技術。基準となるバックアップを復元してログを再生し、必要なバックアップと連続したログが残っている範囲で復旧できる。

📌 このページのポイント
PITR:指定時点の状態を再構築 基準の 復旧目標 誤操作 バックアップ 直前の時点 発生 DB ログ ログ ここで停止 バックアップを復元し、ログを順に再生 必要な連続したログが残る範囲で復旧
誤操作の前へ戻す例。青は時間の進行、紫はバックアップ復元後のログ再生です。復旧目標より後の変更はこの復元結果に含まれません。
ひよこ ひよこ
普通のバックアップからの復元とどう違うの?
ペンギン先生 ペンギン先生
バックアップ単体では基本的にその保存時点の状態へ戻すよ。PITRはそこからログを再生し、指定したところで止めるんだ。例えば午前3時のバックアップと必要なログが残っていれば、午後2時の誤削除より前の状態へ復元できるよ。
ひよこ ひよこ
トランザクションログって何?
ペンギン先生 ペンギン先生
復旧に必要な変更の記録だよ。MySQLではbinlog、PostgreSQLではWALを使うけど、両者の形式や記録単位は違う。WALはSQL文の一覧ではないし、PostgreSQLではpg_dumpの論理バックアップをWAL再生用の基準にできないんだ。使うDBに合ったバックアップとログの保存が必要だね。
ひよこ ひよこ
クラウドのRDSとかだと簡単に使えるの?
ペンギン先生 ペンギン先生
例えばAmazon RDSでは保持期間内の復元可能な時点を指定し、元のDBを変更せず新しいインスタンスを作るよ。最新の復元可能時点にはログ転送の遅れがある。自動バックアップの設定、DBエンジンの条件、復元後の接続先変更も確認するんだ。
ひよこ ひよこ
PITRがあれば完璧にデータを守れるの?
ペンギン先生 ペンギン先生
万能ではないよ。必要なログが削除されたり欠けたりすると、その先まで復元できない。保存容量や保持期間を監視し、復元手順も試しておくんだ。誤操作の直前を特定して、正常な後続変更も失う影響を確認する必要がある。復元時間はデータ量やログ量などによって変わるから、PITRだけで即座に復旧できる保証はないね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ポイントインタイムリカバリ」って出てきたら「バックアップとログから指定時点のDBを復元する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Point-in-Time Recovery(PITR)」 = 特定時点(Point-in-Time)への復旧(Recovery)
💬 「この時点(Point in Time)」にデータベースを戻すという意味。PITRと略されることも多い

参考資料

← 用語集にもどる