トランザクションログ

Domino ®トランザクションログは、データベースに加えられた変更をキャプチャし、トランザクションログに書き込みます。記録されたトランザクションは、リソースが利用可能なときやスケジュールされた時刻に一括してディスクに書き込まれます。

トランザクションは、サーバーのデータベースに加えられる一連の関連した変更のことです。例えば、新規文書を開き、テキストを入力して、その文書を保存するといった操作がトランザクションです。この場合のトランザクションは、NotesOpen、NoteUpdate、NoteClose という 3 つの暗黙的で独立した API コールから構成されます。

トランザクションログは、Notes ®データベースに加えられた変更の記録です。トランザクションログは、ログエクステントとログ制御ファイル (NLOGCTRL.LFH) から成ります。ログエクステントは、トランザクションログを書き込むログファイルの 1 つです。ログエクステントは Sxxxxxxx.TXN の形式を備えており、xxxxxxx は、そのサーバーで一意の 7 桁の数字を表します。Domino は、新しいエクステントにデータを書き込む前に、各エクステントを順番に埋めていきます。これらのレコードは、専用のバイトストリーム形式で保護されています。各サーバーはトランザクションログを 1 つだけ備えており、このログが有効なデータベースに加えられた変更がすべて取り込まれます。

トランザクションログでは、次の機能を利用できます。

  • バックアップの定期的なスケジュール設定。トランザクションログに基づくバックアップは、トランザクションログを使用しないデータベースの完全バックアップと比べて、迅速かつ容易に行うことができます。
  • メディア不良からの復旧。メディア不良が発生した場合は、最近の完全バックアップをテープからリストアできます。
  • システムクラッシュからの復旧。再起動したサーバーでは、トランザクションログの最後が確認され、クラッシュの時点でディスクに書き込まれなかったデータがある場合はそのデータを復旧します。ログが有効なデータベースでは、一貫性のチェックを必要としません。
  • データベースビューのログ記録。大部分のビューでは、再構築を回避できます。

トランザクションログのすべての機能をバックアップおよびバックアップリカバリで使用するには、 Domino ®C API Toolkit のバックアップおよびリカバリを使用するサードパーティのバックアップユーティリティが必要です。例えば、メディア復旧の場合は、サードパーティ製のユーティリティでデータベースのバックアップをとり、同時にデータベースの更新内容を記録します。その後、データベースのデータが失われたときは、トランザクションログを調べて現在の状態をバックアップで復元し、データベースのバックアップ開始以降、データベースで発生した更新を適用します。

再起動時の復旧では、サードパーティ製のユーティリティを必要としません。この場合、更新中もログ記録は継続されます。クラッシュしたサーバーを再起動すると、トランザクションログを設定していなければ失われていた更新内容がデータベースに書き込まれます。これにより、サーバークラッシュに起因するデータの損失とデータベースの損傷が大幅に減少します。

注:Domino ®8.5 以降で利用できるDomino® Attachment and Object Service を使用してサーバーリポジトリ内の添付ファイルをまとめる場合は、トランザクションログは必須であり有効にしておく必要があります。

データベースインスタンス ID (DBIID) を理解する

トランザクションログを有効にすると、 DominoDomino ®データベースに一意のデータベースインスタンス ID (DBIID) を割り当てます。Dominoトランザクションをログに記録するとき、この DBIID が含まれます。リカバリ中に、 DominoDBIID を使用してトランザクションをデータベースと照合します。

オプションを指定した Compact コマンドの使用など、一部のデータベースメンテナンス処理を実行すると、 Dominoデータベースを再構築し、古いトランザクションログレコードは無効になります。こうした再構築時には、DBIID が新たにデータベースに割り当てられます。この時点以降、そのデータベースで新たにログ記録されたトランザクションでは、すべて新しい DBIID が使用されます。データベースに DBIID が新たに割り当てられた後に、データベースの完全バックアップを新規実行します。新しい完全バックアップでは、DBIID が新たに割り当てられた、現在の状態のデータベースが取り込まれます。その後、データベースを復元する必要がある場合、新しい DBIID を含む新しいトランザクションのみが Domino®に必要です。

Domino は、次の場合に新しい DBIID を割り当てます。

  • トランザクションログ機能を初めて有効にした場合
  • オプションを指定して Compact タスクを実行した場合 -- 例えば、ファイルサイズを小さくするオプションを指定した場合など
  • 壊れたデータベースに対して Fixup タスクを実行した場合
  • Domino ®データベースをログが記録されたサーバーに移動します。