JPH0991183A - データベースリカバリ装置 - Google Patents

データベースリカバリ装置

Info

Publication number
JPH0991183A
JPH0991183A JP7249536A JP24953695A JPH0991183A JP H0991183 A JPH0991183 A JP H0991183A JP 7249536 A JP7249536 A JP 7249536A JP 24953695 A JP24953695 A JP 24953695A JP H0991183 A JPH0991183 A JP H0991183A
Authority
JP
Japan
Prior art keywords
database
transaction
checkpoint
journal
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7249536A
Other languages
English (en)
Inventor
Yasuko Horiuchi
谷州子 堀内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP7249536A priority Critical patent/JPH0991183A/ja
Publication of JPH0991183A publication Critical patent/JPH0991183A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】システムの一貫性および性能を損なうことなく
データベースを迅速に復元することを可能とするデータ
ベースリカバリ装置を提供する。 【解決手段】障害の発生に伴って計算機システムの状態
が直前のチェックポイント取得時の状態に復元されたと
きに、まず、そのチェックポイント取得時に実行中のト
ランザクションすべてをトランザクション強制終了部2
にて終了させ、障害回復部12が、ジャーナルファイル
15およびジャーナル保証部1に記録されたジャーナル
に基づいて、コミットしたトランザクションが変更した
データの内容をデータベース16に反映させ、アボート
したトランザクションが変更したデータの内容を無効化
することによりデータベース16を障害発生時の状態ま
で回復させることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、チェックポイン
トリスタート機能を有してなる計算機システムに適用し
て好適なデータベースリカバリ装置に係り、特にシステ
ムの一貫性を損なうことなくデータベースを迅速に復元
することを可能とするデータベースリカバリ装置に関す
る。
【0002】
【従来の技術】近年の計算機システムの普及にはめざま
しいものがあり、それに伴って高度な耐障害性が要求さ
れてきている。そして、この耐障害性を実現するものと
してフォールトトレラント方式が存在する。
【0003】このフォールトトレラント方式を適用した
計算機システムの一つとして、プロセッサがキャッシュ
内のデータを定期的に主記憶装置に書き戻しておき、あ
るプロセッサが障害を起こしたときに、直前に書き戻さ
れたキャッシュの状態からそのプロセッサ上で実行中の
プロセスを再起動するといったものがある。このような
方式を持つフォールトトレラント計算機としては、たと
えば、「文献:A. Bernstein, "Sequoia: A Fault-Tole
rant Tiqhtly Coupled Multiprocessor for Transactio
n Processing" , IEEE COMPUTER, Vol. 21, No.2, Feb.
1988"」 で述べられているようなマルチプロセッサ計算
機が存在する。
【0004】一方、トランザクション処理では、完全に
すべての操作がデータベースに対して行なわれたか、ま
たはまったく行なわれなかったかのいずれかになるよう
に保証される。そのため、トランザクションの操作が完
全に行なわれた後にコミット処理が行なわれ、変更した
データが確定される。
【0005】トランザクションがコミットせずに終了し
た場合(アボート)、データベースの変更されたデータ
は元に戻される。この処理をロールバックと呼ぶ。この
コミット処理を高速に行なうために、ジャーナルとデー
タベースチェックポイントとを採取するデータベース管
理システムが存在する。
【0006】ジャーナルは、データベースに対して行な
った変更を書き込むファイルであり、トランザクション
のコミット時に、ジャーナルを二次記憶装置に書き込む
ことでデータベースの変更を保証し、実際のデータベー
ス(ディスク)への書き込みを非同期に行なうことが可
能となる。一方、データベースチェックポイントは、メ
モリ上で行なわれたデータの変更を定期的にディスクに
反映させるものである。このデータベースチェックポイ
ントが実行されると、直前のデータベースチェックポイ
ント以前のジャーナルは破棄される。データベースの復
旧は、直前のデータベースチェックポイントによって蓄
積されたデータベースのデータに対し、ジャーナルを順
次読み込んで更新していくことにより、データベースを
元の状態に戻す。この処理をロールフォワードと呼ぶ。
【0007】ここで、図11乃至図13を参照して、従
来のフォールトトレラント計算機を含む分散トランザク
ション処理の実行中の故障によるプロセスの再起動の動
作原理を説明する。
【0008】図11に示したように、計算機A21は、
それぞれにデータキャッシュ(キャッシュ23a〜23
c)をもつ複数のプロセッサ(CPU)22a〜22c
と、一つの主記憶装置(メモリ)24からなるマルチプ
ロセッサ計算機であり、計算機B26は、計算機A21
とネットワークを介して接続される計算機である。この
計算機A21において、プロセッサ22a〜22cは、
キャッシュ23a〜23c内のデータをチェックポイン
トによって定期的に主記憶装置24に書き戻し、いずれ
かのプロセッサが障害を起こしたときに、主記憶装置2
4から直前のチェックポイントで書き戻したキャッシュ
の状態を知得して、プロセスを再起動することによりフ
ォールトトレラントを実現している。
【0009】図12は、計算機A21におけるトランザ
クションの処理の状態を示した図である。縦軸は時間軸
を示しており、下にいくほど時間が経過しているものと
する。また、Tx1、Tx2、Tx3およびTx4は、
このシステム上で実行されたトランザクションである。
そして、T4はデータベースチェックポイントが行なわ
れた時間、T8はキャッシュデータをメモリに書き込む
チェックポイントが行なわれた時間、およびT10は故
障が発生した時間を示している。
【0010】トランザクションTx1は、時刻T1に始
まり、データaを変更し、コミット処理を行なって、時
刻T3に終了している。トランザクションTx2は、時
刻T2に始まり、データcを変更し、コミット処理を行
なって、時刻T5に終了している。トランザクションT
x3は、時刻T6に始まり、データaを変更し、続いて
データbを変更し、さらにデータbの値を計算機Bに送
信し、コミット処理を行なって、時刻T9に終了してい
る。トランザクションTx4は、時刻T7に始まり、デ
ータcを変更し、続いてデータbを変更し、時刻T10
の故障によって中断している。
【0011】図13は、前述した各時刻におけるジャー
ナルファイル、データベースのディスクの状態ならびに
メモリの状態、およびコミットにより確定されているデ
ータを示す図である。なお、このシステムにおいて、ジ
ャーナルは、コミット時にコミットしたトランザクショ
ンの分をディスクに書き込むものとする。
【0012】図13において、時刻T0は、各トランザ
クションが始まる前の状態である。ジャーナルファイル
は空で、データベースにおけるデータa、bおよびcの
値はすべて0である。
【0013】時刻T3では、図12に示したように、ト
ランザクションTx1は終了しており、また、トランザ
クションTx2はデータcの変更を実行しているが終了
していない。したがって、メモリ24上のデータベース
ではデータaおよびcともに変更されており、データc
にはトランザクションTx2によるロックがかかってい
る。しかし、ディスク上のデータベース25には、デー
タの変更は反映されていないので、T0と変わらない。
ジャーナルファイルは、既に終了しているトランザクシ
ョンTx1のログを蓄積している。この時点で確定して
いるデータは、トランザクションTx1のみが終了して
いることから、トランザクションTx1が変更したデー
タaの値が1に変更され、データbおよびcの値は0の
ままである。
【0014】時刻T4において、データベースチェック
ポイントが発生すると、メモリ上にあるデータベースが
ディスク上に反映され、それまでに蓄積されたジャーナ
ルが削除される。よって、メモリ上のデータベースとデ
ィスク上のデータベースは同じとなり、ジャーナルファ
イルは空になる。時刻T3から、終了しているトランザ
クションはないので、確定しているデータは時刻T3と
変わらない。
【0015】また、時刻T8において、チェックポイン
トが起きると、データキャッシュ23a〜23cがメモ
リに反映される。図12に示したように、時刻T4から
時刻T8までの処理として、トランザクションTx2の
コミット、トランザクションTx3によるデータaの変
更、およびトランザクションTx4によるデータcの変
更が存在し、また、トランザクションTx3およびTx
4はコミットしておらず実行中である。したがって、ジ
ャーナルファイルは、データベースチェックポイント
(T4)以降に終了したトランザクションであるトラン
ザクションTx2のログを蓄積している。
【0016】メモリ24上のデータベースでは、データ
aをトランザクションTx3がロックをかけて値を2に
変更しており、データcをトランザクションTx4がロ
ックをかけて値を2に変更している。また、ディスク上
のデータベース25は、データベースチェックポイント
時点でのデータから変更されていない。時刻T4から時
刻T8の間に、トランザクションTx2がコミットして
いることから、トランザクションTx2が変更したデー
タcの値が1に変更され、データaおよびbの値は時刻
T4と同じである。
【0017】時刻T9において、トランザクションTx
3が終了すると、ジャーナルファイルにトランザクショ
ンTx3のログが書き込まれる。メモリ上のデータベー
ス25においては、トランザクションTx3がデータa
を2に、データbを1に変更してロックを解除してお
り、データcは時刻T8と変わらず、トランザクション
Tx4のロックを獲得したままになっている。ディスク
上のデータベース25は、データベースチェックポイン
ト時点でのデータから変更されていない。時刻T9にお
いては、トランザクションTx3がコミットしたので、
トランザクションTx3によるデータaおよびbの値の
更新が確定し、それぞれ2、1となる。
【0018】時刻T10で故障が発生する直前では、ジ
ャーナルログファイルは、時刻T9と変わらず、ディス
ク上のデータベース25は、データベースチェックポイ
ント時点でのデータから変更されていない。
【0019】メモリ上のデータベース25は、トランザ
クションTx4によってデータbが2に変更されてロッ
クをかけられ、データcは時刻T8から変わらず、ロッ
クがかけられている。時刻T9から、終了しているトラ
ンザクションはないので、確定しているデータはT9と
変わらない。
【0020】そして、時刻T10で故障が発生すると、
メモリの状態やディスクの状態がチェックポイントの取
得された時刻T8に戻り、処理が再開されてフォールト
トレラントが実現される。
【0021】しかしながら、各プロセスはT8より再起
動するが、この再起動が故障時までに行なわれた処理と
同じ順序で行なわれとは限らない。したがって、同じデ
ータbを変更するトランザクションTx3およびTx4
において、トランザクションTx4が先にデータbを変
更し、後からトランザクションTx3がデータbを変更
する可能性もある。この場合、トランザクションTx4
がデータbの値を0から1に変更し、トランザクション
Tx3が1から2に変更して計算機B26にbの値2を
送信する。計算機B26では、計算機A21の前にデー
タbの値として1を受け取ってコミットしているので、
計算機A21の故障までに実行した内容との一貫性がと
れなくなってしまう。
【0022】なお、通信やディスクアクセスを含むすべ
てのI/O処理をチェックポイントまで待たせて実行す
ることにより、一貫性をとることも可能であるが、I/
O要求が起きてから実行するまでに待機時間を発生させ
てしまうために、システム性能を著しく悪化させてしま
う。
【0023】
【発明が解決しようとする課題】以上詳述したように、
従来の方式では、最後のチェックポイント以降で故障発
生までにコミットした分散トランザクションにおいて、
システムに故障が発生してプロセスが最後のチェックポ
イントから処理を再実行するときに、同じデータを変更
するトランザクションの実行順序が異なってしまう場合
があり、この場合に一旦ネットワークを介して接続され
た計算機に送信したデータが、故障発生前と再実行後と
で異なってしまうこととなり、故障発生前の実行内容と
の一貫性が必ずしもとれないといった問題があった。
【0024】また、他の計算機との通信などをチェック
ポイントまで待たせてから実行する方法があるが、通信
要求があってから実行するまでに待機時間を発生させて
しまうために、システム性能を著しく悪化させてしまう
といった問題があった。
【0025】本発明はこのような実情に鑑みてなされた
ものであり、システムの一貫性および性能を損なうこと
なくデータベースを迅速に復元することを可能とするデ
ータベースリカバリ装置を提供することを目的とする。
【0026】
【課題を解決するための手段】本発明のデータベースリ
カバリ装置は、計算機システムの状態を復元するための
チェックポイントを周期的に取得しながら処理を進めて
いき、障害が発生したときに、前記計算機システムの状
態を前記取得した直前のチェックポイント取得時の状態
に復元して処理を再開するフォールトトレラント計算機
システムのデータベースリカバリ装置において、前記計
算機システムにて実行されたトランザクションが更新し
たデータの内容およびそのトランザクションのコミット
またはアボートを示す情報を含むジャーナルをジャーナ
ルファイルに記録するジャーナル記録手段と、前記取得
した直前のチェックポイント以降についての前記ジャー
ナルを保持するジャーナル保証手段と、コミットしたト
ランザクションにより更新され、その更新がいまだ主記
憶装置から二次記憶装置に反映されていないデータを定
期的に二次記憶装置に反映させるとともに、この反映と
同期して前記ジャーナルファイルをクリアすることによ
りデータベースチェックポイントを取得するデータベー
スチェックポイント取得手段と、障害の発生に伴って前
記計算機システムの状態が前記取得した直前のチェック
ポイント取得時の状態に復元されたときに、そのチェッ
クポイント取得時に実行中のトランザクションすべてを
終了させるとともに、前記ジャーナルファイルおよび前
記ジャーナル保証手段に記録されたジャーナルに基づい
て、コミットしたトランザクションが変更したデータの
内容をデータベースに反映させ、アボートしたトランザ
クションが変更したデータの内容を無効化することによ
りデータベースを障害発生時の状態まで回復させる障害
回復手段とを具備してなることを特徴とする。
【0027】本発明のデータベースリカバリ装置によれ
ば、障害の発生に伴って、計算機システムが直前のチェ
ックポイント取得時から処理を再開する際に、そのチェ
ックポイント取得時に実行中のトランザクションすべて
を終了させ、最後のデータベースチェックポイントにお
けるデータベースと、ジャーナル記録手段によってジャ
ーナルファイルに記録されたデータベースチェックポイ
ントから直前のチェックポイントまでのジャーナルと、
ジャーナル保証手段より得られる直前のチェックポイン
トから故障発生までのジャーナルとによって、データベ
ースの障害回復処理を実施する。
【0028】これにより、システムの一貫性を損なうよ
うなことなくデータベースの迅速な障害回復処理が可能
となる。また、本発明のデータベースリカバリ装置は、
計算機システムの状態を復元するためのチェックポイン
トを周期的に取得しながら処理を進めていき、障害が発
生したときに、前記計算機システムの状態を前記取得し
た直前のチェックポイント取得時の状態に復元して処理
を再開するフォールトトレラント計算機システムのデー
タベースリカバリ装置において、前記計算機システムに
て実行されたトランザクションが更新したデータの内容
およびそのトランザクションのコミットまたはアボート
を示す情報を含むジャーナルをジャーナルファイルに記
録するジャーナル記録手段と、前記取得した直前のチェ
ックポイント以降の前記ジャーナルを保持するジャーナ
ル保証手段と、コミットしたトランザクションにより更
新され、その更新がいまだ主記憶装置から二次記憶装置
に反映されていないデータを定期的に二次記憶装置に反
映させるとともに、この反映と同期して前記ジャーナル
ファイルをクリアすることによりデータベースチェック
ポイントを取得するデータベースチェックポイント取得
手段と、障害の発生に伴って前記計算機システムの状態
が前記取得した直前のチェックポイント取得時の状態に
復元されたときに、そのチェックポイント取得時に実行
中のトランザクションすべてを終了させるとともに、前
記データベースチェックポイント取得手段によりそのチ
ェックポイント取得時におけるデータベースチェックポ
イントを取得した後、前記ジャーナル保持手段に記録さ
れたジャーナルに基づいて、コミットしたトランザクシ
ョンが変更したデータの内容をデータベースに反映さ
せ、アボートしたトランザクションが変更したデータの
内容を無効化することによりデータベースを障害発生時
の状態まで回復させる障害回復手段とを具備してなるこ
とを特徴とする。
【0029】本発明のデータベースリカバリ装置によれ
ば、障害の発生に伴って、計算機システムが直前のチェ
ックポイントから処理を再開する際に、そのチェックポ
イント取得時に実行中のトランザクションすべてを終了
させ、データベースチェックポイント取得手段によって
そのチェックポイント取得時におけるデータベースのチ
ェックポイントを取得した後に、このデータベースチェ
ックポイント後のデータベースと、ジャーナル保証手段
より得られる直前のチェックポイントから故障発生まで
のジャーナルとによって、データベースの障害回復処理
を実施する。
【0030】これにより、ジャーナルファイルに記録さ
れたデータベースチェックポイントから直前のチェック
ポイントまでのジャーナルによるデータベースの障害回
復処理が不要となり、さらに迅速な障害回復処理が可能
となる。
【0031】また、本発明のデータベースリカバリ装置
は、計算機システムの状態を復元するためのチェックポ
イントを周期的に取得しながら処理を進めていき、障害
が発生したときに、前記計算機システムの状態を前記取
得した直前のチェックポイント取得時の状態に復元して
処理を再開するフォールトトレラント計算機システムの
データベースリカバリ装置において、前記計算機システ
ムにて実行されたトランザクションが更新したデータの
内容およびそのトランザクションのコミットまたはアボ
ートを示す情報を含むジャーナルをジャーナルファイル
に記録するジャーナル記録手段と、前記取得した直前の
チェックポイント以降の前記ジャーナルを保持するジャ
ーナル保証手段と、コミットしたトランザクションによ
り更新され、その更新がいまだ主記憶装置から二次記憶
装置に反映されていないデータを定期的に二次記憶装置
に反映させるとともに、この反映と同期して前記ジャー
ナルファイルをクリアすることによりデータベースチェ
ックポイントを取得するデータベースチェックポイント
取得手段と、前記ジャーナル保証手段に記録されたジャ
ーナルに基づいて、コミットしたトランザクションが変
更したデータの内容をデータベースに反映させ、アボー
トしたトランザクションが変更したデータの内容を無効
化するトランザクションを発生させる障害回復トランザ
クション発生手段と、障害の発生に伴って前記計算機シ
ステムの状態が前記取得した直前のチェックポイント取
得時の状態に復元されたときに、そのチェックポイント
取得時に実行中のトランザクションすべてを終了させる
とともに、前記障害回復トランザクション発生手段を起
動することにより通常のトランザクションと並列にデー
タベースを障害発生時の状態まで回復させる障害回復手
段とを具備してなることを特徴とする。
【0032】本発明のデータベースリカバリ装置によれ
ば、障害の発生に伴って、計算機システムが直前のチェ
ックポイント取得時から処理を再開する際に、そのチェ
ックポイント取得時に実行中のトランザクションすべて
を終了させ、障害回復トランザクション発生手段によっ
てジャーナル保証手段より得られる直前のチェックポイ
ントから故障時点までのジャーナルを順次読み出してデ
ータベースを回復するトランザクションを発生させる。
【0033】このトランザクションは、たとえば回復作
業を必要とするデータすべてについてのロックを獲得
し、その作業が終了したときにロックを解放するといっ
た処理を行なう。すなわち、回復作業が不要なデータの
みにアクセスする通常トランザクションは、同時に実行
することができることとなる。
【0034】これにより、データベースの障害回復処理
を通常のシステム処理と並列に行なうことができること
となり、システムの稼働率を飛躍的に向上させることが
できることとなる。
【0035】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。ここでは、図11に示したシステム
構成において、図12に示した手順でトランザクション
処理が行なわれたときの本発明のデータベースリカバリ
装置の動作について説明する。 (第1実施形態)図1は第1実施形態のデータベースリ
カバリ装置を適用してなる計算機システムのシステム構
成図である。
【0036】この計算機システムにて動作するデータベ
ース管理システム(DBMS)10は、ディスク上にジ
ャーナルファイル15およびデータベース16、メモリ
上にデータベース14がそれぞれ設けられており、トラ
ンザクションは、メモリ上のデータベース14を介して
ディスク上のデータベース16にアクセスする。
【0037】また、データベース管理システム10は、
データベースコミット時にジャーナルログをジャーナル
ファイル15へ書き込み、トランザクションによって行
なわれたデータベースの変更やコミット/アボートを二
次記憶に書き出すジャーナル記録部11、メモリ上のデ
ータベース14をディスク上のデータベース16に反映
するデータベースチェックポイント処理部13、および
データベースチェックポイントとジャーナルログとによ
ってデータベースを復旧する障害回復部12の各処理部
を備えている。
【0038】また、同実施形態に係る計算機システム
は、このような構成をとるデータベース管理システム1
0とともに、計算機システムに故障が発生してチェック
ポイントから再実行するときに、直前のチェックポイン
トから故障時点までのジャーナルログを保管して適宜取
り出せるようにするジャーナル保証部1と、そのチェッ
クポイント時に実行中のトランザクションを強制的に終
了させるトランザクション強制終了部2とを備えてい
る。
【0039】図2は、故障が発生する直前、故障が発生
した直後、およびその後の復旧手順によるジャーナルフ
ァイル、データベースのディスクの状態およびメモリの
状態を示した図である。
【0040】図2に示したように、故障が発生する直前
は図13のT10と同じである。この時点で確定されて
いるデータは、 a=2 b=1 c=1 となっている。
【0041】しかしながら、故障が発生して直前のチェ
ックポイントから処理を再実行する際、メモリとディス
クの状態がチェックポイントの起きた時点に戻るので、
図13の時刻T8と同じになり、確定されたデータも a=1 b=0 c=1 となってしまう。
【0042】そこで同実施形態では、処理を再実行する
前に、まずトランザクション強制終了部2によって、チ
ェックポイント時点で実行中であるトランザクションT
x3およびTx4を強制終了させる。トランザクション
Tx3およびTx4が使用しているメモリ上のデータベ
ース14のデータであるデータaおよびデータcは、ロ
ックが外され、トランザクションTx3およびTx4の
実行前の値に戻される。
【0043】そして、ジャーナル保証部1によって、直
前のチェックポイント(T8)から故障時点(T10)
までにコミットしたトランザクションTx3のジャーナ
ルである T9:Tx3:a=2 T9:Tx3:b=1 を取り出して、ジャーナルファイルに追加する。
【0044】その後、障害回復部12が、ジャーナルフ
ァイルを順に読み込んで、データベースチェックポイン
ト(T4)以降のデータベースの更新を反映し、データ
ベースを、故障時点まで復旧する。
【0045】復旧が完了すると、データベースは、故障
直前で確定したデータと同じになり、故障発生までにコ
ミットしたトランザクションによるデータベースの変更
が反映されたデータベースとなる。
【0046】ここで、図3を参照して同実施形態におけ
るデータベースリカバリの動作手順を説明する。計算機
システムに故障が発生した場合、プロセスの状態がチェ
ックポイントの時点まで戻されるが、同実施形態の計算
機システムでは、再実行が行なわれる前に、まずトラン
ザクション強制終了部2により実行中のトランザクショ
ンのプロセスを削除し(図3のステップS11)、メモ
リ上のデータベース14のロールバックを行なう(図3
のステップS12)。次に、ジャーナル保証部1によっ
て直前のチェックポイントから故障時点までのジャーナ
ルを取り出して(図3のステップS13)、この取り出
したジャーナルをジャーナルファイルに追加する(図3
のステップS14)。そして、障害回復部12によりジ
ャーナルを読み込んでデータベースを復旧し(図3のス
テップS15)、データベースのリカバリを完了する。
【0047】これにより、トランザクションの再実行を
行なうことなく故障時点までに実行されたトランザクシ
ョンによるデータの変更を再現することになり、システ
ムの一貫性を保ちつつ迅速なリカバリを行なうことがで
きる。 (第2実施形態)図4は第2実施形態のデータベースリ
カバリ装置を適用してなる計算機システムのシステム構
成図である。
【0048】この計算機システムにて動作するデータベ
ース管理システム(DBMS)10は、ディスク上にジ
ャーナルファイル15およびデータベース16、メモリ
上にデータベース14がそれぞれ設けられており、トラ
ンザクションは、メモリ上のデータベース14を介して
ディスク上のデータベース16にアクセスする。
【0049】また、データベース管理システム10は、
データベースコミット時にジャーナルログをジャーナル
ファイル15へ書き込み、トランザクションによって行
なわれたデータベースの変更やコミット/アボートを二
次記憶に書き出すジャーナル記録部11、メモリ上のデ
ータベース14をディスク上のデータベース16に反映
するデータベースチェックポイント処理部13、および
データベースチェックポイントとジャーナルログとによ
ってデータベースを復旧する障害回復部12の各処理部
を備えている。
【0050】また、同実施形態に係る計算機システム
は、このような構成をとるデータベース管理システム1
0とともに、計算機システムに故障が発生して、チェッ
クポイントから再実行するときに、データベースチェッ
クポイント処理部13を起動して、チェックポイント時
におけるデータベースチェックポイントを取得させる障
害回復時データベースチェックポイント起動部3と、直
前のチェックポイントから故障時点までのジャーナルロ
グを保管して適宜取り出せるようにするジャーナル保証
部1と、そのチェックポイント時に実行中のトランザク
ションを強制的に終了させるトランザクション強制終了
部2とを備えている。
【0051】図5は、故障が発生する直前、故障が発生
した直後、およびその後の復旧手順によるジャーナルフ
ァイル、データベースのディスクの状態およびメモリの
状態を示した図である。
【0052】図5に示したように、故障が発生する直前
は図13のT10と同じである。この時点で、確定され
たデータは、 a=2 b=1 c=1 となっている。
【0053】しかしながら、故障が発生して直前のチェ
ックポイントから処理を再実行する際、メモリとディス
クの状態がチェックポイントの起きた時点に戻るので、
図13の時刻T8と同じになり、確定されたデータも a=1 b=0 c=1 となってしまう。
【0054】そこで同実施形態では、処理を再実行する
前に、まずトランザクション強制終了部2によって、チ
ェックポイント時点で実行中であるトランザクションT
x3およびTx4を強制終了させる。トランザクション
Tx3およびTx4が使用しているメモリ上のデータベ
ース14のデータであるデータaおよびデータcは、ロ
ックが外され、トランザクションTx3およびTx4実
行前の値に戻される。
【0055】そして、障害回復時データベースチェック
ポイント起動部3によって、データベースチェックポイ
ントを起こし、直前のチェックポイントまでにコミット
されたトランザクションによる変更データをディスクに
書き込み、メモリ上のデータベース14とディスク上の
データベース16を同じものとして、ジャーナルファイ
ル15を空にする。
【0056】ここで、ジャーナル保証部1によって、直
前のチェックポイント(T8)から故障時点(T10)
までにコミットしたトランザクションTx3のジャーナ
ルである T9:Tx3:a=2 T9:Tx3:b=1 を取り出して、ジャーナルファイルに書き込む。
【0057】その後、障害回復部12が、ジャーナルフ
ァイルを順に読み込んで、チェックポイント(T8)以
降のデータベースの更新を反映し、データベースを故障
時点まで復旧する。
【0058】復旧が完了すると、データベースは、故障
直前で確定したデータと同じになり、故障発生までにコ
ミットしたトランザクションによるデータベースの変更
が反映されたデータベースとなる。
【0059】同実施形態では、データベースの復旧時
に、チェックポイント(T8)時点におけるデータベー
スチェックポイントを起こすことで、障害回復部12に
よるデータベースの復旧時に読み込むジャーナルが、第
1実施形態ように、データベースチェックポイント(T
4)からではなく、チェックポイント(T8)以降のロ
グのみとなるので、復旧作業がより迅速に行なえること
となる。
【0060】ここで、図6を参照して同実施形態におけ
るデータベースリカバリの動作手順を説明する。計算機
システムに故障が発生した場合、プロセスの状態がチェ
ックポイントの時点まで戻されるが、同実施形態の計算
機システムでは、再実行が行なわれる前に、まずトラン
ザクション強制終了部2により実行中のトランザクショ
ンのプロセスを削除し(図6のステップS21)、メモ
リ上のデータベース14のロールバックを行なう(図6
のステップS22)。次に、障害回復時データベースチ
ェックポイント起動部3によってメモリ上のデータベー
ス14をディスク上のデータベース16に反映させ(図
6のステップS23)、チェックポイントまでに書き込
まれたジャーナルを削除する(図6のステップS2
4)。これにより、チェックポイント時点でデータベー
スチェックポイントが行なわれたのと同じ状態になる。
そして、ジャーナル保証部1によって、直前のチェック
ポイントから故障時点までのジャーナルを取り出して
(図6のステップS25)、この取り出したジャーナル
をジャーナルファイル48に追加する(図6のステップ
S26)。そして、障害回復部12によりジャーナルを
読み込んでデータベースを復旧し(図6のステップS2
7)、データベースのリカバリを完了する。
【0061】これにより、データベースチェックポイン
トまで遡及させる必要がなくなり、復旧作業をより迅速
に行なうことができることとなる。 (第3実施形態)図7は第3実施形態のデータベースリ
カバリ装置を適用してなる計算機システムのシステム構
成図である。
【0062】この計算機システムにて動作するデータベ
ース管理システム(DBMS)10は、ディスク上にジ
ャーナルファイル15およびデータベース16、メモリ
上にデータベース14がそれぞれ設けられており、トラ
ンザクションは、メモリ上のデータベース14を介して
ディスク上のデータベース16にアクセスする。
【0063】また、データベース管理システム10は、
データベースコミット時にジャーナルログをジャーナル
ファイル15へ書き込み、トランザクションによって行
なわれたデータベースの変更やコミット/アボートを二
次記憶に書き出すジャーナル記録部11、メモリ上のデ
ータベース14をディスク上のデータベース16に反映
するデータベースチェックポイント処理13、およびデ
ータベースチェックポイントとジャーナルログとによっ
てデータベースを復旧する障害回復部12の各処理部を
備えている。
【0064】また、同実施形態に係る計算機システム
は、このような構成をとるデータベース管理システム1
0とともに、計算機システムに故障が発生してチェック
ポイントから再実行するときに、直前のチェックポイン
トから故障時点までのジャーナルログを保管して適宜取
り出せるようにするジャーナル保証部1と、そのチェッ
クポイント時に実行中のトランザクションを強制的に終
了させるトランザクション強制終了部2と、ジャーナル
保証部1によって取り出されたジャーナルに基づいて障
害回復処理を実行するトランザクションを発生する障害
回復トランザクション発生部4とを備えている。
【0065】図8は、故障が発生する直前、故障が発生
した直後、およびその後の復旧手順によるジャーナルフ
ァイル、データベースのディスクの状態およびメモリの
状態を示した図である。
【0066】図8に示したように、故障が発生する直前
は図13のT10と同じである。この時点で、確定され
ているデータは、 a=2 b=1 c=1 となっている。
【0067】しかしながら、故障が発生して直前のチェ
ックポイントから処理を再実行する際、メモリとディス
クの状態がチェックポイントの起きた時点に戻るので、
図13の時刻T8と同じになり、確定されたデータも a=1 b=0 c=1 となってしまう。
【0068】そこで同実施形態では、処理を再実行する
前に、まずトランザクション強制終了部2によって、チ
ェックポイント時点で実行中であるトランザクションT
x3およびTx4を強制終了させる。トランザクション
Tx3およびTx4が使用しているメモリ上のデータベ
ース57のデータであるデータaおよびデータcは、ロ
ックが外され、トランザクションTx3およびTx4の
実行前の値に戻される。
【0069】そして、ジャーナル保証部1によって、直
前のチェックポイント(T8)から故障時点(T10)
までにコミットしたトランザクションTx3のジャーナ
ルである T9:Tx3:a=2 T9:Tx3:b=1 を取り出して、障害回復トランザクション発生部4によ
りこのジャーナルに基づいてデータベースの更新を再実
行するトランザクションを発生させる。
【0070】図9は、障害回復トランザクション発生部
4によって発生したトランザクションの処理内容を示す
図である。この障害回復トランザクションでは、まず最
初に、更新するデータすべてのロックを獲得する。
【0071】図8に示した障害回復トランザクション起
動時のメモリ上のデータベース14は、障害回復トラン
ザクションTxRによって更新されるデータにロックが
かけられている状態を示している。
【0072】このように、障害回復トランザクションに
よって、データにロックがかけられた後であれば、他の
トランザクションの実行を開始することができる。そし
て、障害回復トランザクションによって、故障直前に確
定したデータが復旧される。障害回復トランザクション
が発生した時点で、変更するデータにロックをかけるの
で、データが戻される前に、他のトランザクションで変
更されることがなく、故障発生までに変更されたデータ
の更新の順序は守られる。
【0073】同実施形態では、データベースの復旧時
に、ロックのかかっていないデータ(チェックポイント
から故障時に使用されないデータ)以外を使用するトラ
ンザクションであれば、並行して実行することができ、
システムを停止させるなどの必要がない。
【0074】ここで、図10を参照して同実施形態にお
けるデータベースリカバリの動作手順を説明する。計算
機システムに故障が発生した場合、プロセスの状態がチ
ェックポイントの時点まで戻されるが、同実施形態の計
算機システムでは、再実行が行なわれる前に、まずトラ
ンザクション強制終了部2により実行中のトランザクシ
ョンのプロセスを削除し(図10のステップS31)、
メモリ上のデータベース14のロールバックを行なう
(図10のステップS32)。次に、ジャーナル保証部
1によって直前のチェックポイントから故障時点までの
ジャーナルを取り出して(図10のステップS33)、
障害回復トランザクション発生部4によって、この取り
出したジャーナルに基づいて直前のチェックポイントか
ら故障時点までのデータの変更を再実行する障害回復ト
ランザクションを生成し(図10のステップS34)、
障害回復トランザクションが使用するデータをロックす
る(図10のステップS35)。ロックが完了したら、
新しいトランザクションの受け付けを開始し、データベ
ースの復旧をしながら、システムの処理を継続する。
【0075】これにより、データベースの復旧作業と、
チェックポイントから故障時までに更新されていないデ
ータを使用するトランザクションとを並列に実行するこ
とができることになり、システムの稼働率を向上させる
ことができる。
【0076】
【発明の効果】以上詳述したように、本発明によれば、
チェックポイントリスタート機能を有してなる計算機シ
ステム上に構築したデータベース管理システムにおい
て、障害の発生により直前のチェックポイントから処理
を再実行する際に、チェックポイント時点で実行中だっ
たトランザクションを終了させ、直前のチェックポイン
トから故障までのジャーナルを取り出してジャーナルフ
ァイルに追加し、ジャーナルを読み込んでデータベース
を復旧することで、故障時点までに実行されたトランザ
クションによるデータの変更を再現する。
【0077】これにより、システムの一貫性を保ちつつ
迅速なリカバリを実現することができる。また、同様
に、障害の発生により直前のチェックポイントから処理
を再実行する際に、チェックポイント時点で実行中だっ
たトランザクションを終了させ、チェックポイント時点
でのデータベースチェックポイントを起こしてチェック
ポイントまでに変更されたデータの更新をディスクのデ
ータベースに反映し、直前のチェックポイントから故障
までのジャーナルを取り出して、データベースを復旧す
ることで、故障時点までに実行されたトランザクション
によるデータの変更を再現する。
【0078】これにより、チェックポイント時点までの
ジャーナルを用いた回復処理が不要となり、さらに迅速
なリカバリを実現することができる。また、同様に、障
害の発生により直前のチェックポイントから処理を再実
行する際に、チェックポイント時点で実行中だったトラ
ンザクションを終了させ、直前のチェックポイントから
故障までのジャーナルを取り出して、この取り出したジ
ャーナルに基づいて直前のチェックポイントから故障発
生までにコミットしたトランザクションによるデータベ
ースの更新を再現する故障回復トランザクションを発生
させる。これにより、故障時点でのデータベースを復旧
しながら、システムの処理を継続することができ、シス
テムの稼働率を飛躍的に向上させることができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態のデータベースリカバリ
装置を適用してなる計算機システムのシステム構成図。
【図2】第1実施形態に係る故障が発生する直前、故障
が発生した直後、およびその後の復旧手順によるジャー
ナルファイル、データベースのディスクの状態およびメ
モリの状態を示した図。
【図3】第1実施形態におけるデータベースリカバリの
動作手順を説明するためのフローチャート。
【図4】第2実施形態のデータベースリカバリ装置を適
用してなる計算機システムのシステム構成図。
【図5】第2実施形態に係る故障が発生する直前、故障
が発生した直後、およびその後の復旧手順によるジャー
ナルファイル、データベースのディスクの状態およびメ
モリの状態を示した図。
【図6】同実施形態におけるデータベースリカバリの動
作手順を説明するためのフローチャート。
【図7】第3実施形態のデータベースリカバリ装置を適
用してなる計算機システムのシステム構成図。
【図8】第3実施形態に係る故障が発生する直前、故障
が発生した直後、およびその後の復旧手順によるジャー
ナルファイル、データベースのディスクの状態およびメ
モリの状態を示した図。
【図9】第3実施形態に係る障害回復トランザクション
発生部4によって発生したトランザクションの処理内容
を示す図。
【図10】第3実施形態におけるデータベースリカバリ
の動作手順を説明するためのフローチャート。
【図11】分散トランザクション処理を行なうネットワ
ークシステムの構成図。
【図12】ネットワークシステムにおける時間軸に対す
るトランザクションの状態を示すタイムチャート。
【図13】ネットワークシステムの各時刻におけるジャ
ーナルファイル、データベースのディスクの状態ならび
にメモリの状態、およびコミットにより確定されている
データを示す図。
【符号の説明】
1…ジャーナル保証部、2…トランザクション強制終了
部、3…障害回復時データベースチェックポイント起動
部、4…障害回復トランザクション発生部、10…デー
タベース管理システム、11…ジャーナル記録部、12
…障害回復部、13…データベースチェックポイント処
理部、14…データベース(メモリ)、15…ジャーナ
ルファイル、16…データベース(ディスク)、21…
計算機A、22a〜22c…CPU、23a〜23c…
キャッシュ、24…メモリ、25…データベース、26
…計算機B。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 計算機システムの状態を復元するための
    チェックポイントを周期的に取得しながら処理を進めて
    いき、障害が発生したときに、前記計算機システムの状
    態を前記取得した直前のチェックポイント取得時の状態
    に復元して処理を再開するフォールトトレラント計算機
    システムのデータベースリカバリ装置において、 前記計算機システムにて実行されたトランザクションが
    更新したデータの内容およびそのトランザクションのコ
    ミットまたはアボートを示す情報を含むジャーナルをジ
    ャーナルファイルに記録するジャーナル記録手段と、 前記取得した直前のチェックポイント以降についての前
    記ジャーナルを保持するジャーナル保証手段と、 コミットしたトランザクションにより更新され、その更
    新がいまだ主記憶装置から二次記憶装置に反映されてい
    ないデータを定期的に二次記憶装置に反映させるととも
    に、この反映と同期して前記ジャーナルファイルをクリ
    アすることによりデータベースチェックポイントを取得
    するデータベースチェックポイント取得手段と、 障害の発生に伴って前記計算機システムの状態が前記取
    得した直前のチェックポイント取得時の状態に復元され
    たときに、そのチェックポイント取得時に実行中のトラ
    ンザクションすべてを終了させるとともに、前記ジャー
    ナルファイルおよび前記ジャーナル保証手段に記録され
    たジャーナルに基づいて、コミットしたトランザクショ
    ンが変更したデータの内容をデータベースに反映させ、
    アボートしたトランザクションが変更したデータの内容
    を無効化することによりデータベースを障害発生時の状
    態まで回復させる障害回復手段とを具備してなることを
    特徴とするデータベースリカバリ装置。
  2. 【請求項2】 計算機システムの状態を復元するための
    チェックポイントを周期的に取得しながら処理を進めて
    いき、障害が発生したときに、前記計算機システムの状
    態を前記取得した直前のチェックポイント取得時の状態
    に復元して処理を再開するフォールトトレラント計算機
    システムのデータベースリカバリ装置において、 前記計算機システムにて実行されたトランザクションが
    更新したデータの内容およびそのトランザクションのコ
    ミットまたはアボートを示す情報を含むジャーナルをジ
    ャーナルファイルに記録するジャーナル記録手段と、 前記取得した直前のチェックポイント以降についての前
    記ジャーナルを保持するジャーナル保証手段と、 コミットしたトランザクションにより更新され、その更
    新がいまだ主記憶装置から二次記憶装置に反映されてい
    ないデータを定期的に二次記憶装置に反映させるととも
    に、この反映と同期して前記ジャーナルファイルをクリ
    アすることによりデータベースチェックポイントを取得
    するデータベースチェックポイント取得手段と、 障害の発生に伴って前記計算機システムの状態が前記取
    得した直前のチェックポイント取得時の状態に復元され
    たときに、そのチェックポイント取得時に実行中のトラ
    ンザクションすべてを終了させるとともに、前記データ
    ベースチェックポイント取得手段によりそのチェックポ
    イント取得時におけるデータベースチェックポイントを
    取得した後、前記ジャーナル保証手段に記録されたジャ
    ーナルに基づいて、コミットしたトランザクションが変
    更したデータの内容をデータベースに反映させ、アボー
    トしたトランザクションが変更したデータの内容を無効
    化することによりデータベースを障害発生時の状態まで
    回復させる障害回復手段とを具備してなることを特徴と
    するデータベースリカバリ装置。
  3. 【請求項3】 計算機システムの状態を復元するための
    チェックポイントを周期的に取得しながら処理を進めて
    いき、障害が発生したときに、前記計算機システムの状
    態を前記取得した直前のチェックポイント取得時の状態
    に復元して処理を再開するフォールトトレラント計算機
    システムのデータベースリカバリ装置において、 前記計算機システムにて実行されたトランザクションが
    更新したデータの内容およびそのトランザクションのコ
    ミットまたはアボートを示す情報を含むジャーナルをジ
    ャーナルファイルに記録するジャーナル記録手段と、 前記取得した直前のチェックポイント以降についての前
    記ジャーナルを保持するジャーナル保証手段と、 コミットしたトランザクションにより更新され、その更
    新がいまだ主記憶装置から二次記憶装置に反映されてい
    ないデータを定期的に二次記憶装置に反映させるととも
    に、この反映と同期して前記ジャーナルファイルをクリ
    アすることによりデータベースチェックポイントを取得
    するデータベースチェックポイント取得手段と、 前記ジャーナル保証手段に記録されたジャーナルに基づ
    いて、コミットしたトランザクションが変更したデータ
    の内容をデータベースに反映させ、アボートしたトラン
    ザクションが変更したデータの内容を無効化するトラン
    ザクションを発生させる障害回復トランザクション発生
    手段と、 障害の発生に伴って前記計算機システムの状態が前記取
    得した直前のチェックポイント取得時の状態に復元され
    たときに、そのチェックポイント取得時に実行中のトラ
    ンザクションすべてを終了させるとともに、前記障害回
    復トランザクション発生手段を起動することにより通常
    のトランザクション処理と並列にデータベースを障害発
    生時の状態まで回復させる障害回復手段とを具備してな
    ることを特徴とするデータベースリカバリ装置。
JP7249536A 1995-09-27 1995-09-27 データベースリカバリ装置 Pending JPH0991183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7249536A JPH0991183A (ja) 1995-09-27 1995-09-27 データベースリカバリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7249536A JPH0991183A (ja) 1995-09-27 1995-09-27 データベースリカバリ装置

Publications (1)

Publication Number Publication Date
JPH0991183A true JPH0991183A (ja) 1997-04-04

Family

ID=17194453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7249536A Pending JPH0991183A (ja) 1995-09-27 1995-09-27 データベースリカバリ装置

Country Status (1)

Country Link
JP (1) JPH0991183A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149454A (ja) * 2000-08-30 2002-05-24 Internatl Business Mach Corp <Ibm> 論理ディスク上でのトランザクション・サポート
US7478273B2 (en) 2003-12-02 2009-01-13 Nec Corporation Computer system including active system and redundant system and state acquisition method
JP2017517087A (ja) * 2014-05-30 2017-06-22 華為技術有限公司Huawei Technologies Co.,Ltd. データベース・クラスタのデータ管理方法、ノード、及びシステム
CN112231150A (zh) * 2020-10-27 2021-01-15 北京人大金仓信息技术股份有限公司 数据库集群中故障数据库恢复方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149454A (ja) * 2000-08-30 2002-05-24 Internatl Business Mach Corp <Ibm> 論理ディスク上でのトランザクション・サポート
US7478273B2 (en) 2003-12-02 2009-01-13 Nec Corporation Computer system including active system and redundant system and state acquisition method
JP2017517087A (ja) * 2014-05-30 2017-06-22 華為技術有限公司Huawei Technologies Co.,Ltd. データベース・クラスタのデータ管理方法、ノード、及びシステム
US10379977B2 (en) 2014-05-30 2019-08-13 Huawei Technologies Co., Ltd. Data management method, node, and system for database cluster
US10860447B2 (en) 2014-05-30 2020-12-08 Huawei Technologies Co., Ltd. Database cluster architecture based on dual port solid state disk
CN112231150A (zh) * 2020-10-27 2021-01-15 北京人大金仓信息技术股份有限公司 数据库集群中故障数据库恢复方法和装置
CN112231150B (zh) * 2020-10-27 2024-03-19 北京人大金仓信息技术股份有限公司 数据库集群中故障数据库恢复方法和装置

Similar Documents

Publication Publication Date Title
US6182086B1 (en) Client-server computer system with application recovery of server applications and client applications
US6151607A (en) Database computer system with application recovery and dependency handling write cache
US5933838A (en) Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US7499954B2 (en) Consistent reintegration of a failed primary instance
US5870763A (en) Database computer system with application recovery and dependency handling read cache
US5907673A (en) Checkpointing computer system having duplicated files for executing process and method for managing the duplicated files for restoring the process
EP0465019B1 (en) Method and apparatus for managing state identifiers for efficient recovery
US6490594B1 (en) Database computer system with application recovery and dependency handling write cache
US7779295B1 (en) Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
EP0465018B1 (en) Method and apparatus for optimizing undo log usage
US5946698A (en) Database computer system with application recovery
US7996363B2 (en) Real-time apply mechanism in standby database environments
US20050283504A1 (en) Disaster recovery system suitable for database system
EP0236743A2 (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system
US20030097611A1 (en) Method for the acceleration and simplification of file system logging techniques using storage device snapshots
US20040181560A1 (en) Method and apparatus for interrupting updates to a database to provide read-only access
JPH06318165A (ja) 故障後の再起動中でのトランザクション適応システムにおいてデータを利用可能にする方法
CA2583650A1 (en) Oplogging for online recovery in direct connection client server systems
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
US20090248760A1 (en) Backup method of computer system
JP4095139B2 (ja) コンピュータシステムおよびファイル管理方法
US20030088814A1 (en) Method and apparatus for logging file system operations
JPH0991183A (ja) データベースリカバリ装置
CN110196788B (zh) 一种数据读取方法、装置、系统及存储介质
KR102049417B1 (ko) Nvdimm을 이용한 인-메모리 데이터베이스 기반의 데이터 저장 및 복원 방법