【ぽいんといんたいむりかばり】
ポイントインタイムリカバリ とは?
最終更新:
💡 データベースを「指定した時刻の状態に巻き戻す」復元技術
データベースを指定した時点の状態へ復元する技術。基準となるバックアップを復元してログを再生し、必要なバックアップと連続したログが残っている範囲で復旧できる。
📌 このページのポイント
- 基準のバックアップと必要な連続したログを組み合わせて指定時点へ復元する
- 誤操作前の状態への復旧に使えるが、復元可能な範囲と停止位置の指定を確認する
- MySQLではバイナリログ、PostgreSQLではWALを利用する
- マネージドDBでもバックアップ設定・保持期間・最新の復元可能時点などの確認が必要
普通のバックアップからの復元とどう違うの?
トランザクションログって何?
復旧に必要な変更の記録だよ。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と略されることも多い