
No.7ベストアンサー
- 回答日時:
No.4のymmasayanです。
補足質問にお答えします。かなり、話が混線してきていますので、先に整理しておきます。
まず障害回復には、
1.トランザクション単体のロールバック と、
2.ハード障害、DBMS障害、OS障害などによる全体障害回復
の2つがあります。これが混線しています。
1は更新前ログだけあればロールバックできます。
2は更新前ログ、更新後ログ、チェックポイントなどをとります。
障害発生時に、最新のチェックポイントを基準に、ロールバックとロールフォワードを使い、回復します。
蛇足ですが、2種類の更新前ログは別々の場所にとられます。
回答です。
> トランザクション開始時と障害時までの間にチェックポイントが無いという前提で書いてました。
> なのでトランザクション障害時に更新前ログがバッファには存在しても、
> チェックポイントを通っていないのでログファイルには存在しないと思うのです。
>もしくはトランザクション開始時より前のチェックポイントで記録した
> 更新前ログを使うということだとすると、
> チェックポイント時点には戻れてもその後にあったトランザクション開始時には
> 戻れない気がするのです…。
上に書いたように、トランザクション単体のロールバックであればチェックポイントは無関係です。
全体ダウンの時ならチェックポイントが関係します。
ついでに、単体ロールバック用の更新前ログはバッファリングによる消失は考える必要は有りません。
No.6
- 回答日時:
#2です。
>前回のチェックポイントより、障害が起きたトランザクションの開始時の方が後の場合、
#4の方の説明が参考になるかと思いますが、個々のトランザクションでは、
・トランザクション開始
・トランザクション正常終了(コミット)
・トランザクション異常終了(ロールバック)
の3つだけ考えればいいです。
DBMSやOLTPでチェックポイントというものがありますが、それは個々のトランザクションとは関係なく、DBMSやOLTP自身の障害時の回復のためのものです。

No.5
- 回答日時:
トランザクション処理は、ミッションクリティカル部分で利用されていますのでデータベースだけとは限らないです。
トランザクションの基本は
情報を更新する際、
更新前の状態を保持しており、更新途中に障害が発生しても
更新前に戻す事を可能にする事です。
また、正常に更新された後では、更新前に戻すことは
トランザクション処理ではできません。
>>この更新前情報というのはいつログファイルに書き出されたのでしょうか?
トランザクションの宣言をした時に確保されます。
逆言うとトランザクションの宣言がされていないと
確保されませんので整合性が取れなくなる可能性があります
ご返答ありがとうございます。
>トランザクションの宣言をした時に確保されます。
ログファイルにログが書き込まれるのはコミット時とチェックポイント時だけかと思っていたのですが、
トランザクション開始時(開始時=宣言時ですよね?)もそうだということで良いでしょうか。
No.4
- 回答日時:
この問題はDB更新とログの書き出しをバッファリングしているかどうかによって、
説明が違ってきます。
方式としては、
1.DBの書き出しもR/Wログもバッファリングしない。
2.DBの書き出しのみバッファリングする。
3.両方ともバッファリングする。
の3つが有ります。
歴史的には1→2→3の順に進んできました。
目的は処理性能向上ですがそれだけ回復処理が複雑になります。
では3を前提に回答しましょう。
DBの書き出しも更新前/更新後ログもバッファリングされていますので
必ずログの方を先に書き出すようにします。
チェックポイントでは瞬間的に全タスク(プロセス)を停めて、
バッファリングされているR/Wログの書き出しとDBの書き出しをした後、
チェックポイントログを書き出します。ここで、バッファリングが0になります。
> この更新前情報というのはいつログファイルに書き出されたのでしょうか?
上の説明でほぼお判りだと思いますがDBを読み込んだら、
即、更新前ログを書きます。
ただ、本当にログに書き出す場合と、メモリー上のバッファーに書き出す場合とが
あるということです。
ご返答ありがとうございます。
トランザクション開始時と障害時までの間にチェックポイントが無いという前提で書いてました。言葉足らずですみません。
なのでトランザクション障害時に更新前ログがバッファには存在しても、
チェックポイントを通っていないのでログファイルには存在しないと思うのです。
もしくはトランザクション開始時より前のチェックポイントで記録した更新前ログを使うということだとすると、
チェックポイント時点には戻れてもその後にあったトランザクション開始時には戻れない気がするのです…。
チェックポイント時の動作の説明はとてもわかりやすかったです。ありがとうございます。
No.3
- 回答日時:
あくまでも情報処理試験対策として私が勉強し、理解している範囲でのお答えになりますが。
チェックポイント時にはトランザクションが開始されていない。ということは、DBが更新されていない。ということになります。
「ログファイルの更新前情報によってロールバックする」ということは、トランザクション開始前の状態にするということになりますので、その後はトランザクションの再処理によって、障害発生時の状態まで戻します。
ご返答ありがとうございます。
ロールバック自体はなんとなくわかるのですが、更新前情報がログファイルに書き出されるタイミングが気になったので・・・。
質問が分かりづらくてすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
医師・看護師・助産師
薬剤師・登録販売者・MR
医療事務・調剤薬局事務
歯科衛生士・歯科助手
臨床検査技師・臨床工学技士
理学療法士・作業療法士・言語聴覚士
臨床心理士・心理カウンセラー・ソーシャルワーカー
介護福祉士・ケアマネージャー・社会福祉士
弁護士・行政書士・司法書士・社会保険労務士
フィナンシャルプランナー(FP)
中小企業診断士
公認会計士・税理士
簿記検定・漢字検定・秘書検定
情報処理技術者・Microsoft認定資格
TOEFL・TOEIC・英語検定
建築士
インテリアコーディネーター
宅地建物取引主任者(宅建)
不動産鑑定士・土地家屋調査士
マンション管理士
電気工事士
美容師・理容師
調理師・管理栄養士・パティシエ
シェフ
保育士・幼稚園教諭
教師・教員
国家公務員・地方公務員
警察官・消防士
その他(職業・資格)
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日商PC(データ活用) 3級を受...
-
Excelの「アクセシビリティ 検...
-
mos excel スペシャリストと、...
-
基本情報技術者試験(FE)と日...
-
受験票
-
日商PC(データ活用)と、MOSの...
-
ITパスポート 1週間で取るとい...
-
応用情報技術者試験は転職でど...
-
基本情報技術者試験の勉強して...
-
MOSのExcelとるのに1カ月もかか...
-
基本情報技術者試験の参考書か...
-
至急回答お願いいたします。 1...
-
情報処理の問題なんですけど、...
-
大東亜帝国クラスの学歴で新卒...
-
MOS Excelに出てくるtextやcsv...
-
Excelの質問で票の途中に...
-
基本情報技術者試験の勉強をし...
-
ITパスポートは、初級システム...
-
ITパスポート試験はITもストラ...
-
ITパスポートと基本情報技術者...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英文にしていただきたいのですが。
-
ぐるなびPRO 特集・新着の更新...
-
大判ハガキの送料について
-
気象予報士
-
ロールバックについて
-
☆★運転免許取得時の交通安全協...
-
退職の挨拶状のはがきの種類
-
ワードに葉書を4面付けする方法...
-
溶接のサーベイランスが来まし...
-
交通安全協会費って・・・
-
床屋で写真を見せてこんなふう...
-
表札に番地を入れる場合
-
アルバイト先で学生証の提示を...
-
北海道の住所表記について
-
会社宛の書留郵便の受け取り
-
住所をコロコロ変える会社
-
起点住所とは何ですか? 赴任旅...
-
イメージ写真のことを何て言い...
-
エアメール(会社宛)の宛名の...
-
知り合いに聞いたのですが、美...
おすすめ情報