| 【発明の名称】 |
二重化計算機システム |
| 【発明者】 |
【氏名】香川 弘一
|
| 【要約】 |
【課題】データベース5を用いた計算機2aの異常発生から他の計算機2bへのこのデータベース5を含む業務継承を短時間で実施する。
【解決手段】一対の計算機及びデータベースを用いた二重化計算機システムにおいて、一方の計算機2aは、更新データ及び更新完了情報をジャーナルファイル6に書込むと共に、この更新データ及び更新完了情報を他方の計算機2bへ転送する更新情報転送手段12を有する。また、他方の計算機2bは、一方の計算機2aから更新データ及び更新完了情報を受信する毎に、この更新データ及び更新完了情報でデータベースの記憶内容を更新するための情報を記憶するリカバリーテーブル11bの記憶内容を更新するリカバリーテーブル更新手段13bと、一方の計算機2aに異常が生じた場合、リカバリーテーブルの記憶内容でデータベースの記憶内容を更新するデータベース更新手段14bとを有する。 |
【特許請求の範囲】
【請求項1】 伝送路を介して接続された一対の計算機とデータベースとを備え、前記データベースを使用している一方の計算機が前記データベースの記憶内容を更新する場合、更新データを一旦ジャーナルファイルに書込んだ後に、このジャーナルファイルの記憶内容に基づいて前記データベースの記憶内容を更新し、更新完了情報を前記ジャーナルファイルに書込み、この一方の計算機に異常が生じた場合、他方の計算機でこの異常発生時点における前記データベースに対する未使用の更新データで前記データベースの記憶内容を更新し、その後に前記他方の計算機が前記データベースの使用を開始する二重化計算機システムにおいて、前記一方の計算機は、前記更新データ及び更新完了情報を前記ジャーナルファイルに書込むと共に、この更新データ及び更新完了情報を前記他方の計算機へ転送する更新情報転送手段を有し、前記他方の計算機は、前記一方の計算機から更新データ及び更新完了情報を受信する毎に、この更新データ及び更新完了情報で前記データベースの記憶内容を更新するための情報を記憶するリカバリーテーブルの記憶内容を更新するリカバリーテーブル更新手段と、前記一方の計算機に異常が生じた場合、前記リカバリーテーブルの記憶内容で前記データベースの記憶内容を更新するデータベース更新手段とを有することを特徴とする二重化計算機システム。 【請求項2】 前記一方の計算機は、更新データ及び更新完了情報を前記ジャーナルファイルに書込むと共に、この更新データ及び更新完了情報で前記データベースの記憶内容を更新するための情報を記憶する自己のリカバリーテーブルの記憶内容を更新する自己リカバリーテーブル更新手段と、前記他方の計算機に対する更新データ及び更新完了情報の転送不能状態の復旧時に、前記自己のリカバリーテーブルの記憶内容を前記他方の計算機へ転送するリカバリーテーブル転送手段とを有し、前記他方の計算機は、前記一方の計算機からリカバリーテーブルの記憶内容を受信すると、自己のリカバリーテーブルの記憶内容を前記受信したリカバリーテーブルの記憶内容に書替えるリカバリーテーブル書替手段を有することを特徴とする請求項1記載の二重化計算機システム。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、ネットワークにより複数の計算機が相互接続された分散処理システムの一部を構成する一対の計算機とデータベースとからなる二重化計算機システムに係わり、特に、一方の計算機がデータベースを使用して処理している時にこの一方の計算機に異常が生じた場合に、他方の計算機がこのデータベースを引継いで処理を継続する二重化計算機システムに関する。 【0002】 【従来の技術】複数の計算機が相互接続された分散処理システムにおいては、各計算機はそれぞれ自己に与えられた業務を実行する。そして、任意の1台の計算機に異常が生じて業務が中断することを未然に防止するために、各計算機に対して該当計算機の業務を代行する他の計算機を予め決めておき、該当計算機に異常が生じた場合には指定された他の計算機が業務を代行して実行するようにしている。このような関係を有した一対の計算機からなるシステムを二重化計算機システムと称する。 【0003】各計算機が行う業務のなかにはデータベースを使用した業務もある。このデータベースを使用した業務とはデータベースに記憶されている情報を読出て使用する業務の他に、このデータベースの記憶内容を更新する業務もある。このようなデータベースを用いて業務を行う計算機に異常が発生した場合は、この計算機の業務を代行する他の計算機は異常が発生した計算機からデータベースを引継いで、この引継いだデータベースを用いて業務を開始する。 【0004】このような一対の計算機とデータベースとを備えた二重化計算機システムは例えば図4に示すように構成されている。伝送路1に対して一対の計算機2a,2bが接続されている。各計算機2a,2b内には、各計算機2a,2b個別のユーザアプリケーション(アプリケーション・プログラム)と各計算機2a,2bで共通するユーザアプリケーションからなる複数のユーザアプリケーション3a,3bを記憶するプログラムメモリ4a,4bと、データベース管理部7a,7bとが設けられている。そして、一方の計算機2a内にはデータベース5とジャーナルファイル6とが組込まれている。 【0005】このデータベース5とジャーナルファイル6はいずれの計算機2a,2bにも組込むことが可能であり、各計算機2a,2bに組込まれたデータベース管理部7a,7bにて書込処理及び読出処理が実施される。但し、同時に両方のデータベース管理部7a,7bからアクセスすることはできない。 【0006】各データベース管理部7a,7bは、ジャーナルファイル書込部8a,8bと、データベース書込部9a,9bと、リカバリーテーブル作成部10a,10bと、リカバリーテーブル11a,11bとで構成されている。なお、このデータベース管理部7a,7b内には、データベース5の記憶内容を読出す図示しないデータベース読出部も組込まれている。 【0007】ジャーナルファイル6内には、図5(a)に示すように、データベース5に対する[D1 →A(領域D1 のデータをデータAに更新)],[D2 →B]等の更新データ及び[(D1 →A)完了]等の更新完了情報が発生順に時系列的に書込まれる。 【0008】リカバリーテーブル11a,11b内には、図5(b)に示すように、ある特定時点におけるジャーナルファイル6の記憶内容を整理した状態の更新データが書込まれる。すなわち、ジャーナルファイル6内には更新完了情報にてデータベース5に対する記憶内容の更新済みであると判明している更新データも存在するので、これらの処理済みの更新データを破棄して、未処理の更新データのみが記憶される。図5の例においては、[D2 →B]及び[D3 →E]の未処理の更新データのみがリカバリーテーブル11a,11b内に書込まれる。 【0009】このような計算機2a,2bにおいてユーザアプリケーション3a.3bがデータベース5の記憶内容を更新ず場合の処理手順を説明する。今、データベース5を使用中の一方の計算機2aにおける一つのユーザアプリケーション3aがデータベース5の一つの領域D1 のデータをデータ[A]に更新する更新要求をデータベース管理部7aのジャーナルファイル書込部8aへ更新データ[D1 →A]として送出する。すなわち、ユーザアプリケーション3aは更新データ[D1 →A]をデータベース管理部7aへ送出した時点で、データベース5に対する更新処理は終了絵したと判断して、次の業務を開始する。 【0010】データベース管理部7aのジャーナルファイル書込部8aは更新データ[D1→A]をデータベース書込部9aへ送出するとともに、この更新データ[D1 →A]を、図5(a)に示すように、ジャーナルファイル6に時系列的に書込む。データベース書込部9aは更新データ[D1 →A]に基づいてデータベース5の領域D1 のデータをデータ[A]へ書替える。データベース書込部9aは更新データ[D1 →A]に対する更新処理(書替処理)が終了すると、更新完了情報[(D1 →A)完了]をジャーナルファイル6に時系列的に書込む。 【0011】この場合、ユーザアプリケーション3aの更新データ[D1 →A]の出力処理と、データベース書込部9aのデータベース5に対する更新処理(書替処理)とは非同期であるので、実際の更新処理(書替処理)が遅れる場合もある。 【0012】そして、例えば、一定期間経過した時点で、リカバリテーブル作成部10aが起動して、この時点におけるジャーナルファイル6の記憶内容に基づいて前述した手法でリカバリーテーブル11aを作成する。そして、このリカバリーテーブル11aに記憶された未処理の更新データを用いてデータベース5をまとめて更新する。そして、ジャーナルファイル6及びリカバリーテーブル11aの記憶内容をクリアする。 【0013】このようなデータベース5に対する更新処理を実施する計算機2aに異常が生じて、データベース5を使用した業務が実行できなくなると、この計算機2aはデータベース5を使用した業務を他方の計算機2bへ移管する。 【0014】データベース5を使用した業務を移管された計算機2bのデータベース管理部7bは、データベース5及びジャーナルファイル6に対するアクセスが可能となる。そして、データベース管理部7bのリカバリテーブル作成部10bが起動して、この時点におけるジャーナルファイル6の記憶内容に基づいて前述した手法で自己のリカバリーテーブル11bを作成する。そして、この自己のリカバリーテーブル11bに記憶された未処理の更新データを用いてデータベース5をまとめて更新する。そして、ジャーナルファイル6及びリカバリーテーブル11bの記憶内容をクリアする。 【0015】以上のデータベース管理部7bにおけるデータベース5の更新処理が終了すると、計算機2bの各ユーザアプリケーション3bはデータベース5を使用した業務処理を開始する。 【0016】 【発明が解決しようとする課題】しかしながら、図4に示す二重化計算機システムにおいても、まだ改良すべき次のような課題があった。すなわち、計算機2aの各ユーザアプリケーション3aが頻繁にデータベース5に対する更新要求を発した場合、ジャーナルファイル6に多数の更新データ及び更新完了情報が書込まれる。計算機2aにおけるリカバリーテーブル11aの作成直前に計算機2aに異常が生じた場合は、ジャーナルファイル6に多数の更新データ及び更新完了情報が残存しているので、計算機2bのデータベース管理部7bのリカバリテーブル作成部10bがリカバリーテーブル11bを作成するための処理時間が増大する。 【0017】その結果、計算機2aに異常が発生して、この計算機2aにおけるデータベース5を使用した業務が、計算機2bに継承されて、計算機2bがデータベース5を使用した業務が開始されるまでの所要時間が長くなり、業務停止時間が長期化する懸念がある、本発明はこのような事情に鑑みてなされたものであり、リカバリーテーブルを一度に作成するのではなくて、更新データ及び更新完了情報の発生する都度、リカバリーテーブルの記憶内容を更新していくことにより、データベースを使用している計算機に異常が発生した時に他の計算機にデータベースを使用する業務を短時間で継承でき、業務の停止時間を大幅に短縮でき、システム全体の信頼性を向上できる二重化計算機システムを提供することを目的とする。 【0018】 【課題を解決するための手段】本発明は、伝送路を介して接続された一対の計算機とデータベースとを備え、データベースを使用している一方の計算機がデータベースの記憶内容を更新する場合、更新データを一旦ジャーナルファイルに書込んだ後に、このジャーナルファイルの記憶内容に基づいてデータベースの記憶内容を更新し、更新完了情報をジャーナルファイルに書込み、この一方の計算機に異常が生じた場合、他方の計算機でこの異常発生時点におけるデータベースに対する未使用の更新データでデータベースの記憶内容を更新し、その後に他方の計算機がデータベースの使用を開始する二重化計算機システムに適用される。 【0019】そして、上記課題を解消するために、本発明においては、一方の計算機に対して、更新データ及び更新完了情報をジャーナルファイルに書込むと共に、この更新データ及び更新完了を他方の計算機へ転送する更新情報転送手段を付加している。また、他方の計算機に対して、一方の計算機から更新データ及び更新完了情報を受信する毎に、この更新データ及び更新完了情報でデータベースの記憶内容を更新するための情報を記憶するリカバリーテーブルの記憶内容を更新するリカバリーテーブル更新手段と、一方の計算機に異常が生じた場合、リカバリーテーブルの記憶内容でデータベースの記憶内容を更新するデータベース更新手段とを付加している。 【0020】このように構成された二重化計算機システムにおいては、データベースを使用している一方の計算機が正常状態においても、ジャーナルファイルに対する更新データ及び更新完了情報の書込みが発生する都度、この更新データ及び更新完了情報は他方の計算機へ転送される。他方の計算機はこの更新データ及び更新完了情報を用いてリカバリーテーブルの記憶内容を最新値に更新している。 【0021】したがって、データベースを使用している一方の計算機に異常が発生して、データベースを使用した業務が遂行できなくなると、他方の計算機が常に最新値に更新されているリカバリーテーブルの記憶内容を用いてデーターベースを直ちに更新する。すなわち、この他方の計算機は一方の計算機に異常が発生した時点で、リカバリーテーブルを作成する必要がない。 【0022】その結果、データベースを使用している計算機に異常が発生した時に他の計算機にデータベースを使用する業務を短時間で継承でき、業務の停止時間を極力短縮できる。 【0023】また、別の発明は、上述した発明の二重化計算機システムにおいて、一方の計算機に対して、さらに、更新データ及び更新完了情報をジャーナルファイルに書込むと共に、この更新データ及び更新完了情報でデータベースの記憶内容を更新するための情報を記憶する自己のリカバリーテーブルの記憶内容を更新する自己リカバリーテーブル更新手段と、他方の計算機に対する更新データ及び更新完了情報の転送不能状態の復旧時に、自己のリカバリーテーブルの記憶内容を他方の計算機へ転送するリカバリーテーブル転送手段とを付加している。 【0024】さらに、他方の計算機に対して、一方の計算機からリカバリーテーブルの記憶内容を受信すると、自己のリカバリーテーブルの記憶内容を受信したリカバリーテーブルの記憶内容に書替えるリカバリーテーブル書替手段を付加している。 【0025】このように構成された二重化計算機システムにおいては、データベースを使用している計算機がたとえ正常であっても、他方の計算機との間の伝送路に異常が発生すると、他方の計算機に対する更新データ及び更新完了情報の転送不能状態になる。この期間においては、他方の計算機のリカバリーテーブルの記憶内容に対する更新処理が正常に実施されない。 【0026】しかし、この期間においても、一方の計算機のリカバリーテーブルは正常に更新されているので、転送不能状態の復旧時に、他方のリカバリーテーブルを正常に更新されている一方の計算機のリカバリーテーブルの記憶内容に書替えることによって、たとえ他方の計算機に対する更新データ及び更新完了情報の転送不能期間が発生しても、他方の計算機のリカバリーテーブルは正常値を維持できる。よって、たとえ一時的な転送不能事態が発生したとしても、データベースを使用している計算機に異常が発生した時に他の計算機にデータベースを使用する業務を正しくかつ短時間で継承できる。 【0027】 【発明の実施の形態】以下、本発明の一実施形態を図面を用いて説明する。図1は本発明の一実施形態の二重化計算機システムの概略構成を示すブロック図である。図4に示す従来の二重化計算機システムと同一部分には同一符号が付してある。したがって、重複する部分の詳細説明は省略されている。 【0028】伝送路1に対して一対の計算機2a,2bが接続されている。各計算機2a,2b内には、複数のユーザアプリケーション3a,3bを記憶するプログラムメモリ4a,4bと、データベース管理部7a,7bとが設けられている。そして、一方の計算機2a内にはデータベース5とシャーナルファイル6とが組込まれている。 【0029】このデータベース5とジャーナルファイル6はいずれの計算機2a,2bに組込むことが可能であり、各計算機2a,2bに組込まれたデータベース管理部7a,7bにて書込処理及び読出処理が実施される。但し、両方のデータベース管理部7a,7bから同時にアクセスすることはできない。 【0030】データベース5を使用中の一方の計算機2aのデータデータベース管理部7a内には、ジャーナルファイル書込部8a、データベース書込部9a、ジャーナル送信部12、リカバリーテーブル更新部13a、リカバリーテーブル11a、データベース更新部14a,リカバリーテーブル送信部15等が組込まれている。 【0031】データベース5を使用中でない他方の計算機2bのデータデータベース管理部7b内には、ジャーナルファイル書込部8b、データベース書込部9b、ジャーナル受信部16、リカバリーテーブル更新部13b、リカバリーテーブル11b、データベース更新部14b,リカバリーテーブル送信部17等が組込まれている。 【0032】前記ジャーナルファイル6は、図5(a)に示したように、各更新データと更新完了情報が時系列的に書込まれる。また、各リカバリーテーブル11a,11b内には、図5(b)に示したように、現在時点における未使用(未処理)の各更新データが書込まれる。そして、この実施形態においては、更新完了情報が入力されると。この更新完了情報が指定する未使用(未処理)の更新データがこのリカバリーテーブル11a,11b内からクリアされる。すなわち。常時最新の未使用(未処理)の各更新データが記憶保持される。 【0033】そして、データベース5を使用中の一方の計算機2aのデータベース管理部7aは図2に示す流れ図に従って、データベース5に対する管理業務を実行する。いずれかのユーザアプリケーション3bからデータベース5に対する更新データを指定した更新要求が入力すると(P1)、ジャーナルファイル書込部8aはジャーナルファイル6へ更新データを時系列的に書込むと共に、この更新データをデータベース書込部9aへ送信する(P2)。次に、ジャーナル送信部12は、このジャーナルファイル6へ書込んだ更新データを伝送路1を介して他方の計算機2bへ転送する(P3)。さらに、リカバリーテーブル更新部12は、このジャーナルファイル6へ書込んだ更新データを用いて、リカバリーテーブル11aの記憶内容を更新する(P4)。なお、更新データの場合は、この更新データがリカバリーテーブル11a内に未使用(未処理)の更新データとして書込まれる。 【0034】そして、P5にて、データベース書込部9aがデータベース5の記憶内容を入力した更新データで書替(更新)えると、データベース書込部9aはジャーナルファイル6へ更新完了情報を書込む(P6)。次に、ジャーナル送信部12は、このジャーナルファイル6へ書込んだ更新完了情報を伝送路1を介して他方の計算機2bへ転送する(P3)。さらに、リカバリーテーブル更新部13aは、このジャーナルファイル6へ書込んだ更新完了情報を用いて、リカバリーテーブル11aの記憶内容を更新する(P4)。なお、更新完了情報の場合は、リカバリーテーブル11a内に記憶されてる更新完了情報の指定する未使用(未処理)の更新データをクリアする。 【0035】また、例えば、規定の時間が経過すると(P7)、データベース更新部14aが起動して、リカバリーテーブル11a内に記憶されてる未使用(未処理)の更新データでデータベース5の記憶内容を更新する(P8)。その後、ジャーナルファイル6及びリカバリーテーブル11aをクリアする。 【0036】また、P10にて、他方の計算機2bに対する更新データと更新完了情報の送信異常が復旧すると、リカバリーテーブル送信部15が起動して、自己の現在時点におけるリカバリーテーブル11aの記憶内容を他方の計算機2bへ送信する。 【0037】このように、データベース5を使用中の計算機2aは、ジャーナルファイル6に対する更新データ及び更新終了情報の書込みが発生する都度、この更新データ及び更新終了情報を他方の計算機2aへ送信している。さらに、この計算機2aは、自己内に設けられたリカバリーテーブル11aの記憶内容をジャーナルファイル6に対する更新データ及び更新終了情報の書込みが発生する都度、この更新データ及び更新終了情報で最新の記憶内容に書替えている。そして、送信異常か復旧した時点で、このリカバリーテーブル11aの記憶内容を他方の計算機2bへ送信している。 【0038】また、他方の計算機2bのデータベース管理部7bは図3に示す流れ図に従って、データベース5に対する管理業務を実行する。データベース5を使用中の計算機2aからて伝送路1を介してジャーナルファイル6に書込んだ更新データ又は更新終了情報をジャーナル受信部16が受信すると(Q1)、リカバリーテーブル更新部13bが起動して、この受信した更新データ又は更新終了情報で自己のリカバリーテーブル11bの記憶内容を前述した手法で更新する(Q2)。 【0039】また、データベース5を使用中の計算機2aとの間に通信異常が発生して、この通信異常が復旧すると(Q3)、計算機2aからリカバリーテーブル11aの記憶内容をリカバリーテーブル受信部17が受信するのを待つ(Q4)。計算機2aのリカバリーテーブル11aの記憶内容が受信されると、自己のリカバリーテーブル11bの記憶内容をこの受信した計算機2aのリカバリーテーブル11aの記憶内容に書替える(Q5)。 【0040】そして、Q6にてデータベース5を使用中の計算機2aに異常が発生して、データベース5を使用した業務の実行が不可能になると、デーテベース更新部14bが起動して、自己のリカバリーテーブル11bの記憶内容を用いてデータベース5の未更新のデータを更新する(Q7)。その後、自己のリカバリーテーブル11bの記憶内容及びジャーナルファイル6の記憶内容をクリアする(Q8)。 【0041】以上の使用計算機の変更に伴うデータベース5の更新処理が終了すると、この計算機2bは計算機2aからデータベース5の引継処理を実施する(Q9)。そして、計算機2aからデータベース5を使用した業務の引継ぎを完了して、この計算機2bはデータベース5を使用した業務を開始する(O10)。 【0042】このように、データベース5を使用中でない計算機2bは、データベース5を使用中の計算機2aから更新データ及び更新終了情報を受信すると、この更新データ及び更新終了情報で自己のリカバリーテーブル11bの記憶内容を最新値に更新している。そして、データベース5を使用中の計算機2aに異常が発生すると、この自己のリカバリーテーブル11bの記憶内容でデータベース5を最新の状態に更新している。この場合、従来システムにように、異常発生の検出時に自己のリカバリーテーブル11bをジャーナルファイル6の記憶内容を用いて新たに作成する必要がない。 【0043】その結果、データベース5を使用している計算機2aに異常が発生した時に他の計算機2bにデータベース5を使用する業務を短時間で継承でき、システム全体の業務停止時間を大幅に短縮できる。 【0044】また、データベース5を使用している計算機2aがたとえ正常であっても、他方の計算機2bとの間の伝送路1に異常が発生すると、他方の計算機2bに対する更新データ及び更新完了情報が転送不能状態になる。この期間においては、他方の計算機2bのリカバリーテーブル11bの記憶内容に対する更新処理が正常に実施されない。しかし、この期間においても、一方の計算機2aのリカバリーテーブル11aは正常に更新されている。そして、異常復旧時に正常なリカバリーテーブル11aの記憶内容を他方の計算機2bへ送信している。 【0045】したがって、たとえ他方の計算機2bに対する更新データ及び更新完了情報の転送不能期間が発生しても、他方の計算機2bのリカバリーテーブル11bは正常値を維持できる。よって、たとえ一時的な転送不能事態が発生したとしても、データベース5を使用している計算機2aが異常発生した時に他方の計算機2bにデータベース5を使用する業務を正しくかつ短時間で継承できる。 【0046】なお、本発明は上述した実施形態システムに限定されるものではない。実施形態システムにおいては、データベース5を使用する計算機2aのデータベース管理部7aにリカバリーテーブル11aを更新するリカバリーテーブル更部13aを設けて、リカバリーテーブル11aの記憶内容を常時最新値に維持するようにした。しかし、従来システムのように、規定時間経過した時点におけるデータベース5の更新時に、ジャーナルフィイル6の記憶内容を用いて一度に作成することも可能である。 【0047】 【発明の効果】以上説明したように、本発明の二重化計算機システムにおいては、データベースを使用している一方の計算機からジャーナルファイルに対する更新データ及び更新完了情報の墓込みが発生する毎に、この更新データ及び更新完了情報を他方の計算機へ転送している。そして、他方の計算機においてデータベースの更新に必要なリカバリーテーブルを一度に作成するのではなくて、更新データ及び更新完了情報の発生する都度、リカバリーテーブルの記憶内容を更新していくようにしている。 【0048】したがって、データベースを使用している計算機に異常が発生した時に他の計算機にデータベースを使用する業務を短時間で継承でき、業務の停止時間を極力短縮でき、システム全体の信頼性を向上できる。 【0049】また、たとえ一時的な転送不能事態が発生したとしても、データベースを使用している計算機に異常が発生した時に他の計算機にデータベースを使用する業務を正しくかつ短時間で継承できる。
|
| 【出願人】 |
【識別番号】000003078 【氏名又は名称】株式会社東芝
|
| 【出願日】 |
平成10年(1998)5月8日 |
| 【代理人】 |
【弁理士】 【氏名又は名称】鈴江 武彦 (外6名)
|
| 【公開番号】 |
特開平11−327985 |
| 【公開日】 |
平成11年(1999)11月30日 |
| 【出願番号】 |
特願平10−125892 |
|