障害回復処理
データベースの耐久性(Durability)は、障害回復処理によって実現されます。
障害回復処理をかんがえてみましょう。

毎日、データを入力しているエクセルのファイルがあるとします。
しごとが終わってから帰るまえに、
昼間作業した分をフロッピーにコピーしているとしましょう。
つまり日次バックアップです。

さて、今日は張り切ってたくさんデータを追加入力しました。
ところが、突然、ハードディスクがいかれてしまったとします。
さあ困りました。
昨日までのデータは、フロッピーにバックアップしてあります。
すっからかんにならなくてよかったです。
まずこれを復元します。
さて、今日やっとのことで入力したたくさんのデータを、
もう一度はじめから入力しなおすことにしましょう。
これが、ロールフォワードです。

あるデータを入力している最中に、
とつぜん、エクセルのマクロが異常終了してしまったとします。
途中まで入力したままそれが一件となってしまうとまずいです。
一件のデータは、全部入力したか、
まったく入力していないかのどちらかでないと、
統計が狂ってしまいます。
この、完全に実行されたかまったくされなかったかの
どちらかでないといけないことを原子性(Atomicity)といいます。
まずはとりあえず、
そのデータはなかったことにしましょう、
というのがロールバックです。

さて、エクセルで入力している最中に、
とつぜん異常終了することがあるので、
ある程度入力したら、
フロッピーのバックアップファイルに「上書き保存」をする習慣にしています。
この上書き保存が、チェックポイントです。
上書き保存してしまえば、
それ以前に入力したデータは保証されます。

入力している一件のデータにはいろんな項目があり、
いくつかのマクロがながれてはじめて成立しているとします。
データの入力はじめが、
トランザクションの開始(BIGIN TRANZACTION)です。
データ一件が最後まで入力されて、
すべてのマクロがながれおわると、
トランザクションの終了、コミット(COMMIT)です。
トランザクションが異常終了して、
ロールバック(ROLLBACK)すると、
そのトランザクションはなかったものとして、BIGINの位置まで戻ります。

例えが低俗ですみません。

どこで上書き保存(チェックポイント)するかによって、
障害回復処理がかわってきます。

ハード的な障害なら、
コミットしていない(完了していない)部分は、
ログの順序どおり、
チェックポイントからもういちど再実行するしか方法がありません。

トランザクション障害(処理実行中の障害)なら、
そのトランザクション(実行中だった処理全体)はなかったものとする、
つまりロールバックです。

この、チェックポイントというのが、
上書き保存のようなものだとわかったら、
障害回復処理はわかったようなものです。
[PR]
by nwdb | 2004-11-22 08:42 | データベース
<< ライブドアブログの著作権に関わ... TACの解答例が送ってきました。 >>


リンク
■SQL攻略 実行すれば理解できる

■ITBooks ネットワーク技術の解説とNetwork関連書籍の紹介


受験歴
初級シスアド
→2004年春合格
テクニカルエンジニア(ネットワーク)
→2004年秋受験


アクセス解析

以前の記事
フォロー中のブログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧