ポイントインタイムリカバリ【PITR】Point-In-Time Recovery
概要

データベース管理システム(DBMS)の多くは、システム障害や誤操作によるデータの消失や不整合に備え、定期的にバックアップを取得する機能を備えている。代表的な方式の一つが、ある時点のデータベース全体を複製する「スナップショット」(snapshot)である。
スナップショットを復元すれば、その取得時点の状態に戻すことはできるが、それ以降に行われた更新内容は反映されない。そこで多くのDBMSでは、データの追加や変更、削除を時系列で記録する「トランザクションログ」(WALなど)を、スナップショットと併せて保存している。
ポイントインタイムリカバリでは、まず指定時刻より前にある直近のスナップショットを復元し、その後トランザクションログに記録された更新を時系列に沿って一つずつ適用していく「ロールフォワード」(roll forward)と呼ばれる処理を行う。これにより、利用者が「何月何日何時何分」と指定した任意の日時の状態をピンポイントで再現できる。
主な用途は、操作ミスによるデータの上書きや削除からの復旧である。例えば、ある時刻に重要なデータを誤って削除した場合、その直前の時点を指定して復元すれば、削除前の状態に戻すことができる。アプリケーションソフトの「アンドゥ」(操作の取り消し)機能に近い使われ方といえる。ほかにも、システム障害やサイバー攻撃による被害直前の状態を再現する目的でも利用される。
ポイントインタイムリカバリを実現するには、スナップショットだけでなく、対象期間のトランザクションログが継続的に保存されている必要がある。ログに欠落があると、その期間をまたいだ復元はできず、直前のスナップショット時点までしか戻せない。復旧可能な期間は、バックアップやログの保持期間に依存する。この機能は多くの商用・オープンソースのDBMSに標準的に実装されているほか、クラウドデータベースやクラウドストレージでも提供されている。近年では自動バックアップとログ保存を組み合わせ、利用者が復元したい日時を指定するだけで実行できるサービスも普及している。