回収技術 - データベースシステムの概要

データベースの回復のI.概要

データベースを最小限に使用することはできませんした後、DBMS回復サブシステムは、損失を最小限に抑えるために、障害が発生した後、いくつかの一貫性のある状態を確保するためにデータベースを復元することができ、および崩壊時間必要があります

1.1障害の分類

1.1.1トランザクション障害

適切に終了し、死亡した実行できない様々な理由に運転中のトランザクション、
実行につながった2つのエラーは、トランザクションを失敗しました

  • プログラムの論理エラー
  • システムエラー

1.1.2システム障害

何らかの理由で、システム全体の正常な動作は、突然の異常終了に実行されているすべてのトランザクションを引き起こし、停止した
原因

  • DBMSまたはオペレーティング・システム・エラー・コード
  • オペレータ操作ミス
  • ハードウェアエラーの特定の種類(CPUの障害)
  • 突然の停電など

1.1.3メディア障害

ストアデータベースのストレージ装置の故障の
原因

  • ディスクの破損
  • ヘッドクラッシュ
  • オペレーティング・システムのいくつかの潜在的なエラー
  • 瞬時に強い磁気干渉

回復の1.2基本的な考え方

通常動作時にシステム内の冗長データの確立、回復のために利用可能な十分な情報があることを確認します。アトミックと永続性を保証するために、一貫性のある状態にデータベースの内容を復元するための措置をとるために失敗した後
、主を通じて、データベースシステムを登録ログデータダンプ冗長データ確立
冗長データ復旧の考慮事項

  • メモリの性質
  • トランザクションは、データベースの更新に書き込まれた場合
  • バッファ

第二に、ログ・ベースの回収技術

2.1ログ

ログは、ログ・シーケンスは、データベース更新中のすべての活動を記録しています

2.1。1ロガー・レコード・フォーマット

トランザクションは一度含め、データベースの操作を書き込み、更新ログレコード

  • トランザクション識別子
  • アクションタイプ
  • Operationオブジェクト
  • 古い値
  • 新しい値
<Ti,start>     --事务Ti开始
<Ti,Xj,V1,V2>  --事务Ti对 Xj的一次更新,其中 V1是旧值,V2是新值。对于插入,V1为空;对于删除,V2为空
<Ti,commit>    --事务Ti正常提交
<Ti,abort>     --事务Ti异常终止

登録ログの2.1.2原則

タイムロギングは厳密に登録実行同時トランザクションの順序に従わなければならない
データベースの後に書かれた、必見の日記を

2.1.3 redo和 undo

ログ・レコードに従ってリドゥ(TI)の新しい値は、オーダ登録をログに記録し、取引データは、データベース(不再実行トランザクションTI)に再書き込みするように、書き込み動作と各時間Tiオブジェクト更新
ログ記録に従ってアンドゥチタン(Ti)を使用し、プレス登録逆の順序でログイン、古い値は、トランザクションTiのデータ・オブジェクトがライトバックオペレーションデータベースに書き込まれるたびに更新され
たREDOと冪等であるアンドゥを実行時刻に複数の等価を行います

2.2遅延更新技術

トランザクションがコミットされるまでデータベース更新トランザクションの遅延の更新が延期された後
の規則に従うこと

  1. それが提出のポイントに到達する前に、各トランザクションは、データベースを更新することはできません
  2. トランザクションのログレコード内のすべての更新が安定したストレージに書き込まれる前に、トランザクションがコミット・ポイントに到達していません

2.2.1アップデート遅延回復テクノロジベースのトランザクション障害

トランザクションは、Tiを失敗した場合、Tiはチタン更新操作をログに登録されているので、提出のポイントに達し、いないデータベースに出力されません
Tiが失敗したトランザクションは、単にログのTiトランザクションログをクリアするときに、データベースずに、さらに処理するために自分自身。障害が自身でトランザクションTiの論理エラーでない場合は、トランザクションTiは後で再起動することができます

システム障害に基づく2.2.2アップデート遅延回復技術

  1. フォワード2つのトランザクションのリストを作成し、ログファイルをスキャンします。チタン<Tiは、コミット>持つトランザクション・ログ・レコードが含まれているコミットされたトランザクションのリストがあり、もう一方は<Tjが、スタート>持つログレコードが含まれているコミットされていないトランザクションリストですが、ログインせずの<Tjのを、コミット>トランザクションTjを
  2. Tiは各トランザクションコミットのトランザクションリストのREDOチタン(Ti)を実行:前方スキャンログファイルを、フォームごとに<チタン、Xjの、V1、V2>ログレコード、Tiは、その後、提出された場合、トランザクションリストXJ = V2は、データベースに書き込まれます

2.3リアルタイム更新技術

リアルタイム更新技術は、アクティブ状態のトランザクションが出力先のデータベースが更新されますことができます
アクティブなトランザクションが非提出アップデートとして知られているデータベースの更新に直接実装された
ルールに従うことを

  1. ログインする前に、<Tiは、Xjのは、V1、V2は>メモリトランザクションTiのXiのデータベースを更新することはできません= V2に安定した出力を確保します
  2. すべての<チタン、Xjの、V1、V2>がしっかりと安定したストレージへのログ出力を入力する前に、トランザクションは、Tiを提出することが許可されていません

2.3.1ベースのインスタント更新技術トランザクション障害復旧

チタントランザクションが失敗し、それがデータベースへの出力は、アンドゥ(Ti)が使用を行わなければならないいくつかの更新を有していてもよく
、<、Tiで開始>それが遭遇するまで、スキャンログファイルを逆に、フォーム<チタン、Xjの、V1のそれぞれについて、 V2>データベースへのXjの= V1に書き込まれたログレコード

2.3.2ベースのインスタント更新技術システム回復

  1. フォワード2つのトランザクションのリストを作成し、ログファイルをスキャンします。チタン<Tiは、コミット>持つトランザクション・ログ・レコードが含まれているコミットされたトランザクションのリストがあり、もう一方は<Tjが、スタート>持つログレコードが含まれているコミットされていないトランザクションリストですが、ログインせずの<Tjのを、コミット>トランザクションTjを
  2. 実行アンドゥ(TI)の各トランザクションTiのリストのためのコミットされていないトランザクション:それはTkのそれぞれのトランザクションのトランザクションのコミットされていないリストに遭遇するまで、<Tkの、コミット>スキャンログファイルをリバースフォーム<Tiとのそれぞれに対して、Xjの、V1 、V2>ロギング、Tiがコミットされていないトランザクションのリストに、それがデータベースXjの= V1に書き込まれている場合
  3. Tiは各トランザクションコミットのトランザクションリストのREDOチタン(Ti)を実行:前方スキャンログファイルを、フォームごとに<チタン、Xjの、V1、V2>ログレコード、Tiは、その後、提出された場合、トランザクションリストXJ = V2は、データベースに書き込まれます

第三に、チェックポイント回収技術に基づきます

3.1チェックポイント

回収システムの効率を改善するための方法は、チェックポイントの使用は
システム障害の時間Tfで、トランザクションが5つのカテゴリー図に分けることができ、システムは、最後のチェックポイントTcの時間を設定することを前提としています。

  1. T1:チェックポイントの前に提出
  2. T2:チェックポイントの後に障害が発生したポイントの前に提出され、チェックポイントの前に実行を開始
  3. T3:障害点が完了していないときには、チェックポイントの前に開始
  4. T4は:障害点の前に提出され、チェックポイントの後に開始します
  5. T5:チェックポイントは、障害の時点で完了していない後に開始

mitHpt.png

3.2ベースのシステム障害のチェックポイント回復

システム障害が発生した場合には、最初にシステムを再起動する必要があります。システムが再起動した後、回復サブシステムは自動的に次のステップを実行します

  1. 最後のチェックポイントレコードを取得します。ログファイルに記録された最後のチェックポイントのアドレスを見つけ、最後のチェックポイントレコードを削除<チェックポイント、L>
  2. トランザクションの2つの初期化リストは、(トランザクションのセット元に戻す操作を実行する必要がある)-LISTを元に戻すとREDO-LIST(リドゥ操作を実行する必要があるトランザクションのセット):すべてのトランザクションはL UNDO-LISTに配置され、及びREDO-LISTが空であります
  3. 2件の取引のリストUNDO-LISTおよびREDO-LISTの設立:; <Tiは、コミット>遭遇した最新のチェックポイントから始まるが、前方の出会いの最後までログファイルをスキャンし、<Tiは、スタート> TiはUNDO-LISTを追加置きますTiはUNDO-LISTのREDO-LISTから移動入れます
  4. Tiのアンドゥ(TI)実行される各トランザクションの-LISTを取り消す:それはTkの<Tkが、コミット>各トランザクションの逆スキャンコミットされていないトランザクションのリストに遭遇するまで、フォームのそれぞれについて、ログファイル<チタン、Xjの、V1 、V2>ロギング、Tiがコミットされていないトランザクションのリストに、それがデータベースXjの= V1に書き込まれている場合
  5. Tiはやり直し(TI)REDO-LISTトランザクションごとに実行します。フォームのそれぞれの前方スキャンログファイルを、<チタン、Xjの、V1、V2>ログレコード、Tiを、その後、提出された場合、トランザクションリストXJ = V2は、データベースに書き込まれます

第四に、メディア・リカバリ技術

4.1ダンプ

データベースのバックアップコピーを生成し、別のディスクまたはテープにデータベースの全部または一部をコピーし
、メディアの障害回復のために、バックアップコピーをオフラインで保存することができる場合に使用します

4.1.1静的および動的なダンプダンプ

トランザクションが考慮できるようにするかどうかの角度をダンプ
静的ダンプダンプは、トランザクションがシステム上で実行されていないです。しなければならない同じのコピーを取得しますが、データベースの同時実行削減
動的なダンプは、ユーザーのトランザクションとフラッシュ操作が可能ダンプ時の同時実行は、トランザクションがデータベースおよび更新にアクセスすることができます。データの一貫性のあるコピーを保証することはできません

4.1.2マスストレージと増分ストレージ

データベース全体または視点からのデータベースの一部がダンプダンプすることです
巨大なダンプはデータベースの完全なコピー生産
増分ダンプ、データベースの増分コピーが形成されているコピーのみダンプ更新後、このデータを、増分コピーだけではできません使用
回復は、あなたが一貫性のある状態にデータベースを復元するために後の最終的なおよびすべての増分コピーの完全なコピーを使用する必要があります。

4.2メディア・リカバリ

データベースが破損した場合は、バックアップコピーを復元し、唯一の巨大なダンプを検討ダンプを、ログインする必要があります

  1. データベースの最新のバックアップコピーをロードし、データベースは、とき最後のダンプの状態に復元されます
  2. ダンプにログインした後、完了したトランザクションをやり直します

おすすめ

転載: www.cnblogs.com/xxwang1018/p/11546736.html