JPH08263351A - リカバリ処理方式及び方法 - Google Patents

リカバリ処理方式及び方法

Info

Publication number
JPH08263351A
JPH08263351A JP7091614A JP9161495A JPH08263351A JP H08263351 A JPH08263351 A JP H08263351A JP 7091614 A JP7091614 A JP 7091614A JP 9161495 A JP9161495 A JP 9161495A JP H08263351 A JPH08263351 A JP H08263351A
Authority
JP
Japan
Prior art keywords
processing
update
lock
resource
recovery
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
JP7091614A
Other languages
English (en)
Inventor
Hiroaki Takahashi
宏明 高橋
Toshiyuki Inoue
利行 井上
Tadao Odanaka
忠雄 小田中
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.)
N T T DATA TSUSHIN KK
NTT Data Corp
Original Assignee
N T T DATA TSUSHIN KK
NTT Data Communications Systems 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 N T T DATA TSUSHIN KK, NTT Data Communications Systems Corp filed Critical N T T DATA TSUSHIN KK
Priority to JP7091614A priority Critical patent/JPH08263351A/ja
Priority to EP96903243A priority patent/EP0758114A4/en
Priority to US08/737,040 priority patent/US6052695A/en
Priority to PCT/JP1996/000440 priority patent/WO1996027157A1/ja
Publication of JPH08263351A publication Critical patent/JPH08263351A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 複数のサーバがトランザクションを分散処理
するシステムにおいて、データベースやファイルなどの
資源に対する障害リカバリ処理を1つのサーバに負担を
集中させずに高速に行えるようにする。 【構成】 複数のサーバ11A〜11Eがネットワーク
13を介して接続されている。従サーバ11D、11E
は、資源としてのファイル17D、17Eを管理してい
る。主サーバ11A〜11Cは、各々のトランザクショ
ン処理において、従サーバ11D、11Eに対し資源の
更新命令を発行すると共に、発行した更新命令に基づく
資源の更新履歴(更新後イメージ)をジャーナル18A
〜18Cに取得する。或る従サーバ11Dで障害が生じ
た場合、障害復旧後に従サーバ11Dは、自己のファイ
ル17Dに対する最新の更新履歴を主サーバ11A〜1
1Cに要求し、主サーバ11A〜11Cから送られた最
新の更新履歴に基づいてファイル17Dのリカバリを行
う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、相互接続された複数の
処理装置(以下、サーバという)がトランザクションを
分散処理する分散型のトランザクション処理システムに
おいて、データベース、メモリテーブル、ファイル等の
資源に対する障害リカバリ処理の改良に関する。
【0002】
【従来の技術】図1は従来例に係る分散型トランザクシ
ョン処理システムにおけるリカバリ処理方式の概念図で
ある。
【0003】図1に示すように、サーバ1A、サーバ1
B、サーバ1Cには、それぞれ複数の端末4A、5A、
4B、5B、…が接続されている。各端末4A、5A、
4B、5B、…は、例えばワークステーションやパーソ
ナルコンピュータを用いたもので、対応するサーバ1
A、1B、1Cとの間でトランザクションに関するメッ
セージの送受信を行う。
【0004】サーバ1D及びサーバ1Eはそれぞれ資源
(この例ではファイル)7D、7Eおよび更新履歴ジャ
ーナル8D、8Eを有している。
【0005】このような構成において、サーバ1A、1
B、1Cはそれぞれの端末からトランザクション要求メ
ッセージを受け付けて、それぞれのトランザクションの
内容に応じサーバ1D又は1Eにファイル7D、7Eの
更新命令を出す。すると、サーバ1D、1Eは、それぞ
れのファイル7D、7Eの更新を行うと共に、ジャーナ
ル8D、8Eにそれぞれの更新内容を記録する。
【0006】ここで、サーバ1Dのファイル7Dに障害
が発生した場合、障害復旧後にサーバ1Dは、自装置内
のジャーナル8Dに記録されている更新履歴を参照しな
がらシーケンシャルにリカバリを行う。通常、サーバ1
D内ではファイル7Dのバックアップが定期的に行われ
ているため、リカバリの処理は、障害発生前の最後のバ
ックアップデータをファイル7Dにコピーした上で、そ
のバックアップ取得時点以後の全ての更新履歴を時間的
順序に従ってシーケンシャルに実行することにより行
う。
【0007】
【発明が解決しようとする課題】このように従来技術に
おいては、資源を管理する個々のサーバが、ジャーナル
内の更新履歴をシーケンシャルに実行することによりリ
カバリ処理を行う。そのため、リカバリを実行するサー
バに負荷が集中しリカバリに時間がかかるという問題が
ある。
【0008】従って本発明の目的は、分散型トランザク
ション処理システムにおいて、データベース、メモリテ
ーブル、ファイル等の資源を管理するサーバで障害が発
生した場合、当該サーバに負担を集中させずに速やかに
リカバリが行えるようにすることにある。
【0009】
【課題を解決するための手段】本発明は、相互通信可能
な複数の処理装置がトランザクションを分散処理するシ
ステムにおける、1つの処理装置の管理する資源に対し
てリカバリ処理を行うための方式において、少なくとも
2つの処理装置が、複数の処理装置が発した資源に対す
る更新命令に基づく、更新履歴を蓄積したジャーナルを
分散して管理し、資源を管理する処理装置が、資源のリ
カバリ処理に必要な更新履歴をジャーナルを管理する処
理装置へ要求する更新履歴要求手段と、ジャーナルを管
理する処理装置から送られた更新履歴に基づいて、資源
の更新を実行するリカバリ手段とを備え、ジャーナルを
管理する処理装置の各々が、更新履歴要求手段からの要
求に応じて、リカバリ処理に必要な更新履歴をジャーナ
ルより抽出して資源を管理する処理装置へ送信する更新
履歴送信手段を備えることを特徴とする。
【0010】本発明の方式は、望ましくは、ジャーナル
内の個々の更新履歴が、資源の更新後イメージを表した
ものであり、リカバリ手段が、資源に対する最後の更新
履歴のみに基づいて資源を更新するように構成される。
【0011】本発明はまた、上記方式によって行われる
リカバリ処理方法も提供する。
【0012】
【作用】本発明のリカバリ処理方式によれば、資源更新
のジャーナルが2つ以上の処理装置に分散して管理され
ているため、リカバリ処理においては、それら2つ以上
の処理装置の並行処理により、必要な更新履歴が抽出さ
れる。そして、その抽出された更新履歴に基づいて資源
のリカバリが行われる。必要な更新履歴の収集処理を複
数の処理装置で並行処理するため、1つの処理装置の負
荷が減り、リカバリ処理の時間が短縮する。
【0013】ここで、「資源」とは、データベース、フ
ァイル、テーブル、レコード等といったトランザクショ
ンで更新の対象となる個々の情報又はそのような情報の
集合体を意味する。
【0014】通常、リカバリの対象となる資源は多数の
更新可能単位(例えば、レコード)に分れているため、
リカバリ処理はそれら多数の更新可能単位の1つ1つに
対して行う必要がある。この場合、それら多数の更新可
能単位のリカバリをマルチ・プロセスによって多重に実
行することが、処理時間を短縮する上で望ましい。
【0015】更新履歴を資源の更新後イメージを表す形
式でジャーナルに蓄積してある場合は、障害発生時点の
最新の更新履歴のみに基づいて資源の更新をやり直すこ
とでリカバリが可能である。従って、従来のようにバッ
クアップ取得時点からシーケンシャルに更新を繰り返す
必要がなくなり、リカバリ処理時間が一層短縮される。
【0016】好適な実施例では、資源に対する更新命令
を発した処理装置が各自の発した更新命令に関するジャ
ーナルを管理している。そのため、ジャーナルがトラン
ザクション処理時の通信障害や他の処理装置の障害の影
響を受けるおそれがなく、ジャーナルの信頼性が高い。
【0017】好適な実施例では、リカバリ処理に必要な
更新履歴を特定するために、資源のロックログを利用し
ている。ロックログは、資源更新の排他制御を管理する
ために標準的に必要なものである。よって、ロックログ
を利用することにより、リカバリ処理用の更新履歴の特
定のために特別のログを設ける必要がない。
【0018】
【実施例】図2は本発明に係る分散型トランザクション
処理システムの障害リカバリ方式を示すブロック図であ
る。
【0019】複数台のサーバ11A、11B、…11E
がネットワーク13を介して通信可能に接続されてい
る。
【0020】サーバ11A、11B、11Cには、それ
ぞれ複数の端末14A、15A、14B、15B、…が
接続されている。各端末14A、15A、14B、15
B、…は、例えばワークステーションやパーソナルコン
ピュータを用いたもので、対応するサーバ11A、11
B、11Cとの間でトランザクションに関するメッセー
ジの送受信を行う。
【0021】サーバ11D及びサーバ11Eは資源(こ
の例ではファイル)17D、17Eをそれぞれ有してい
る。
【0022】サーバ11A、11B、11Cは、それぞ
れが発行した更新命令に基づく更新履歴を時系列的に蓄
積した更新履歴ジャーナル18A、18B、18Cを有
している。尚、ジャーナル18A、18B、18C内の
更新履歴は、資源の更新後イメージを表した形式となっ
ている。
【0023】このような構成において、サーバ11A、
11B、11Cはそれぞれの端末からトランザクション
要求メッセージを受け付けて、それぞれのトランザクシ
ョンの内容に応じサーバ11D又は11Eにファイル1
7D、17Eの更新命令を発行する(図中の破線矢
印)。すると、サーバ11D、11Eは、それぞれのフ
ァイル17D、17Eの更新を行う。
【0024】また、サーバ11A、11B、11Cは、
更新命令の発行に際して、自身が発行するその更新命令
を各々のジャーナル18A、18B、18Cに記録す
る。
【0025】ここで、例えばサーバ11Dのファイル1
7Dに障害が発生したとする。すると、障害復旧後にサ
ーバ11Dは、サーバ11A、11B、11Cに依頼し
て、それらのジャーナル18A、18B、18C中から
ファイル17Dの更新履歴を取寄せ(図中の太実線矢
印)、これに基づいてファイル17Dのリカバリを行
う。
【0026】図3はファイル17Dのリカバリ処理をよ
り具体的に示した説明図である。
【0027】例えば、サーバ11Dに障害が生じた時点
において、サーバ11Dのファイル17D内のレコード
R1及びR2に対して、サーバ11Aより更新命令が発
行されており、またレコードR3に対して、サーバ11
Bより更新命令が発行されていたとする。この場合、サ
ーバ11Dはリカバリ処理において、レコードR1及び
R2に対する障害発生時の(つまり最新の)更新履歴J
1及びJ2をサーバ11Aより取寄せ、かつ、レコード
R3に対する障害発生時の(つまり最新の)更新履歴J
3をサーバ11Bより取寄せ、これら最新の更新履歴J
1、J2、J3に基づいてファイル17D内のレコード
R1、R2、R3を更新する。
【0028】このように、リカバリ処理では、従来のよ
うにシーケンシャルに更新履歴を実行するのでなく、障
害発生時点において各資源に対し最後に行われた(最新
の)更新履歴のみを抽出して更新を実行する。これによ
り、リカバリ処理の負荷が小さくなりリカバリ時間が短
縮される。
【0029】図4は、図3に示したリカバリ処理の具体
例を更に詳細に示した説明図である。
【0030】図4に示すように、サーバ11D及び11
Eは、それぞれのファイル17D、17E内の各レコー
ドに対するロック処理の履歴を時系列的に蓄積したロッ
クログ19D、19Eをそれぞれ備えている。ここで、
ロック処理とは、或るトランザクションで或るレコード
を更新している最中、他のトランザクションによる同一
レコードの更新を禁止(ロック)するアクセスの排他制
御をいう。
【0031】ロックログ19D、19E内に蓄積された
個々のロックログ情報は、そのロック処理を依頼したト
ランザクションの識別子と、ファイル内のどのレコード
をロックしたかを示すロック情報とから構成される。例
えば、図中右下端に示すロックログ情報L3は、「サー
バB−3」という識別子(サーバ11Bの第3番のトラ
ンザクションを意味する)と、「レコード3ロック」と
いうロック情報(レコードR3をロックしたことを意味
する)とから構成されている。
【0032】また、サーバ11A、11B、11Cのジ
ャーナル18A、18B、18C内の個々のジャーナル
情報(つまり個々の更新履歴)は、その更新命令を発し
たトランザクション識別子と、その更新命令による更新
の内容とから構成されている。例えば図中左下端に示す
ジャーナル情報J3は、「サーバB−3」という識別子
(サーバ11Bの第3番のトランザクションを意味す
る)と、「レコード3値を6に更新」という更新内容
(レコードR3の値を6に更新することを意味する)と
から構成されている。ここで、重要な点は、ジャーナル
情報内の更新内容は、更新対象資源の更新後のイメージ
(上記例では、更新後の値が6であること)を表したも
のであって、更新による変化量(例えば、値を加算す
る、減算する等)を表したのものではない点である。
【0033】個々のロックログ情報と個々のジャーナル
情報とは、トランザクション識別子によって相互に対応
付けられている。例えば、上に例示したロックログ情報
L3は、上に例示したジャーナル情報J3に対応してい
る。
【0034】サーバ11Dで障害が発生した場合を例に
とり、障害復旧後のサーバ11D内のファイル7Dに対
するリカバリ処理の手順を以下に示す。
【0035】(1)サーバ11Dは、まず、自装置内で
定期的に取得しているファイル17Dのバックアップデ
ータ(図示省略)をファイル17Dにコピーし、次にロ
ックログ19Dに対して、ファイル17D内の全てのレ
コードR1、R2、R3に対する最後のロックログ情報
を要求する。図示の例では、レコードR1についてトラ
ンザクション識別子「サーバA−2」のロックログ情報
が、レコードR2についてトランザクション識別子「サ
ーバA−1」のロックログ情報が、レコードR3につい
ては識別子「サーバB−3」のロックログ情報が、それ
ぞれ最後のロックログ情報として抽出される。
【0036】(2)次に、サーバ11Dは、この最後の
ロックログ情報のトランザクション識別子から、そのト
ランザクション処理を担当したサーバを認識し、そのサ
ーバに対してそのトランザクションのジャーナル情報を
要求する。例えば、レコードR1、R2に関しては、最
後のロックログ情報のトランザクション識別子が「サー
バA−2」、「サーバA−1」であるから、サーバ11
Aに対して同じトランザクション識別子を持つジャーナ
ル情報を要求し、また、レコードR3に関しては、最後
のロックログ情報のトランザクション識別子が「サーバ
B−3」であるから、サーバ11Bに対して同じトラン
ザクション識別子を持つジャーナル情報を要求する。
【0037】(3)サーバ11Aは、サーバ11Dから
要求されたトランザクション識別子「サーバA−2」、
「サーバA−1」を持つジャーナル情報をジャーナル1
8Aから検索する。その結果、レコードR1及びレコー
ドR2に対する最新のジャーナル情報J1及びJ2が抽
出される。
【0038】(4)同様に、サーバ11Bは、サーバ1
1Dから要求されたトランザクション識別子「サーバB
−3」を持つジャーナル情報をジャーナル18Bから検
索する。その結果、レコードR3に対する最新のジャー
ナル情報J3が抽出される。
【0039】(5)サーバ11Aは、抽出した最新のジ
ャーナル情報J1、J2をサーバ11Dに送信する(太
実線矢印a)。同様に、サーバ11Bも、抽出した最新
のジャーナル情報J3をサーバ11Dに送信する(太実
線矢印b)。
【0040】(6)サーバ11Dは、サーバ11A及び
11Bから受信した最新のジャーナル情報J1、J2、
J3に基づいて各レコードR1、R2、R3に対する更
新をマルチ・プロセスにより多重に実行する。既に述べ
たようにジャーナル情報は更新後イメージを表した形式
であるから、最新のジャーナル情報J1、J2、J3に
基づいて更新を行うだけで、ファイル17Bは障害が発
生せずに正常に更新が行われた状態に回復される。
【0041】図5は、トランザクションを処理するサー
バ(以下、主サーバという)11Aのブロック構成図で
ある(他の主サーバ11B及び11Cも同様の構成であ
る)。
【0042】主サーバ11Aの役割は、既に説明したよ
うに、端末14A又は15Aからのトランザクション要
求メッセージを受け付け、トランザクションの内容に応
じた更新命令を作成して、その更新命令に応じた更新履
歴(ジャーナル情報)をジャーナル18Aに取得すると
共に、その更新命令を更新対象のファイルを管理するサ
ーバ(以下、従サーバという)11D又は11Eに送信
し、その更新結果を端末14A又は15Aに返信するこ
とである。
【0043】この役割を果たすため、主サーバ11A
は、メッセージ送受信装置21と、トランザクション要
求処理部22と、ロック・更新メッセージ処理部23
と、ジャーナル処理部24と、ロック・更新処理部25
と、リカバリ処理部26とを備えている。
【0044】メッセージ送受信装置21は、端末14
A、15Aとのメッセージの送受信及び従サーバ11
D、11Eとのメッセージの送受信を行うものである。
【0045】トランザクション要求処理部22は、端末
14A、15Aからトランザクション要求メッセージを
受け付けてこれを解析したり、端末14A、15Aにト
ランザクションの処理結果を返信したりするものであ
る。
【0046】ロック・更新メッセージ処理部23は、従
サーバ11D、11Eへロック処理依頼や更新命令のメ
ッセージを送信したり、従サーバ11D、11Eからロ
ック処理や更新の結果やリカバリ要求のメッセージを受
信するものである。
【0047】ジャーナル処理部24は、トランザクショ
ン要求処理部22からトランザクション要求に応じた更
新内容を受け取って、これを更新履歴(ジャーナル情
報)としてジャーナル18Aに記録するものである。
【0048】ロック・更新処理部25は、トランザクシ
ョン要求処理部22からトランザクション要求に応じた
更新内容を受け取って、更新対象のレコードに対するロ
ック依頼をそのレコードを管理する従サーバ11D又は
11Eへ、ロック・更新メッセージ処理部23を通じて
送信したり、更新対象のレコードがロックされた後に、
そのレコードに対する更新命令を従サーバ11D又は1
1Eに送信したりするものである。
【0049】リカバリ処理部26は、従サーバ11D、
11Eからのリカバリ要求をロック・更新メッセージ処
理部23から受取り、そのリカバリ要求で要求された更
新履歴(ジャーナル情報)をジャーナル18Aから検索
し、ロック・更新メッセージ処理部23を通じて従サー
バ11D、11Eに返信するものである。
【0050】図6は、従サーバ11Dのブロック構成図
である(従サーバ11Eも同様の構成である)。
【0051】従サーバ11Dの役割は、既に説明したよ
うに、主サーバ11A、11B、11Cからのロック処
理依頼や更新命令を受け付け、対象レコードのロック処
理や更新を行い、その結果を主サーバ11A、11B、
11Cに返信したり、障害が発生した場合に、障害復旧
後に自装置の資源のリカバリ処理を行うことにある。
【0052】この役割を果たすため、従サーバ11D
は、メッセージ送受信装置31と、ロック更新メッセー
ジ処理部32と、ロック処理部33と、ロックログ処理
部34と、ファイル処理部35と、リカバリ処理部36
とを備えている。
【0053】メッセージ送受信装置31は、主サーバ1
1A、11B、11Cとのメッセージの送受信を行うも
のである。
【0054】ロック・更新メッセージ処理部32は、主
サーバ11A、11B、11Cからロック処理依頼や更
新命令のメッセージを受信して解析したり、ロック処理
や更新の結果を主サーバ11A、11B、11Cへ返信
したりするものである。
【0055】ロック処理部33は、主サーバ11A、1
1B、11Cからのロック処理依頼に従ってロック処理
を実行するものである。
【0056】ロックログ処理部34は、ロック処理部3
3が実行したロック処理の履歴をロックログ19Dに書
き込むものである。
【0057】ファイル処理部35は、主サーバ11A、
11B、11Cからの更新命令に従ってファイル17D
内の対象レコードの更新を行うものである。
【0058】リカバリ処理部36は、障害復旧後にリカ
バリ処理を行うために、ロックログ19Dから最後のロ
ックログ情報を検索して、対応するジャーナル情報を要
求するリカバリ要求を主サーバ11A、11B、11C
へ送信したり、主サーバ11A、11B、11Cからの
ジャーナル情報に基づいてファイル17Dのリカバリ処
理を行うものである。
【0059】図7、図8は、本実施例における正常トラ
ンザクション処理の詳細な手順を示すフローチャートで
ある。
【0060】ここでは主サーバ11Aが従サーバ11D
のファイルを更新する場合を例にとり説明する。
【0061】まず、或る端末14Aにおいて、ユーザか
らの入力情報から所定の前処理(S1)を経てトランザ
クション要求(特定のレコードの更新依頼)を作成し
(S2)、これを主サーバ11Aに送信する(S3)。
【0062】主サーバ11Aでは、端末14Aからのト
ランザクション要求をトランザクション要求処理部22
が受信し(S4)、次いでロック・更新処理部25がト
ランザクション要求に応じて更新対象のレコードに対す
るロック処理依頼を生成し(S5)、そして、ロック・
更新メッセージ処理部23がこのロック処理依頼を従サ
ーバ11Dに向けて送信する(S6)。
【0063】従サーバ11Dでは、ロック・更新メッセ
ージ処理部32が主サーバ11Aからのロック処理依頼
を受信し(S7)、次いでロック処理部33が更新対象
のレコードが既にロック済みか否か判断する(S8)。
ロック済みでなければ、ロック処理部33がロック処理
を実行し、そして、ロックログ処理部33がそのロック
処理のログ情報を作成してロックログ19Dに書き込む
(S9)。このロックログ情報には、トランザクション
識別子と、ロック対象のレコードが含まれるファイル名
及びそのレコードのレコード番号と、ロック情報とが含
まれている。
【0064】ロック処理が完了すると、ロック・更新メ
ッセージ処理部32がロック処理成功の旨の結果を主サ
ーバ11Aに向けて送信する(S10)。
【0065】なお、ロック処理依頼があったときに、ス
テップS8で更新対象レコードが既にロック済みであっ
た場合には、ロック処理は実行されず、ロック処理不成
功の旨の結果がロック・更新メッセージ処理部32から
主サーバ11Aに向けて送信される(S10)。
【0066】主サーバ11Aでは、ロック・更新メッセ
ージ処理部23がロック処理結果を受信し(S11)、
ロック・更新処理部25がロック処理が成功したか否か
判断する(S12)。
【0067】ロック処理不成功の場合(S12でN)、
つまり、対象レコードが既にロック済みであった場合
は、端末が要求したトランザクションはロールバックさ
れる。図8に示すように、トランザクション要求処理部
22が端末14Aに更新処理をロールバックする旨の結
果を送信する(S13)。
【0068】一方、ロック処理が成功した場合は(S1
2でY)、ジャーナル処理部24が更新命令に基づくジ
ャーナル情報(更新履歴)をジャーナル18Aに書き込
む(S15)。ジャーナル情報は、トランザクション識
別子と、対象レコードが含まれるファイル名及び対象レ
コードのレコード番号と、更新内容とを含んでいる。既
に述べたように、更新内容は更新後イメージを表した形
式である。
【0069】次いで、ロック・更新メッセージ処理部1
2が従サーバ11Dに向けて、更新命令を送信し(S1
6)、トランザクション要求処理部22が端末14Aに
向けて更新処理がコミットされた旨の結果を送信する
(S17)。
【0070】端末14Aは、ロールバック又はコミット
の旨の結果を受信して(S14)ユーザに提示し、その
処理を終了する。
【0071】従サーバ11Dでは、ロック・更新メッセ
ージ処理部32が更新命令を受信し(S18)、ファイ
ル処理部35がその更新命令に基づいてファイル17D
内の対象レコードの内容を更新する(S19)。更新が
完了すると、ロックログ処理部54が、対象レコードを
アンロックした旨のロックログ情報をロックログ19D
へ書き込む(S20)。
【0072】以上のようにして正常なトランザクション
処理が完了する。トランザクション処理が完了した段階
で、主サーバ11Aのジャーナル18Aには、そのトラ
ンザクション処理で実行されたレコード更新の内容を示
すジャーナル情報が保存され、従サーバ11Dのロック
ログ19Dには、そのトランザクション処理で実行され
た更新対象レコードのロックとアンロックとを示すロッ
クログ情報のペアが保存されていることになる。
【0073】図9、図10は従サーバ11Dで障害が発
生した場合に、障害復旧後のリカバリ処理の手順を詳細
に示したフローチャートである。
【0074】従サーバ11Dにおいて、例えばファイル
17Dのボリューム障害が発生したとする。すると、フ
ァイル17D用の記憶装置が正常なものに交換された後
に、以下の手順によりリカバリ処理が実行される。
【0075】まず、従サーバ11Dのリカバリ処理部3
6が、ファイル17Dを閉塞状態に設定してロック処理
を始めとする外部からの一切の操作を禁止した上で(S
31)、定期的に取得してあったバックアップデータ
(ファイル原本)をファイル17Dに読み込む(S3
2)。
【0076】次に、ロックログ19Dを所定の方法でサ
ーチして(例えば、最後尾からシーケンシャルにサーチ
して)、個々のロックログ情報を順番に読み込む(S3
3)。そして、ロックログ情報を1つ読み込む都度、ま
ず、同じレコードのロックログ情報を既に読んでいるか
否かチェックする(S34)。その結果、まだ同じレコ
ードのロックログ情報を読んでいなければ(S34で
N)、それは当該レコードに関する最後のロックログ情
報である可能性があるから、そのロックログ情報をメモ
リに保持する(S35)。一方、既に同じレコードのロ
ックログ情報を読んでいる場合は(S34でY)、現在
読み込んだロックログが既に読んだものよりも新しいか
否か判断し(S36)、新しい場合は(S6でY)既に
読んでいたロックログ情報を破棄して(S37)、現在
読み込んだロックログ情報をメモリに保持する(S3
5)。一方、現在読み込んだロックログ情報が既に読ん
だロックログ情報よりも古い場合は(S6でN)、現在
読み込んだロックログ情報を破棄する(S38)。
【0077】以上のステップステップS33からS38
の処理を、図10に示すようにロックログ19Dの全て
のログ情報を読み込に終わるまで繰り返す(S39)。
その結果、ファイル17Dの各レコードに関して最後の
ロックログの情報がメモリ上に抽出される。
【0078】こうして最後のロックログ情報が全てのレ
コードについて抽出されると、次に、ロック・更新メッ
セージ処理部32が、それら最後のロックログ情報内の
トランザクション識別子に基づいて対応する更新履歴
(ジャーナル情報)を要求するメッセージを、そのトラ
ンザクション識別子により特定された主サーバに送信す
る(S40)。例えば、図4に示した具体例では、最後
のロックログ情報のトランザクション識別子は「サーバ
A−1」「サーバA−2」「サーバB−3」であるか
ら、トランザクション識別子「サーバA−1」及び「サ
ーバA−2」に対応する更新履歴の要求は主サーバ11
Aに、トランザクション識別子「サーバB−3」に対す
る更新履歴の要求は主サーバ11Bにそれぞれ送信され
ることになる。
【0079】主サーバ11Aでは、ロック・更新メッセ
ージ処理部23が更新履歴要求を受信すると(S4
1)、リカバリ処理部26が当該要求のトランザクショ
ン識別子を検索キーに用いてジャーナル18Aから要求
された更新履歴(最新のジャーナル情報)を検索してこ
れを読み込み(S42)、ロック・更新メッセージ処理
部23がこの更新履歴を従サーバ11Dに返信する(S
43)。
【0080】他方の主サーバ11Bでも、サーバ11A
の上記処理と並行して同様に、要求された最新の更新履
歴が読み込まれ、従サーバ11Dに返信される。
【0081】従サーバ11Dでは、ロック・更新メッセ
ージ処理部32が主サーバ11A、11Bからの最新の
更新履歴を受信すると(S44)、ファイル処理部35
がこの更新履歴に基づいてファイル17D内の各レコー
ドの内容を更新する(S45)。このステップS44、
45のレコード更新処理は、複数プロセスにより複数レ
コードについて多重に実行される。この最新の更新履歴
に基づく更新により、ファイル17Dの内容は障害が発
生しなかった場合と同様の正しい内容に改められる。
【0082】この後、リカバリ処理部36がファイル1
7Dの閉塞を解除して(S46)、リカバリ処理を終了
する。
【0083】以上、本発明の一実施例を説明したが、本
発明はこの実施例にのみ限定されるものではなく、他の
種々の態様でも実施することができる。例えば、上記実
施例では、従サーバにおいてリカバリに必要な最新の更
新履歴を特定するためにロックログを利用したが、必ず
しもロックログを利用する必要はなく、最新の更新履歴
の特定が可能でさえあれば、別の手段を用いても構わな
い。例えば、ロック処理依頼や更新命令に含まれている
トランザクション識別子をログ形式又はレコード別の上
書形式で記録しておき、レコード毎の最終のトランザク
ション識別子から最新の更新履歴を特定することも可能
である。或いは、ロック処理依頼又は更新命令を発行し
た主サーバの識別子を同様の形式で記録しておき、レコ
ード毎に最終の主サーバを特定してこれに更新履歴要求
を送信して、その主サーバにおいて最新の更新履歴を選
択して従サーバに返送することも可能である。或いは、
サーバの台数がそれ程多くなければ、従サーバより全て
の主サーバに対して各々のジャーナル内での各レコード
毎の最新の更新履歴を要求して、それを収集した従サー
バにおいて、各レコード毎の真に最新の更新履歴を選択
するようにしてもよい。
【0084】
【発明の効果】以上説明したように、本発明によれば、
資源のリカバリ処理を複数の処理装置により並行処理で
き、また好適な構成では更に、最新の更新履歴に基づく
更新処理だけでリカバリができるため、1つの処理装置
におけるリカバリ処理の負担が軽減し、リカバリ時間を
短縮することができる。
【図面の簡単な説明】
【図1】従来例に係る分散型トランザクション処理シス
テムにおける障害リカバリ方式を示すブロック図。
【図2】本発明の一実施例に係る分散型トランザクショ
ン処理システムにおける障害リカバリ方式の全体構成を
示すブロック図。
【図3】図2の実施例の障害リカバリ処理をより具体的
に説明するための説明図。
【図4】図3に示した障害リカバリ処理を一層詳細に説
明するための説明図。
【図5】主サーバの構成を示すブロック図。
【図6】従サーバの構成を示すブロック図。
【図7】正常トランザクション処理の手順の前段部分を
示すフローチャート。
【図8】正常トランザクション処理の手順の後段部分を
示すフローチャート。
【図9】リカバリ処理の手順の前段部分を示すフローチ
ャート。
【図10】リカバリ処理の手順の後段部分を示すフロー
チャート。
【符号の説明】
11A、11B、11C サーバ(主サーバ) 14、15 端末 11D、11E サーバ(従サーバ) 17D、17E ファイル 18A、18B、18C ジャーナル 19D、19E ロックログ 22 トランザクション要求処理部 23、32 ロック・更新メッセージ処理部 24 ジャーナル処理部 25 ロック・更新処理部 26、36 リカバリ処理部 33 ロック処理部 34 ロックログ処理部 35 ファイル処理部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 相互通信可能な複数の処理装置がトラン
    ザクションを分散処理するシステムにおける、1つの処
    理装置の管理する資源に対してリカバリ処理を行うため
    の方式において、 少なくとも2つの処理装置が、前記複数の処理装置が発
    した前記資源に対する更新命令に基づく更新履歴を蓄積
    したジャーナルを分散して管理し、 前記資源を管理する処理装置が、 前記資源のリカバリ処理に必要な更新履歴を前記ジャー
    ナルを管理する処理装置へ要求する更新履歴要求手段
    と、 前記ジャーナルを管理する処理装置から送られた更新履
    歴に基づいて、前記資源の更新を実行するリカバリ手段
    とを備え、 前記ジャーナルを管理する処理装置の各々が、前記更新
    履歴要求手段からの前記要求に応じて、前記リカバリ処
    理に必要な更新履歴を前記ジャーナルより抽出して前記
    資源を管理する処理装置へ送信する更新履歴送信手段を
    備えることを特徴とするリカバリ処理方式。
  2. 【請求項2】 請求項1記載の方式において、 前記ジャーナル内の個々の更新履歴が、前記資源の更新
    後イメージを表したものであり、 前記リカバリ手段が、前記資源に対する最後の更新履歴
    のみに基づいて前記資源を更新することを特徴とするリ
    カバリ処理方式。
  3. 【請求項3】 請求項1記載の方式において、 前記更新命令を発した複数の処理装置の各々が、各自の
    発した更新命令に関するジャーナルを管理することを特
    徴とするリカバリ処理方式。
  4. 【請求項4】 請求項1記載の方式において、 前記資源を管理する処理装置が、前記資源のロック処理
    の履歴を蓄積したロックログを備え、 前記更新履歴要求手段が、前記ロックログ内のロック処
    理の履歴に基づいて、前記リカバリ処理に必要な更新履
    歴を特定することを特徴とするリカバリ処理方式。
  5. 【請求項5】 請求項2記載の方式において、 前記資源を管理する処理装置が、前記資源のロック処理
    の履歴を蓄積したロックログを備え、 前記更新履歴要求手段が、前記ロックログ内のロック処
    理の最後の履歴に基づき、前記資源に対する最新の更新
    履歴を特定し、そして、この最新の更新履歴に対する要
    求を発することを特徴とするリカバリ処理方式。
  6. 【請求項6】 相互通信可能な複数の処理装置がトラン
    ザクションを分散処理するシステムにおける、1つの処
    理装置の管理する資源に対してリカバリ処理を行うため
    の方法において、 少なくとも2つの処理装置が、前記複数の処理装置が発
    した前記資源に対する更新命令に基づく更新履歴を蓄積
    したジャーナルを分散して管理する過程と、 前記資源を管理する処理装置において、 前記資源のリカバリ処理に必要な更新履歴を前記ジャー
    ナルを管理する処理装置へ要求する過程と、 前記ジャーナルを管理する処理装置から送られた更新履
    歴に基づいて、前記資源の更新を実行する過程と、 前記ジャーナルを管理する処理装置の各々が、前記資源
    を管理する処理装置からの前記要求に応じて、前記リカ
    バリ処理に必要な更新履歴を前記ジャーナルより抽出し
    て前記資源を管理する処理装置へ送信する過程と、を備
    えることを特徴とするリカバリ処理方法。
JP7091614A 1995-02-28 1995-03-24 リカバリ処理方式及び方法 Pending JPH08263351A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7091614A JPH08263351A (ja) 1995-03-24 1995-03-24 リカバリ処理方式及び方法
EP96903243A EP0758114A4 (en) 1995-02-28 1996-02-27 COOPERATIVE DISTRIBUTED SYSTEM, NEWSPAPER PROCESSING AND RECOVERY PROCESSING IN THE SAME
US08/737,040 US6052695A (en) 1995-02-28 1996-02-27 Accurate completion of transaction in cooperative type distributed system and recovery procedure for same
PCT/JP1996/000440 WO1996027157A1 (fr) 1995-02-28 1996-02-27 Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7091614A JPH08263351A (ja) 1995-03-24 1995-03-24 リカバリ処理方式及び方法

Publications (1)

Publication Number Publication Date
JPH08263351A true JPH08263351A (ja) 1996-10-11

Family

ID=14031456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7091614A Pending JPH08263351A (ja) 1995-02-28 1995-03-24 リカバリ処理方式及び方法

Country Status (1)

Country Link
JP (1) JPH08263351A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760765B1 (en) 1999-11-09 2004-07-06 Matsushita Electric Industrial Co., Ltd. Cluster server apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760765B1 (en) 1999-11-09 2004-07-06 Matsushita Electric Industrial Co., Ltd. Cluster server apparatus

Similar Documents

Publication Publication Date Title
US5724581A (en) Data base management system for recovering from an abnormal condition
US7702660B2 (en) I/O free recovery set determination
CN109739935B (zh) 数据读取方法、装置、电子设备以及存储介质
EP0578406B1 (en) Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
AU711220B2 (en) Method of commitment in a distributed database transaction
EP0226734B1 (en) Method and apparatus for managing obsolescence of data objects
US5829022A (en) Method and apparatus for managing coherency in object and page caches
US6873995B2 (en) Method, system, and program product for transaction management in a distributed content management application
US7127475B2 (en) Managing data integrity
US6122630A (en) Bidirectional database replication scheme for controlling ping-ponging
US5151988A (en) Intersystem data base sharing journal merge method
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
JP4283576B2 (ja) トランザクション同期方法、データベースシステム及びデータベース装置
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
EP1241592A2 (en) Collision avoidance in Bidirectional database replication
JP3050510B2 (ja) イメージデータ管理装置
US20040034699A1 (en) Managing data integrity using a filter condition
CN111522631B (zh) 分布式事务处理方法、装置、服务器及介质
US20020059279A1 (en) Apparatus and method for database synchronization in a duplex system
CN111506592B (zh) 一种数据库的升级方法和装置
US20230110826A1 (en) Log execution method and apparatus, computer device and storage medium
CN112306743A (zh) 数据处理方法、装置、电子设备及计算机存储介质
US7051051B1 (en) Recovering from failed operations in a database system
JP3340431B2 (ja) データベース管理方法
JPH08263351A (ja) リカバリ処理方式及び方法