ブロック・ストレージ・データベースの完全回復の順序

バックアップからデータベースを復元すると、復元されたデータベースの状態は、バックアップが実行されたときとまったく同じ状態になります。バックアップ後に発生したトランザクションは一切回復されません。トランザクション・ロギングでは、進行中のトランザクションがキャプチャされます。これらのトランザクションを再実行して、最新の状態にデータベースを回復できます。

この2つの機能を使用する一般的な順序では、最初にトランザクション・ロギングを使用可能にして、次にデータベースをバックアップします。バックアップされたデータベースを復元してから、バックアップ操作後に発生したロギングされたトランザクションを再実行できます。

アウトラインとデータを一緒にリセットするトランザクション(たとえば、ロードされているデータをすべてクリアして、アウトラインを空にリセットするトランザクション)は、ロギングと再実行ができます。ロギングと再実行ができるトランザクションのリストについては、表5 ロギングされるカテゴリ別トランザクションのリストを参照してください。

アウトラインの変更はロギングされないので、再実行できません。ただし、アウトラインそのものはバックアップの一部として保存できます。データベースをバックアップした後にアウトラインを変更した場合は、データベースを復元してからロギングされたトランザクションを再実行するまでの間に、復元したデータベースに、更新したアウトラインをコピーする必要があります。アウトラインの非同期を回避するには、アウトラインを変更するたびに、データベースをバックアップすることをお薦めします。データベースをバックアップせずにデータベースのアウトラインを変更する場合は、変更したアウトラインを手動でコピーする必要があります。これによって、トランザクションを再実行する前に、更新したアウトラインを復元したデータベースにコピーできます。

表1は、これらの機能を並行して使用する方法の例です。

表1. バックアップと復元およびトランザクション・ロギングと再実行を使用する順序の例

期間(シーケンスID)トランザクションまたはイベント
T0トランザクション・ロギングを使用可能にする。
T1(1) データ・ロードを実行する。
T2(2) データベースを計算する。
T3(3) データベースをバックアップする。
T4(4) 別のデータ・ロードを実行する。
T5(5) スプレッドシート内のセルを更新し、ロックと送信を実行して、データベースを更新する。
T6(6) データベースを計算する。
T7システム障害により、データベースが破損する。
T8

T3で取ったデータベースのバックアップを復元する。

復元したデータベースには、シーケンスID 1と2のトランザクションの結果は含まれているが、4、5、6は含まれていない。

T9

シーケンスID 4、5および6のトランザクションを再実行する。

これらのトランザクションは、バックアップがT3で実行されてからデータベースがT7で破損するまでの間に発生したもので、データベースがT8で復元された時点では、回復されていなかった。

T10(7) 回復したデータベースをバックアップする。
T11データベース・アウトラインを変更する。
T12(8) データベースをバックアップするか、変更したアウトラインを手動で保存する。