検索

回復ジャーナルと永久ジャーナル


ロールバックとロールフォワード

データベースに起こりうるさまざまな障害からデータを復旧させる手法に、ロールバックとロールフォワードという操作があります。ロールバックとは、ソフトウェア障害などでデータに不整合が発生したときに、更新処理を行う前のイメージを格納したジャーナルを用いて、データベースの内容を障害発生前の正常な任意の時点まで巻き戻す操作です。一方のロールフォワードは、ハードウェア障害が発生したとき、最後の完全システム・バックアップとバックアップ後に行った更新処理後のイメージを格納したジャーナルから、障害が発生する直前の状態までデータベースの内容を進める操作です(図1)。このように、その障害の種類に応じてロールバックあるいはロールフォワードを使い分け、データを正常な状態に戻すことができます。

回復ジャーナル

回復ジャーナルには、トランザクション処理の中断や失敗からデータの整合性を守る「一時ジャーナル」と、AMP の障害からデータの保全性を維持する「障害AMP 回復ジャーナル」が存在します。これらの回復ジャーナルの作成、保守、削除は Teradataデータベースによって自動的に管理・実行されます。従って、回復ジャーナルが存在する間はシステムによって特定のディスク領域が一時的に占有されますが、基本的にはデータベース管理者やユーザーの介入は必要ありません。

1. 一時ジャーナル

一時ジャーナルは、実行中のトランザクションが何らかの理由で中断あるいは失敗した場合に、データの整合性を守ります。トランザクションとは一連の処理の集合単位であり、中途半端な状態で終了することは許されません。そのため、もしトランザクションが中断した場合は、変更内容を元の状態に戻し、トランザクションそのものを“なかったこと”にする必要があります。一時ジャーナルには、トランザクション中に行われる、①更新あるいは削除される前の行のイメージ、②挿入された行に関する情報、③作成あるいは消去されたオブジェクトの情報、などが記録されます。トランザクションが中断あるいは失敗した場合は、この一時ジャーナルを使って、トランザクションが開始する前の状態に自動的に復元されます。また、役目を終えた一時ジャーナルは不要になるため、自動的に消去されます。

2. 障害AMP回復ジャーナル

AMP の実態は、ソフトウェアによる仮想プロセス※1 であるため、それ自体がハードウェア障害になることはありません。ただし、ディスクの障害などによって AMP がデータにアクセスできない場合、それは AMP障害とみなされます。Teradataデータベースは、フォールバック※2 機能で AMP をクラスター化し、AMP障害に対する高い可用性を提供します(図2)。

障害AMP回復ジャーナルは、フォールバックを構成している環境で AMP障害が発生した場合に、フォールバック保護されたテーブルに対してクラスター内の他の AMP が行う変更を自動的に取り込みます。その後、障害が発生していた AMP が復旧した時点で Teradataデータベースは障害AMP回復ジャーナルをオープンして、その AMP がダウンしていた間に加えられた変更を復旧した AMP に反映し、整合性を回復します。一連の処理が終了すると、障害AMP回復ジャーナルは自動的に消去されます。

永久ジャーナル

永久ジャーナルは任意のテーブルに対して取得することができる、Teradataデータベースのオプション機能です。永久ジャーナルには、取得対象に選ばれたテーブルに対して行われる全ての変更履歴が記録されます。永久ジャーナルを保持することによって、ハードウェア障害によるデータの消失、あるいはアプリケーションのエラーや操作ミスによるデータの不整合などのリスクから、システムを保護することが可能になります。永久ジャーナルの情報は、固定領域に作成されるジャーナル・テーブル上に格納されます。ジャーナル・テーブルは、それぞれのデータベースまたはユーザーごとに 1つ作成することができます。永久ジャーナル取得対象の各テーブルの変更履歴は、自分が属するデータベースやユーザー内のジャーナル・テーブルに書き込むことも、他のデータベースやユーザー内のジャーナル・テーブルに書き込むこともできます(図3)。また、永久ジャーナルは回復ジャーナルとは異なり、ユーザーが意図的に削除するまで消えません。

永久ジャーナルは目的に応じて、更新前イメージ、更新後イメージ、あるいはその両方といったように、取得する情報のタイミングや種類を選択することができます(表1)。更新前イメージは、主にアプリケーション障害からの回復に使用し、障害が発生する前の時点までロールバックするために用います。また、更新後イメージは、主にハードウェア障害からの回復用で、障害が発生する直前の状態までロールフォワードするために用います。

まとめ

Teradataデータベースは、各種ジャーナル機能によってさまざまな障害からデータを保護することができます。「一時ジャーナル」や「障害AMP回復ジャーナル」といった回復ジャーナルは、Teradataデータベースによって自動的に管理されます。従って、データベース管理者やユーザーが特に意識する必要はなく、これらの回復ジャーナルによってトランザクションの失敗や AMP障害から、データの整合性が保持されます。また、ユーザーが任意で設定できる永久ジャーナルは、ハードウェア障害やアプリケーション・エラーから、データベースを回復することができます。

企業のあらゆる意思決定に不可欠なデータウェアハウスにおいて、データの消失や不整合はさまざまな悪影響を及ぼす恐れがありますが、それは不慮の災害や人為的ミスによる事故など、防ぎきれないケースも考えられます。これらの不測の事態に備えて、重要なテーブルに関しては、フォールバックで保護すると同時に永久ジャーナルを取得して、適切に管理することが求められます。

  • ※1 仮想プロセス(Vproc)は、AMP や PE などの Teradataデータベースを構成するソフトウェア・コンポーネント。

  • ※2 フォールバックは、テーブル単位で設定可能な可用性を強化するためのオプション機能。フォールバックが設定された テーブルは、基本行のコピーが異なる AMP に作成される。


eventbanner.png