Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースと応用システム:障害回復

 データベースと応用システム:障害回復

More Decks by 自然言語処理研究室

Other Decks in Education

Transcript

  1. (c)長岡技術科学大学 電気系 2 障害の種類と復旧 • トランザクション障害 – データの不備、デッドロック、資源不足、通信障害等 – ロールバックしてやり直し

    • システム障害 – ソフトウェアや(データ部以外の)ハードウェアのトラブル – DBの一貫性が保証されるまでロールバック – +コミットしたトランザクションはロールフォワード • メディア(媒体)障害 – データベースの損傷 – バックアップを使って復活
  2. (c)長岡技術科学大学 電気系 5 ログファイル(log file) • トランザクションが行った更新などの操作履歴 は、障害に備えてログファイルに記録される – ジャーナルファイル(journal

    file)とも呼ぶ • 後退復帰と前進復帰の両者に備える – 更新前ログと更新後ログがある • データベースとログファイルは別のディスクに書き込 む – データベース本体よりも信頼性の高い装置に保存、ある いはログを二重化する
  3. (c)長岡技術科学大学 電気系 6 ログに書きこむ情報 • トランザクション開始・終了ログ • データ挿入 – 更新後データログ

    • データ削除 – 更新前データログ • データ更新 – 更新前・更新後データログ • コミット・ロールバックログ
  4. (c)長岡技術科学大学 電気系 7 WALプロトコル (Write Ahead Logging) • データベースの更新よりもログファイルへの記録を 先にする手順

    – トランザクション障害が発生してもいいように • 更新処理手順 1.ログファイルへbegin transactionレコードを記録 2.ログファイルへ更新前レコードの記録 3.ログファイルへ更新後レコードの記録 4.データベースの更新 5.commitレコードを記録 6.end transactionレコードを記録
  5. (c)長岡技術科学大学 電気系 9 障害と処理の関係 • トランザクション障害 – ロールバックしてトランザクション開始時に戻す • システム障害

    – コミットされていればロールフォワード – コミットされていなければロールバック • メディア障害 – 交換やバックアップ復元したあとロールフォワード
  6. (c)長岡技術科学大学 電気系 11 チェックポイント • データベースの内容は常にディスクに読み書きして いる訳ではなく、一部はメモリ上で更新している。 • よって、メモリとディスクの内容は一致しているとは 限らない。

    • DBMSはあるタイミングでチェックポイントを設定し てメモリ上の内容を書き込んでいる。 – 一定時間ごと – 一定のトランザクション実行数ごと – 一定のログ量ごと
  7. (c)長岡技術科学大学 電気系 12 チェックポイントと回復処理の関係 • チェックポイント前にコミット – 回復処理は不要 • チェックポイント後にコミットし、障害発生前

    – チェックポイント後の操作をロールフォワード • チェックポイント前に開始し、障害時も実行中 – ロールバック • チェックポイント後に開始し、障害時も実行中 – ロールバック
  8. (c)長岡技術科学大学 電気系 13 チェック ポイント システム 障害 データベース への書き出し が完了

    データベース への書き出し が完了か どうか不明 チェック ポイント 時刻
  9. (c)長岡技術科学大学 電気系 21 バックアップの種類 • フルバックアップ • 差分バックアップ:フルバックアップからの差分のみ保存 • 増分バックアップ:前回の増分バックアップからの差分の

    み保存 • 通常はフルバックアップを定期的(例:週1回)に行い、さ らに細かく差分・増分バックアップを行う(例:毎日)とい う使い分けをする。 • 差分バックアップはバックアップ時間は短く、復旧時間は 長くなる。増分バックアップはさらにこの傾向が顕著。
  10. (c)長岡技術科学大学 電気系 24 RAID • Redundant Array of Inexpensive Disks

    • データを複数のHDDに冗長に記録する仕組み • 1987年UCB(University of California, Berkeley)のDavid A. Pattersonらの論文 • 当初は RAID1~RAID5で、その後 RAID0とRAID6が 追加された
  11. (c)長岡技術科学大学 電気系 27 RAID5 • RAID0と同様にデータを複数のディスクに分散して書き込 むが、この際に(今データを書いたディスクとは別の)ディ スクにパリティ(誤り訂正符号)も書き込む。 – パリティを書き込むディスクは毎回変える

    • これによって、例えば4ディスクで3ディスク分の容量を書 き込みできる。 • どれか1ディスクが故障してもデータは保持される – 2ディスク以上が故障したら終わり • ディスクが分散されているので、読み込み速度は速い – パリティを計算するため書き込み速度は比較的遅い
  12. (c)長岡技術科学大学 電気系 28 その他のRAID • RAID2、3、4、6 – 定義されているが、実用上はあまり使われない • RAID10

    (RAID1+0) – RAID1と0の組み合わせ。最低4ディスク必要 • RAID50 (RAID5+0) – RAID5と0の組み合わせ。最低6ディスク必要
  13. (c)長岡技術科学大学 電気系 29 RAID関連技術 ホットスワップ(hot swap) • システムを停止させることなく(=通電したままで) ディスクを交換することができる処理・技術 –

    自動でアクセス停止して電気信号を切り離す等 ホットスペア(hot spare)/ホットスタンバイ • ディスクの故障に備えて、予備のディスクを通電状 態で待機させておく技術 • 故障した機器は自動で切り離し、予備のディスクの 動作を自動で開始する