第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復.

Slides:



Advertisements
Similar presentations
Internet Explorer 障害解析 最初の一歩 - IE のトラブルを理解する -. 概要 Internet Explorer を使用中に発生するトラブルの 種類と、調査のための切り分け方法を紹介します! (以降は IE と略称で表記します) よくあるお問い合わせ Web ページの表示が白画面のまま完了しない.
Advertisements

安全なログオン手順 2004/08/26 Port139 伊原 秀明.
コンピュータ概論B ー ソフトウェアを中心に ー #03 プログラムの実行形態 (前回の復習+残り)
SQL Server Always On Technologies の概要
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
計算機システム概論・3回目 本日のトピック:割込みと入出力制御について 割込み制御について 問題点の明確化 割込みとは
Ibaraki Univ. Dept of Electrical & Electronic Eng.
最新ファイルの提供を保証する代理FTPサーバの開発
リレーショナル・データベース データベース論 第10回.
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
入 出 力 管 理 オペレーティングシステム 6/26/09.
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
第1章 第1節 データを保存するときに(p.14-15) ・p.14 は,データ保存についての基本的な知識と保存場所について,実際の活用場面を想定して説明している。 ・p.15 は,ファイルの整理方法としてフォルダの活用と注意事項を紹介している。 1.
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
PCの情報を得る - 「システム情報」 ①「スタート」→「すべてのプログラム」→「アクセサリ」→「システム ツール」→「システム情報」とクリックする。 ②左欄の項目を選択すると、右欄に情報が表示される。
~補助記憶装置~  主記憶装置に記憶されるデータは,パソコンの電源を切ると記憶内容が消えてしまう。また,容量にも限界があるので,補助記憶装置にデータを記憶させる。補助記憶装置はパソコンの電源を切っても記憶内容は消えない。補助記憶装置の内容は主記憶装置上で利用することができる。 電源OFF 電源OFF.
DBバックアップあーんどリカバリ HN おいろん.
DBバックアップあーんどリカバリ HN おいろん.
WagbyR6.5 Update 12 PPT版 更新情報
バージョン管理超入門 まだファイルコピーしてます?
Windowsを理解しよう! ーメンテナンスの薦めー.
記 憶 管 理(2) オペレーティングシステム 第10回.
REX-RAID製品 カテゴリガイド Removable RAID Case 高速USB3.0接続! ミラーリング対応
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
RDBMSについて 2年7組  小鹿 慎太郎.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
メールの利用2 計算機実習室で Netscape 7.1 メール.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
15.同時実行制御,トランザクション, データベースの回復
拡張ボリューム 搭載NASのご紹介。 + の悩みを解決する データ管理 筐体台数の増加 全体の50% ディスク管理方法に見る
第8回入出力制御 デバイスコントローラ ポーリングと割込み 入出力の方式 PIO DMA 入出力のためのソフトウェア技法.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
型付きアセンブリ言語を用いた安全なカーネル拡張
第9章 Error and Control Messages (ICMP)
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
北海道大学理学研究科 地球惑星科学専攻 豊田英司
新たなバックアップソリューション「クローン機能」はここがスゴイ 新たなバックアップ方法「クローン機能」なら全て解決!
新たなバックアップソリューション「クローン機能」はここがスゴイ 新たなバックアップ方法「クローン機能」なら全て解決!
4社共同技術検証プロジェクト成果とその応用
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
リモートホストの異常を検知するための GPUとの直接通信機構
CCP Express 3.3 アップグレード ガイド
仮想メモリを用いた VMマイグレーションの高速化
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
ゲーム開発モデルの基礎.
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
リカバリ 東大生研 情報融合研究センタ 喜連川優.
ガイダンス 情報システム管理 ガイダンス 水野 嘉明 情報システム管理 1.
コミュニケーションと ネットワークを探索する
動画配信捕捉のためのWEBサーバ構築 06A1058 古江 和栄.
ファイルやフォルダを検索する ①「スタート」→「検索」とクリックする。 ②「表示項目」から適当なものを選択する。
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
ISO23950による分散検索の課題と その解決案に関する検討
4社共同技術検証プロジェクト成果とその応用
全体ミーティング (5/23) 村田雅之.
SQL Server ベースの SAP システム における高可用性ソリューション
リレーショナル・データベース J2EE I (データベース論) 第2回 /
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
関数の変更履歴と呼び出し関係に 基づいた開発履歴理解支援システム
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復

6.3 障害回復 1.障害とその回復 (a) トランザクションと障害 【目的】 データベース操作中や実行後に何らかの障害やエラーが起きたとき、データベースの一貫性を保つこと。 システムがダウンしたとき、処理結果を保存してあれば、その結果は残っているがセーブしていないデータは失われてしまう。

残高チェックの処理のとき障害が起きた場合 途中で障害が起きても良いケース 残高チェックの処理のとき障害が起きた場合 データベースは更新されていないので、 データベースの内容は正常に保たれている。 (最初からやりなおせばよい)

①残高チェック ②引き落とし処理(ここで障害が起きた場合) ③振込処理 途中で障害が起きたら困るケース(1) ①残高チェック ②引き落とし処理(ここで障害が起きた場合) ③振込処理 A. ②の更新が行われているが、③の受取人への振込が行われていない。 B. 最初からやり直すと2回分の引落としが行われる。 C. ③からやり直すと、バッファからまだ書き込まれていない状態で障害が起きていたら、引落しされないで受取人の口座に振込が行われる。

トランザクションを一体として扱う。 トランザクションを すべて有効とするか/すべて無効とするか のどちらかを保証する。 トランザクションの原子性 トランザクションを一体として扱う。 トランザクションを すべて有効とするか/すべて無効とするか のどちらかを保証する。

予約送金(ここで障害が起きた場合) 途中で障害が起きたら困るケース(2) A. ハードディスクの内容が壊れていなければ、そのままでよい。 B. ハードディスクが壊れていたら、データ内容を回復する必要がある。

(b) 障害の種類 ①トランザクション障害 プログラムバグや端末障害などによるトランザクションの異常終了(単一のトランザクションに限定される) ②システム障害 ハードウェア異常やソフトウェアのバグでシステムダウンし、すべての処理が停止する障害。主記憶装置の内容はすべて失われる。 ③メディア障害 ディスク内容が失われる障害。ディスククラッシュ、誤操作、意図的な消去などがある。

バッファのフラッシュ ①データベースへのアクセスは、通常バッファを用いて行う。 ②書込み時にバッファに書き込まれていないデータが残っているかどうかが問題となる。 ③未書込みのバッファをディスクに書き込み(バッファのフラッシュという)、書込みを保証する。

(c) UNDO, REDOと障害回復 【障害回復の基本的な処理】 ①UNDO ・トランザクションがデータベースに対して行ったすべての処理の取り消しを行う。 ・トランザクション開始前の状態に戻す。 ②REDO ・コミットしたトランザクションの再実行を行う。 ・応用プログラムを再実行するのではなく、データベースへ内容が再実行した場合と同じであればよい。

UNDO, REDOを障害別に適用 ①トランザクション障害の回復 ・該当トランザクションをUNDOする。 ・トランザクションの再実行はユーザの責任で行う。 ②システム障害の回復 ハードウェア修理やOSによるシステム回復処理後、 データベースの回復処理を行う。 ・実行中トランザクションはUNDOする(全局的UNDO)。 ・コミットしたトランザクションの更新データが失われた場合REDOする(局所的REDO)。

(d) メディア障害 ディスク内容が失われるので、 多くのトランザクションが影響をうける。 ディスク内容が失われるので、 多くのトランザクションが影響をうける。 ハードウェア故障の場合、修理してシステムを回復後、以下を行う。 アーカイブ(あらかじめ保存しておいたデータ)を元にデータベースを以前の状態に戻す(実行中トランザクション結果はなくなるのでUNDOしなくてよい)。 ② データ保存後に実行されたトランザクションのうちコミットしたトランザクションをREDOする(全局的REDO)。 ③ アーカイブ作成の頻度が高いほど作成のオーバーヘッドが増えるが、障害を早く回復できる(全局的REDOが少なくて済む)。

2.障害回復の方法 (a)ロギングによる障害回復 データベース処理の記録(ログまたはジャーナルという)を用いる方法 最も重要な情報はデータベースへの書込み記録 ①データ更新前の内容と更新後の内容をログに書き込む。 ②REDOでは、更新後の内容を書き込む。 ③UNDOでは、更新前の内容を書き込む。 (通常、データベース本体の情報とは別のエリア、別のディスクに書き込まれる)

ログをとるタイミング ①ログをとる前にデータベース更新を行うとUNDOできなくなる。 ②コミットしたトランザクションのログがとっていないとREDOできなくなる(バッファから書き込まれるタイミングが問題となる) 【WAL(Write-Ahead Logging)プロトコル】 ①データベースの更新前にログに書く。 ②コミットする前に該当トランザクションのすべてのデータ更新をログに書く。

UNDO/REDOアルゴリズムでの処理 (システム障害後の回復処理に用いられる)

システム障害後の回復処理 ログを逆順に調べる。 ② コミットしていないトランザクション(終了していないかロールバックがログの中にある)をUNDOする。 ③ コミットしたトランザクションを順にREDOする。

その他のアルゴリズム データベース内容のバッファからディスクへの 書込みタイミングを制限する。 ① UNDO/NO-REDO(REDOを行わない) ② NO-UNDO/REDO(UNDOを行わない) ③ シャドーページ方式  トランザクション中はデータをカレントページとシャドーページに 2重化し、トランザクション終了時に一本化する。

コミットやロールバックのとき、バッファをすべてフラッシュする? 効率が悪い。フラッシュ途中の障害への対処も必要 (b) チェックポイント 回復時の効率 アーカイブとすべてのログを用いた回復 ① アーカイブをとるには時間がかかるので頻繁に行うのは困難 ② アーカイブをとってから障害までの時間が長いと、回復処理に時間がかかる。 ③ システム障害の場合、すべてのログを参照して回復処理を行うのは時間がかかるだけでなく、不要な処理(2回更新されていれば、2回処理を行う)も行わざるを得ない。 コミットやロールバックのとき、バッファをすべてフラッシュする? 効率が悪い。フラッシュ途中の障害への対処も必要

チェックポイントという考え方 定期的にバッファをフラッシュ(この時点をチェックポイントという)し、 それ以降のログだけを用いて障害回復を行う。 ① 新たなトランザクションの開始を禁止。 ② 実行中のトランザクション処理のデータベース処理を一時停止させる。 ③ バッファ内容をフラッシュし、データベースに書き出す。 ④ 実行中のトランザクションをログに記録。

チェックポイントの例 チェックポイント 障害 時間 T1 T2 T3 T4 T5 T3とT4は再実行 (処理の対象外) REDO UNDO その後完了している。 REDO T3 T3 はチェックポイント時実行中で、 障害時も実行中 UNDO T4 T4 はチェックポイント後に開始され、 その後完了している。 T3とT4は再実行 REDO T5 T5 はチェックポイント後に開始され、 障害時も実行中 UNDO