• ベストアンサー

ロールフォワードとロールバックの違いは

コンピュータの勉強をしているのですが、ロールフォワードとロールバックの違いは何でしょうか?

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

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

データベースでは一つのトランザクションが複数の表(あるいは行)を更新するのが普通です。 何らかの原因でトランザクション処理が中断(中止)された場合、複数の表の間に矛盾が生じることは避けなければいけません。 方法は一つ、更新前ジャーナルを使ってトランザクション開始前に戻すことです。これがロールバックです。 次にデータベース処理の高速化のためにジャーナルやデータベース更新情報をメモリーにバッファリングした場合です。 バッファーが蒸発する危険性がありますので時々全書き込みをやってバッファーを空にします。これがチェックポイントです。 ことが起こればジャーナルで最新のチェックポイントまでロールバックし、そのあとトランザクション終了ジャーナルを見つけて 終了ジャーナルがあればそこまで更新後ジャーナルで前進(ロールフォワード)し、 終了ジャーナルが見つからない場合トランザクション開始ジャーナルまで更新前ジャーナルで後退(ロールバック)をします。 重ねて言いますがトランザクション開始ジャーナルの所まで戻すのがロールバック、 トランザクション終了ジャーナルのところまで進めるのがロールフォワードです。 これらのことは原子性という言葉で表せます。Wikipediaによると Atomicity トランザクションに含まれるタスクが全て実行されるか、あるいは全く実行されないことを保証する性質をいう。日本語ではアトミック性または原子性とも呼ばれる。 口座Aから口座Bに対し1万円送金する場合を考えたとき、送金操作は次の2操作によって行われる。 口座Aの残高から1万円を引く 口座Bの残高に1万円を加える Atomicityが保証されるとは、上の操作1、2が全て行われるか、あるいは全く行われないことを指す。どちらか片方だけが実行された場合、銀行全体の預金残高に矛盾が発生してしまう。

benchie8
質問者

お礼

回答ありがとうございました。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

Google画像検索 http://images.google.com/ で,キーワード「ロールフォワード ロールバック」を検索しましょう。図解つきのページがいくつもヒットするはずです。 分かりやすそうな解説ページを探していくつか目を通してみてください。 その上で,それでも不明な点があれば「このWebページの,この文章の意味が分からないのですが」と改めて質問を投げてみればよいでしょう。

benchie8
質問者

お礼

回答ありがとうございました。

  • dr-9
  • ベストアンサー率47% (24/51)
回答No.1

ロールフォワードは、データベースの更新中に障害が発生した時に、データを障害発生直前までさかのぼり、そこから処理を再開することです。 ロールバックは、データベースのトランザクション処理に於いてデータ更新の一貫性が保てない状態となった時、トランザクション開始前のデータに戻す処理をいいます。

benchie8
質問者

お礼

回答ありがとうございました。

関連するQ&A

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

      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の更新前ファイルを使ってデータをロールバックする必要はないように思えます。 どこで間違っているでしょうか。。。

  • ロールバック

    早速ご教示ください。 DELETE FROM テーブル名 この構文を用いて、テーブルを削除したいと考えております。 参考書で調べたところ、TURNCATE TABLE文だとロールバックできないが、処理が高速と記述してあります。 DELETE FROM TABLE文だとロールバックできない状態での削除は注意してくださいとあります。 つまりは、DELETE FROM TABLE文だとロールバックできる状態での削除なら削除前に戻せると言うことなのでしょうか? (1)ロールバックってなんですか? (2)ロールバックできる状態、できない状態。その両方の状態をご教示く ださい。  またロールバックはどのように行うのでしょうか? 以上、ご教示の程宜しくお願い致します。

  • ロールバック

    WMP10のロールバックがどうしても失敗してしまいます。(最新版です。) 一体どうすればよいのでしょうか? よろしくお願いします。

  • 階層型データベースとVSAMの違い

    階層型データベースとVSAMの違い メインフレームの話です。 階層型DB(IMS-DB)について勉強しているのですが、 VSAMとの違いがよくわかりません。 どちらも、HIDAMやHSAMもあり、CI単位にデータが 入っているとマニュアルに書いてありました。 実は、同じものなのでしょうか? それとも、DBはロールバックやロールフォワードができ VSAMはできないとかの違いだけあるのでしょうか?(よくわかりませんが) VSAMと階層DBは、何が違うのか?と言われたときに、 「こう違います。」と説明できるようになりたいです。 よろしくおねがいします。

  • MySQLでロールバックできない!

    JDBCでMySQLに接続し、ロールバック/コミットしたいのですが、以下の例外が発生してロールバックできません。 java.sql.SQLException: General error: Warning: Some non-transactional changed tables couldn't be rolled back 同じコードで、PostgreSQLでは問題なく動作します。 MySQLはDBMSとして自動コミットになっているとのことですが、JDBCからロールバックしたいときはどうすれば良いのでしょうか? 有名な問題なのかもしれませんが、回避策が見つけられませんでした。 ご回答、よろしくお願いします。

    • ベストアンサー
    • Java
  • ロールバックについて

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

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

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

  • WidowsMediaPlayer10~9のロールバックについて

    XPSP2ですが、「プログラムの追加と削除」から以前アップデイトしたMediaPlayer10から9にロールバックしようとしたところ、ロールバックに失敗しましたと表示されました。 どうしたら、元のバージョン9に戻すことができるのでしょうか。 ちなみに、MediaPlayerのセキュリティ問題の修正プログラム(KB917734)とMediaFormatRuntimeをインストールしています。