• ベストアンサー

ロールバックとチェックポイント関連で質問です。

下記のパターンの際に、transaction logファイルに書き込まれるのか否かを教えて下さい。 A:チェックポイントをまたがったトランザクションで完了後にシステム障害が発生した場合。 =>私の認識では、ロールフォワードによって、データベースとtransaction logファイルにデータが書き込まれる。と考えているのですが、正しいでしょうか? B:チェックポイントを一度も通らずに、トランザクションが完了。完了後にシステム障害が発生。 =>Aと同じですか? C:トランザクション実行中にシステム障害が発生した場合。 =>ロールバックされて、transaction logファイルにのみ書き込まれて、データベースには書き込まれない。というのは正しいでしょうか? よろしくお願いします^^

質問者が選んだベストアンサー

  • ベストアンサー
  • fu_u_ka_i
  • ベストアンサー率51% (15/29)
回答No.1

何を知りたいのか良くわからない感じですが.. AおよびB: トランザクションログは、ロールフォワードによって書かれるモノではない。 障害回復の際、トランザクションログを使って、データベースを復旧する。 C: 未完了トランザクションは、トランザクションログを使って、 トランザクション開始前の状態にロールバックする。 質問された内容は、参考URLに示した1ページに書かれているので 読んでください。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/architec/8_ar_da2_876t.asp
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • チェックポイントとロールバックのタイミングについて。

    下記のパターンの際に、transaction logファイルに書き込まれるのか否かを教えて下さい。 A:チェックポイントをまたがったトランザクションで完了後にシステム障害が発生した場合。 =>私の認識では、ロールフォワードによって、データベースとtransaction logファイルにデータが書き込まれる。と考えているのですが、正しいでしょうか? B:チェックポイントを一度も通らずに、トランザクションが完了。完了後にシステム障害が発生。 =>Aと同じですか? C:トランザクション実行中にシステム障害が発生した場合。 =>ロールバックされて、transaction logファイルにのみ書き込まれて、データベースには書き込まれない。というのは正しいでしょうか? よろしくお願いします^^

  • 障害回復(ロールバックとロールフォワード)について

      t0  t1  t2   t3   t4   t5        |           | A s---e   |           |         |           | B s-------------e        |         |           | C  s------------------------|         |           | D       |   s----e    |         |           | E       |    s---------| ※t2はチェックポイント、t5は障害発生 ロールバックとロールフォワードについて教えてください。 (1)BとEについてロールフォワードによる回復が必要とのことですが、障害発生前にトランザクションが終了しており、コミットされているはずなのに、なぜロールフォワードが必要なのでしょうか? (2)Aはチェックポイント前に処理が完了しているため、回復処理は不要とのことですが、BとEが必要でAが不要の違いわかりません。 よろしくお願いします。

  • ロールバックについて

    トランザクション障害が起きた場合、 ログファイルの更新前情報によってロールバックするらしいのですが、 この更新前情報というのはいつログファイルに書き出されたのでしょうか?

  • ロールバックとロールフォワード(データベーススペシャリスト試験)

      t0  t1  t2   t3   t4   t5         |           | A s---e  |           |         |           | B s-------------e       |         |           | C s------------------------|         |           | D       |   s----e   |         |           | E       |   s---------| 図がずれていたらごめんなさい。 A~Eはトランザクション sはトランザクション開始 eはコミット t0~t5は時間を表していて 時間t2でチェックポイント 時間t5で障害が発生したとします。 参考書によると復旧時に CとEはロールバックを行い、 BとDはロールフォワードを行うとあります。 B、C、Dはわかるのですが Eにロールバックが必要な理由がわかりません Eを再び実行するためにはデータは トランザクションを開始したt3時点の状態であればよいはずです。 そしてチェックポイント(=t2)の状態はt3と同じなので、 Eの更新前ファイルを使ってデータをロールバックする必要はないように思えます。 どこで間違っているでしょうか。。。

  • データベースの質問です。下記の四択について、どうい

    データベースの質問です。下記の四択について、どういうものか根拠を教えて下さい システム障害発生時には,データベースの整合性を保ち,かつ,最新の データベース状態に復旧する必要がある。このために,DBMSがトランザクション のコミット処理完了とみなすタイミングとして,適切なものはどれか。  ア アプリケーションの更新命令完了時点  イ チェックポイント処理完了時点  ウ ログバッファへのコミット情報書込み完了時点  エ ログファイルへのコミット情報書出し完了時点

  • ロールバックの逆の言葉は?

    現在ファイルのバックアップとバージョン管理を行う簡単なツールを作成しているのですが、その際にロールバックから復帰するいい言葉がわからず悩んでいます。 例えばチェックポイントが10個ある場合(v1~10)、バージョン6(過去のバージョン)に戻る作業がロールバックです。 その後、再びバージョン10に復帰することも可能で、この終端のバージョンに復帰する作業のよさげな名前を探しています。 昔VSS少し使っていたことがあって、ロールバックという言葉は覚えていたのですが、残念ながらそのもどし方の名前は忘れてしまいました。 よろしくおねがいします。

  • インポートからのロールフォワードは可能?

    同じ構造のデータベースAとBがあります。 データベースAを実際に使用し、Bは予備機とします。 一日一回の割合でAから全テーブルのデータをエクスポートしてBにインポートしております。 Aのデータファイルに障害が発生した場合、 BのインポートデータとAのアーカイブログを用いて、障害直前までの復旧は可能でしょうか?

  • ロールバックできず困っています。

    1.テーブルAに、新たに列を追加したテーブルBを作成。 ↓ 2.テーブルAのデータをテーブルBにコピー。 ↓ 3.テーブルAを削除。 ↓ 4.テーブルBの名前をテーブルAに変更。 という一連の処理があります。 これらの処理でエラーが発生した場合、処理実行前の状態に戻したいのですが、ロールバックできずに消されるはずだった不要なテーブルが残ってしまいます。 何か方法はありますか?よろしくお願いします。

  • ActiveX DLLでのオラクルのトランザクション

    VB6とOracle9iのOO4Oにてシステムを構築しておりますが、一つ解らないことがありましたので、どなたかご教授願います。 あるPG(通常のEXEです)よりActiveX DLLを呼び出してOracleの表へデータを挿入する処理があります。呼び出し元となる通常のEXEはまずOracleの接続処理を記述しています。正常に接続が完了したならトランザクションを開始し、表のDeleteを実行します。その後ActiveX DLLを呼び出して表のInsertを実行しています。再び通常のEXEに制御が戻り、トランザクションの完了(COMMIT)または破棄(ROLLBACK)を行います。しかし、最後のトランザクションのCOMMIT(ROLLBACK)を行うと『コッミト(ロールバック)時にアクティブなトランザクションがありません』というエラーが発生してしまいます。正しくBegin Transactionを実行しているのに、これはどういうこと何のでしょうか。ご存知の方がいらっしゃましたら教えてください。

  • 「トランザクション処理」について質問

    Oracle Database 11g の 「トランザクション処理」について質問。 認識:UPDATE文が発行されるとキャッシュに更新前の情報(UNDOセグメント)が生成される。 REDOログバッファにREDOログを生成する。 UPDATE文が正しく行われたことを、プロンプトに返す。 この時、REDOログファイルにはまだ書き込まれていない。 データファイルにも書き込まれていない。 質問:このコミットされていない状態で、障害が起きた(メモリが飛んだ)場合、 コミット前の状態にしか戻れないですか? データベースの概要のACID特性の一貫性は、 トランザクションの一貫性ということですか? また、UPDATA文を発行し、プロンプトが返ってくるが、 これは嘘になりえるっていうことでしょうか? よろしくおねがいします。