(57)【要約】【課題】更新データの再送信処理を行うことなく、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの間の等価処理を行うこと。【解決手段】計算機１０２に具備されるマスタＤＢ１０１と、ネットワーク１２０を介して計算機１０２に接続される計算機１０４に具備されるレプリカＤＢ１０３と、の間のデータ等価処理を行うデータベース等価システムであって、計算機１０２は、マスタＤＢ１０１に対する新たな更新データ１０６に過去の更新データを付加した等価データ１０８を生成して計算機１０４に送信し、計算機１０４は、受信した等価データ１０８から抽出した更新データのうち、レプリカＤＢ１０３に未適用の更新データを用いてレプリカＤＢ１０３を更新する。【選択図】        図１
2008276553.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されるマスタサーバおよび１〜複数のスレーブサーバを備え、前記マスタサーバに具備されるマスタデータベースと、前記各スレーブサーバに具備されるレプリカデータベースと、の間のデータ等価処理を行うデータベース等価システムであって、
前記マスタサーバは、
マスタデータベースに対する新たな更新データに所定数の過去の更新データを付加した等価データを生成する等価データ生成手段と、
前記等価データ生成手段が生成した等価データを前記スレーブサーバに送信する等価データ送信手段と、
を備え、
前記スレーブサーバは、
前記マスタサーバから送信された等価データを受信する等価データ受信手段と、
受信した前記等価データから抽出した更新データのうち、自データベースに未適用の更新データを用いて当該自データベースを更新する等価データ更新手段と、
を備えたことを特徴とするデータベース等価システム。
【請求項２】
前記マスタデータベースが前記マスタサーバに複数存在するとき、
前記マスタサーバは、前記各マスタデータベースの更新データを取りまとめて一括送信することを特徴とする請求項１に記載のデータベース等価システム。
【請求項３】
マスタデータベースを有する前記マスタサーバが複数存在するとき、
前記各マスタサーバは、前記複数のマスタサーバ間の主従関係を切り替える系切替手段を、さらに備え、
前記系切替手段によって主系に切り替えられた主マスタサーバは、マスタサーバとして機能し、
前記系切替手段によって従系に切り替えられた従マスタサーバは、スレーブサーバとして機能する
ことを特徴とする請求項１または２に記載のデータベース等価システム。
【請求項４】
マスタサーバに具備されるマスタデータベースと、ネットワークを介して当該マスタサーバに接続される１〜複数のスレーブサーバに具備されるレプリカデータベースと、の間のデータ等価処理を行うデータベース等価方法であって、
前記マスタサーバは、マスタデータベースに対する新たな更新データに所定数の過去の更新データを付加した等価データを生成して前記スレーブサーバに送信し、
前記スレーブサーバは、前記マスタサーバから送信された前記等価データを受信するとともに、受信した等価データから抽出した更新データのうち、自データベースに未適用の更新データを用いて当該自データベースを更新することを特徴とするデータベース等価方法。
【請求項５】
前記マスタデータベースが前記マスタサーバに複数存在するとき、
前記マスタサーバは、前記各マスタデータベースの更新データを取りまとめて一括送信することを特徴とする請求項４に記載のデータベース等価方法。
【請求項６】
マスタデータベースを有する前記マスタサーバが複数存在し、当該複数のマスタサーバのうちの一つのマスタサーバを主マスタサーバとして設定し、当該主マスタサーバ以外を従マスタサーバとして設定するとき、
前記主マスタサーバをマスタサーバとして動作させるとともに、前記従マスタサーバをスレーブサーバとして動作させることを特徴とする請求項４または５に記載のデータベース等価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース等価システムおよびデータベース等価方法に関するものであり、より詳細には、ネットワークに接続された複数のサーバに具備されるデータベースの等価技術に関するものである。
【背景技術】
【０００２】
データベースの等価方法を開示した従来技術として、例えば下記特許文献１などがある。この特許文献１では、以下の処理が実行される。
【０００３】
マスタ・データベース（以下「マスタＤＢ」と表記）を有する計算機Ａと、マスタＤＢの内容をコピーしたレプリカ・データベース（以下「レプリカＤＢ」と表記）を有する計算機Ｂとが、互いにネットワークで接続された状態において、計算機Ａは、マスタＤＢを更新する際に、更新データに更新時刻を付加して記録するとともに、計算機ＢのレプリカＤＢを更新させるために、更新データおよび時刻データを計算機Ｂに送信する。一方、計算機Ｂは、ネットワークに未接続の状態から再接続の状態に移行した際、自レプリカＤＢに保持されている最新時刻を計算機Ａに送信する。計算機Ａは、受信した時刻からマスタＤＢの保持する最新時刻までのＮ個の更新データを計算機Ｂに送信する。計算機Ｂは、受信したＮ個の更新データを使いレプリカＤＢを更新する。
【０００４】
このように、特許文献１に開示されたデータベースの等価方法では、更新データの再送信を行うことにより、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの等価処理を行っていた。
【０００５】
【特許文献１】特開２００５−１５７８９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように、従来のデータベースの等価方法では、レプリカＤＢを有する計算機がネットワークに再接続した場合や、データの欠落が生じた場合には、レプリカＤＢの更新に必要な更新データを再送信するという処理を必要としていた。その一方で、更新データの再送信には、計算期間の通信の同期を取るために必要な時間と、送信そのものに掛かる時間とが必要となり、更新を完了させるまでの時間が長くなるという問題があった。
【０００７】
また、従来のデータベースの等価方法では、レプリカＤＢが多数存在する環境下において、再送信処理によってマスタＤＢを有する計算機に予期せぬタイミングで大きな負担をかける場合があるという問題があった。
【０００８】
さらに、従来のデータベースの等価方法では、更新データの再送信処理を行うために、更新データ再送要求のための送信処理、および更新データ再送信要求のための受信処理が必要となり、システムの設計が複雑になるという問題点があった。
なものにしていた
【０００９】
本発明は、上記に鑑みてなされたものであって、更新データの再送信処理を行うことなく、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの間の等価処理を行うことができるデータベース等価システムおよびデータベース等価方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明にかかるデータベース等価システムは、ネットワークに接続されるマスタサーバおよび１〜複数のスレーブサーバを備え、前記マスタサーバに具備されるマスタデータベースと、前記各スレーブサーバに具備されるレプリカデータベースと、の間のデータ等価処理を行うデータベース等価システムであって、前記マスタサーバは、マスタデータベースに対する新たな更新データに所定数の過去の更新データを付加した等価データを生成する等価データ生成手段と、前記等価データ生成手段が生成した等価データを前記スレーブサーバに送信する等価データ送信手段と、を備え、前記スレーブサーバは、前記マスタサーバから送信された等価データを受信する等価データ受信手段と、受信した前記等価データから抽出した更新データのうち、自データベースに未適用の更新データを用いて当該自データベースを更新する等価データ更新手段と、を備えたことを特徴とする。
【発明の効果】
【００１１】
本発明にかかるデータベース等価システムによれば、マスタサーバは、マスタデータベースに対する新たな更新データに過去の更新データを付加した等価データを生成してスレーブサーバに送信し、スレーブサーバは、マスタサーバから送信された等価データを受信するとともに、受信した等価データから抽出した更新データのうち、自データベースに未適用の更新データを用いて自データベースを更新するようにしているので、更新データの再送信処理を行うことなく、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの間の等価処理を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかるデータベース等価システムおよびデータベース等価方法の好適な実施の形態を図面に基づいて詳細に説明する。なお、以下に示す実施の形態により本発明が限定されるものではない。
【００１３】
実施の形態１．
（システムの構成）
図１は、本発明の実施の形態１にかかるデータベース等価システムの構成を示す図である。同図において、実施の形態１にかかるデータベース等価システムでは、マスタＤＢ１０１を有する計算機１０２（計算機Ａ：マスタサーバ）と、マスタＤＢ１０１の内容をコピーしたレプリカＤＢ１０３を有する計算機１０４（計算機Ｂ：スレーブサーバ）とが、ネットワーク１２０を介して接続されている。計算機１０２は、データベース更新プログラム１０７、等価データ作成プログラム１０９、および等価データ送信プログラム１１０の各プログラムを有している。また、計算機１０４は、計算機１０２から送信された等価データ１０８を受信する等価データ受信プログラム１１１を有している。
【００１４】
（各プログラムの機能）
まず、計算機１０２に具備されるプログラムの機能について説明する。データベース更新プログラム１０７は、更新データ１０６をマスタＤＢ１０１に書き込む処理を行う。等価データ作成プログラム１０９は、マスタＤＢ１０１に対する更新データ１０６のうち、最新の更新データとＮ−１個（Ｎは自然数）までの過去の更新データをまとめた等価データ１０８を作成する処理を行う。等価データ送信プログラム１１０は、等価データ作成プログラム１０９が作成した等価データを計算機Ｂに送信する処理を行う。一方、計算機１０４に具備される等価データ受信プログラム１１１は、計算機１０２から送信された等価データ１０８を受信する処理を行う。なお、等価データ１０８の構成要素数（データ数）である“Ｎ”は、システムの規模、データベースのサイズ、データの更新頻度等によって任意に決定することができる。
【００１５】
（等価データの構造）
図２は、実施の形態１にかかる等価データ作成プログラムによって作成される等価データの一例を示す図である。同図に示すように、等価データは、最新の更新データからＮ−１個前までの過去の更新データをまとめたデータであり、更新順序の分かる更新順序データおよび更新順序データに対応する更新データによって構成されている。
【００１６】
（システムの動作）
つぎに、実施の形態１にかかるデータベース等価システムの各プログラムを主体とする動作について図１を参照して説明する。
【００１７】
データベース更新プログラム１０７は、マスタＤＢ１０１に対する更新データ１０６が存在する場合、マスタＤＢ１０１の更新対象レコードを検索して更新対象レコードに更新データ１０６を設定する。等価データ作成プログラム１０９は、マスタＤＢ１０１を更新した計算機１０２とレプリカＤＢ１０３を有する計算機１０４とが共に接続状態の場合、マスタＤＢ１０１から等価データ１０８を作成する。等価データ送信プログラム１１０は、等価データ作成プログラム１０９が作成した等価データ１０８を計算機１０４に送信する。
【００１８】
一方、等価データ受信プログラム１１１は、計算機１０４から送信された等価データを受信するとともに、受信した等価データに含まれる更新順序データに従って、レプリカＤＢ１０３の更新を行う。ただし、等価データ１０８を展開して得た更新データ１０６がレプリカＤＢ１０３に対して適用済みの場合、当該更新データをレプリカＤＢ１０３に適用することはしない。
【００１９】
なお、計算機１０２と計算機１０４とが未接続状態の場合、計算機１０２および計算機１０４共に、特別な動作を行わない。なぜなら、未接続状態では、計算機１０２が等価データ１０８を送信したとしても、計算機１０４は等価データ１０８を受信できないからである。一方、計算機１０４が受信できなかった等価データ１０８に含まれている更新データ１０６は、計算機１０２と計算機１０４とが再び接続状態になった際に、計算機１０４が受信する等価データ１０８の中に含まれている。したがって、計算機１０４は、受信した等価データ１０８から、受信できなかった更新データ１０６を取得することで、切断されていた間のデータを補完し、データ等価を完了することができる。
【００２０】
つぎに、上記した動作を、図３−１および図３−２の処理フローに従って説明する。ここで、図３−１は、実施の形態１にかかるデータベース等価システムの計算機１０２（計算機Ａ）を主体とする等価処理の流れを示すフローチャートであり、図３−２は、実施の形態１にかかるデータベース等価システムの計算機１０４（計算機Ｂ）を主体とする等価処理の流れを示すフローチャートである。
【００２１】
図３−１において、マスタＤＢを有する計算機Ａ（計算機１０２）は、データの更新があるか否か、すなわち更新データが存在するか否かを一定時間毎に確認する（ステップＳ１０１）。データの更新がない場合（ステップＳ１０１，Ｎｏ）、データの更新があるか否かの判定（ステップＳ１０１）が継続される。一方、データの更新がある場合（ステップＳ１０１，Ｙｅｓ）、計算機Ａは、更新データを使用してマスタＤＢを更新し（ステップＳ１０２）、計算機Ｂ（計算機１０４）の接続状態を確認する（ステップＳ１０３）。計算機Ｂが接続されていない場合（ステップＳ１０３，Ｎｏ）、ステップＳ１０１の処理に戻りデータの更新があるか否かの判定が継続される。一方、計算機Ｂが接続されている場合（ステップＳ１０３，Ｙｅｓ）、計算機Ａは、等価データを計算機Ｂに送信するとともに（ステップＳ１０５）、ステップＳ１０１の処理に戻ってデータの更新があるか否かの判定を継続する。
【００２２】
また、図３−２において、計算機Ｂ（計算機１０４）は、等価データの受信状況を一定時間ごとに監視する（ステップＳ１１０）。等価データを受信していない場合には（ステップＳ１１０，Ｎｏ）、等価データの監視（ステップＳ１１０）が継続される。一方、等価データを受信している場合（ステップＳ１１０，Ｙｅｓ）、計算機Ｂは、最新の更新データと過去の所定数の更新データで構成される等価データを展開して（ステップＳ１１１）、Ｍ（Ｍ＝１，２，…，Ｎ）番目の更新データを取得するとともに（ステップＳ１１２）、取得したＭ番目の更新データがレプリカＤＢに適用済みであるか否かを確認し（ステップＳ１１３）、当該Ｍ番目の更新データが未適用の場合には（ステップＳ１１３，Ｙｅｓ）、当該更新データをレプリカＤＢ１０３に適用する（ステップＳ１１４）。また、計算機Ｂは、取得したＮ個全ての更新データのレプリカＤＢへの適用・非適用を判定し（ステップＳ１１５）、全更新データの判定が終了していない場合には（ステップＳ１１５，Ｎｏ）、ステップＳ１１２〜Ｓ１１５の処理を継続実施する一方で、全更新データの判定が終了した場合には（ステップＳ１１５，Ｙｅｓ）、ステップＳ１１０の処理に戻って等価データの受信監視を継続する。
【００２３】
このように、実施の形態１にかかるデータベース等価システムおよびデータベース等価方法では、計算機Ａは、マスタＤＢに対する新たな更新データに過去の更新データを付加した等価データを生成して計算機Ｂに送信し、計算機Ｂは、受信した等価データから抽出した更新データのうち、レプリカＤＢに未適用の更新データを用いてレプリカＤＢを更新するようにしているので、更新データの再送信処理を行うことなく、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの間の等価処理を行うことができる。
【００２４】
また、実施の形態１にかかるデータベース等価システムおよびデータベース等価方法では、計算機Ｂからの再送要求を行うことなく、計算機Ａから送信される等価データのみを利用してレプリカＤＢへの等価処理を行っているので、マスタＤＢとレプリカＤＢとの間のデータベース等価処理に要する時間を短縮化することができる。
【００２５】
実施の形態２．
（システムの構成）
図４は、本発明の実施の形態２にかかるデータベース等価システムの構成を示す図である。図１に示した実施の形態１にかかるデータベース等価システムでは、マスタＤＢおよびレプリカＤＢをそれぞれ一つとする実施態様を示したが、この実施の形態にかかるデータベース等価システムでは、マスタＤＢおよびレプリカＤＢが一つの計算機内に複数ある場合の実施態様を示すものである。なお、計算機４００において、第１の更新データである更新データ４０１（更新データ１）は、マスタＤＢ４０２（マスタＤＢ１）用の更新データであり、第２の更新データである更新データ４０３（更新データ２）は、マスタＤＢ４０４（マスタＤＢ２）用の更新データである。
【００２６】
（等価データの構造）
図５は、実施の形態２にかかる等価データ作成プログラムによって作成される等価データの一例を示す図である。同図に示すように、実施の形態２にかかる等価データでは、更新データがどのマスタＤＢ（マスタＤＢ１、マスタＤＢ２）によって更新されたのかを判別するための“更新ＤＢ”というフィールドが設けられており、マスタＤＢおよびレプリカＤＢが一つの計算機内に複数ある場合でも適用することができるデータ構造となっている。
【００２７】
（システムの動作）
つぎに、実施の形態２にかかるデータベース等価システムの動作について説明する。データベース更新プログラム４０５は、更新データ４０１をマスタＤＢ４０２に書き込むとともに、更新データ４０３をマスタＤＢ４０４に書き込む。等価データ作成プログラム４０６は、マスタＤＢ４０２およびマスタＤＢ４０４の双方の更新データを用いて等価データ４０７を作成する。等価データ送信プログラム４０８は、等価データ作成プログラム４０６が作成した等価データ４０７を計算機４０９に送信する。
【００２８】
一方、等価データ受信プログラム４１０は、計算機４００から送信された等価データを受信するとともに、受信した等価データに付与されているＤＢ番号に基づいて更新データ４０１と更新データ４０３とを識別して抽出する。抽出された更新データ４０１および更新データ４０３のうち、更新データ４０１はレプリカＤＢ４１１（レプリカＤＢ１）に適用され、更新データ４０３はレプリカＤＢ４１２（レプリカＤＢ２）に適用される。ただし、各更新データが、対応するレプリカＤＢに対して適用済みの場合には、実施の形態１と同様に各レプリカＤＢへの適用は行われない。
【００２９】
なお、図４に示すシステム構成では、マスタＤＢが２つの場合について述べたが、マスタＤＢが３つ以上の場合にも同様の方式にて実施可能であることは無論である。
【００３０】
このように、実施の形態２にかかるデータベース等価システムおよびデータベース等価方法では、計算機Ｂからの再送要求を行うことなく、計算機Ａから送信される等価データのみを利用してレプリカＤＢへの等価処理を行っているので、マスタＤＢとレプリカＤＢとの間のデータベース等価処理要する時間を短縮化することができる。
【００３１】
また、実施の形態２にかかるデータベース等価システムおよびデータベース等価方法によれば、計算機内に複数のデータベースが存在するシステム構成であっても、再送要求を行うことのないデータベース等価処理を行うことができるので、マスタＤＢを有する計算機に対する予期せぬ処理負担の増加を抑制することができる。
【００３２】
実施の形態３．
（システムの構成）
図６は、本発明の実施の形態３にかかるデータベース等価システムの構成を示す図である。図４に示した実施の形態２にかかるデータベース等価システムでは、マスタＤＢおよびレプリカＤＢが一つの計算機内に複数ある場合の実施態様を示したが、この実施の形態にかかるデータベース等価システムでは、マスタＤＢが２台以上の計算機に分散して配置されている実施態様を示すものである。すなわち、計算機６０３（計算機Ａ）には、第１の更新データである更新データ６０５（更新データ１）が適用されるマスタＤＢ６０７（マスタＤＢ１）が具備され、計算機６０４（計算機Ｂ）には、第２の更新データである更新データ６１３（更新データ２）が適用されるマスタＤＢ６１２（マスタＤＢ２）が具備されている。また、各計算機は、それぞれが相手方の計算機との間で主従の関係となり得る。例えば、計算機６０３がマスタサーバとして機能するときは、計算機６０４がスレーブサーバとなる。逆に、計算機６０４がマスタサーバとして機能するときは、計算機６０３がスレーブサーバとなる。このため、各計算機は、実施の形態１，２で示した４つのプログラム（データベース更新プログラム、等価データ作成プログラム、等価データ送信プログラム、および等価データ受信プログラム）を有するとともに、主従関係を切り替えるための系切替実行プログラムを有するように構成される。
【００３３】
（システムの動作）
つぎに、実施の形態３にかかるデータベース等価システムの動作について説明する。なお、いま、計算機６０３（計算機Ａ）が主従関係における主の状態であり、計算機６０４（計算機Ｂ）が従の状態であると仮定する。更新データ６０５（更新データ１）が生じた場合、データベース更新プログラム６０６は、マスタＤＢ６０７（マスタＤＢ１）を更新する。その後の動作は、実施の形態１と同様であり、計算機６０３の等価データ作成プログラム６０８が、等価データ６０９を作成し、等価データ送信プログラム６１０によって計算機６０４に等価データ６０９を送信する。計算機６０４の等価データ受信プログラム６１１は、計算機６０３から送信されてきた等価データ６０９から更新データ６０５取り出し、マスタＤＢ６１２（マスタＤＢ２）を更新する。なお、この主従関係では、更新データ６１３（更新データ２）が計算機６０４に入力されても計算機６０４はその入力を受け付けない。
【００３４】
一方、主従関係は、計算機６０３，６０４にそれぞれ具備される系切替実行プログラム６０１，６０２によって切り替えられる。いま、計算機６０３が主の状態であり、計算機６０４が従の状態であるとき、計算機６０３または計算機６０４の系切替実行プログラム６０１，６０２が実行された場合には、計算機６０３は従の状態に移行し、計算機６０４は主の状態に移行する。ここで、主の状態である計算機６０４に更新データ６１３（更新データ２）が入力されると、計算機６０４のデータベース更新プログラム６１４は、入力された更新データ６１３を使用してマスタＤＢ６１２を更新する。その後の動作は、実施の形態１と同様であり、計算機６０４の等価データ作成プログラム６１５が、等価データ６１６を作成し、等価データ送信プログラム６１７によって計算機６０３に等価データ６１６を送信する。計算機６０３の等価データ受信プログラム６１８は、計算機６０４から送信されてきた等価データ６１６から更新データ６１３を取り出し、マスタＤＢ６０７（マスタＤＢ１）を更新する。
【００３５】
このようにして実施の形態３では、マスタＤＢを有する計算機の２重化を実現している。また、計算機Ａ、計算機Ｂと同様の構成の計算機Ｃを導入した場合にでも、一つの計算機を主の状態にし、残りの計算機を従の状態にすることで、マスタＤＢを有する計算機の３重化が実現可能である。さらに同様の方式により、マスタＤＢを有する計算機のＮ重化が実現可能である。
【産業上の利用可能性】
【００３６】
以上のように、本発明にかかるデータベース等価システムおよびデータベース等価方法は、更新データの再送信処理を行うことなく、ネットワークに接続された複数のサーバ間に存在するマスタＤＢとレプリカＤＢとの間の等価処理を行うことができる発明として有用である。
【図面の簡単な説明】
【００３７】
【図１】本発明にかかるデータベース等価システムの構成を示すブロック図である。
【図２】実施の形態１にかかる等価データ作成プログラムによって作成される等価データの一例を示す図である。
【図３−１】実施の形態１にかかるデータベース等価システムの計算機Ａを主体とする等価処理の流れを示すフローチャートである。
【図３−２】実施の形態１にかかるデータベース等価システムの計算機Ｂを主体とする等価処理の流れを示すフローチャートである。
【図４】本発明の実施の形態２にかかるデータベース等価システムの構成を示す図である。
【図５】実施の形態２にかかる等価データ作成プログラムによって作成される等価データの一例を示す図である。
【図６】本発明の実施の形態３にかかるデータベース等価システムの構成を示す図である。
【符号の説明】
【００３８】
１０１，４０２，４０４，６０７，６１２  マスタＤＢ
１０２，１０４，４００，４０９，６０３，６０４  計算機
１０３，４１１，４１２  レプリカＤＢ
１２０，４２０，６２０  ネットワーク
１０６，４０１，４０３，６０５，６１３  更新データ
１０７，４０５，６０６，６１４  データベース更新プログラム
１０８，４０７，６０９，６１６  等価データ
１０９，４０６，６０８，６１５  等価データ作成プログラム
１１０，４０８，６１０，６１７  等価データ送信プログラム
１１１，４１０，６１１，６１８  等価データ受信プログラム
６０１，６０２  系切替実行プログラム
【図１】
2008276553.tif 000003
【図２】
2008276553.tif 000004
【図３−１】
2008276553.tif 000005
【図３−２】
2008276553.tif 000006
【図４】
2008276553.tif 000007
【図５】
2008276553.tif 000008
【図６】
2008276553.tif 000009