(57)【要約】【課題】冗長性が失われるおそれを防止する。【解決手段】各データベース装置は、マスタであるとき、マスタ交代の際にスレーブのデータベース装置へのレプリケーションの要求が掃き出し完了したか否かを記憶する完了フラグを記憶するフラグ記憶部１１と、マスタからスレーブに変更した際、前記完了フラグのデータを新たにマスタとなるデータベース装置に送信する送信手段１４と、スレーブからマスタに変更した際、旧マスタのデータベース装置から受信した完了フラグのデータに基づいて、スレーブのデータベース装置からのレプリケーション開始要求に対し、自装置が記憶するデータを全件送信するかまたは一件も送信せずに同期完了とするかを判断する手段とを備える。【選択図】図４
2015153285.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベース装置でデータを同期して記憶し、いずれか１台のデータベース装置がマスタとして設定され、他のデータベース装置がスレーブとして設定される冗長化データベースシステムであって、
前記各データベース装置は、
マスタであるとき、マスタを交代する際に旧マスタのデータベース装置におけるデータ更新処理とスレーブのデータベース装置へのレプリケーションの要求が全て完了したか否かを特定する完了フラグを記憶するフラグ記憶部と、
マスタからスレーブに変更した際、前記完了フラグのデータを新たにマスタとなるデータベース装置に送信する送信手段と、
スレーブからマスタに変更した際、旧マスタのデータベース装置から受信した完了フラグのデータに基づいて、スレーブのデータベース装置からのレプリケーションの開始要求に対し、自装置が記憶するデータを全件送信するかまたは一件も送信せずに同期完了とするかを判断する手段と、
を備えることを特徴とする冗長化データベースシステム。
【請求項２】
前記フラグ記憶部は、複数のスレーブのデータベース装置に対する完了フラグをそれぞれ記憶し、
前記同期手段は、
スレーブからマスタに変更した際、旧マスタのデータベース装置から完了フラグのデータを受信する前に他のスレーブのデータベース装置からレプリケーションの要求を受信すると、前記旧マスタのデータベース装置から完了フラグのデータを受信するまで待機する
ことを特徴とする請求項１に記載の冗長化データベースシステム。
【請求項３】
複数のデータベース装置でデータを同期して記憶し、いずれか１台のデータベース装置がマスタとして設定され、他のデータベース装置がスレーブとして設定される冗長化データベースシステムで利用されるデータベース装置であって、
マスタであるとき、自装置で記憶するデータが更新されるとスレーブのデータベース装置とのデータの同期が完了したか否かを特定する完了フラグを記憶するフラグ記憶部と、
マスタからスレーブに変更した際、前記完了フラグのデータを新たにマスタとなるデータベース装置に送信する送信手段と、
スレーブからマスタに変更した際、旧マスタのデータベース装置から受信した完了フラグのデータに基づいて、データが同期されていないスレーブのデータベースに対し、自装置が記憶するデータを送信する同期手段と、
を備える
ことを特徴とするデータベース装置。
【請求項４】
複数のデータベース装置でデータを同期して記憶し、いずれか１台のデータベース装置がマスタとして設定され、他のデータベース装置がスレーブとして設定される冗長化データベースシステムで実行されるマスタ交代方法であって、
前記データベース装置において、マスタであるとき、自装置で記憶するデータが更新されるとスレーブのデータベース装置とのデータの同期が完了したか否かを特定する完了フラグをフラグ記憶部に記憶するステップと、
マスタからスレーブに変更するデータベース装置において、前記完了フラグのデータを新たにマスタとなるデータベース装置に送信するステップと、
スレーブからマスタに変更するデータベース装置において、旧マスタのデータベース装置から受信した完了フラグのデータに基づいて、データが同期されていないスレーブのデータベースに対し、自装置が記憶するデータを送信するステップと、
を有することを特徴とするマスタ交代方法。
【請求項５】
前記フラグ記憶部は、複数のスレーブのデータベース装置に対してそれぞれ完了フラグを記憶し、
スレーブからマスタに変更するデータベース装置は、旧マスタのデータベース装置から完了フラグのデータを受信する前に他のスレーブのデータベース装置からレプリケーションの要求を受信すると、前記旧マスタのデータベース装置から完了フラグのデータを受信するまで待機するステップ
を有することを特徴とする請求項４記載のマスタ交代方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースを有する冗長化データベースシステム、データベース装置及び冗長化データベースシステムでマスタを交代する際のマスタ交代方法に関する。
【背景技術】
【０００２】
複数のデータベース装置（ＤＢ装置）のうち１台をマスタとし、その他をスレーブとし、各ＤＢ装置間で同一のデータを記憶する冗長化データベースシステムがある。冗長化データベースシステムでは、いずれかのＤＢ装置が故障した場合でも他のＤＢ装置でデータが保存されるため、データ保存の信頼性が高い特徴がある。
【０００３】
このような冗長化データベースシステムでは、データ保存の信頼性を向上するため、データの同期方法が重要であり、様々な方法が提案されている（例えば、特許文献１参照）。特許文献１では、スレーブとマスタのＤＢ装置が一時的に切断された場合に差分レプリケーションを利用してデータの同期のための時間を短縮する技術について提案されている。
【０００４】
冗長化データベースシステムでマスタとスレーブの間のデータ同期が失われる場合としては、特許文献１に記載されるようなスレーブとマスタのＤＢ装置が切断する場合の他、マスタの故障等によりマスタの交代を行う場合とがある。マスタの故障等によりマスタの交代が生じた場合、旧スレーブのＤＢ装置で記憶するデータが旧マスタのＤＢ装置で記憶するデータと同期していることを保証することが困難となることがある。新マスタと旧マスタの間や、新マスタとスレーブの間のデータが同期する最も簡単な解決方法の一つは、新マスタのデータを全スレーブに全件レプリケーションすることである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７１４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、故障等の発生により、マスタが交代した際に、新マスタと他のスレーブとのデータ同期を行う最も簡単な方法としては、全スレーブへ全件レプリケーションする方法がある。しかし、各スレーブのＤＢ装置で全件レプリケーションを実行する間、各スレーブのＤＢ装置が記憶するデータは完成しておらず、これらのデータはレプリカではない。したがって、レプリケーションを実行の間、冗長性データベースシステムでは、冗長性が失われた状態にある。
【０００７】
仮に、冗長性データベースシステムで冗長性が失われた状態でマスタのＤＢ装置に故障が発生すると、冗長性データベースシステムでデータを全損するおそれがある。したがって、冗長性が失われた状態にある時間をできる限り短縮することが好ましい。
【０００８】
上記課題に鑑み、本発明では、冗長性データシステムで冗長性が失われるおそれを防止することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る冗長化データベースシステムは、複数のデータベース装置でデータを同期して記憶し、いずれか１台のデータベース装置がマスタとして設定され、他のデータベース装置がスレーブとして設定される冗長化データベースシステムであって、各データベース装置は、マスタであるとき、マスタを交代する際に旧マスタのデータベース装置におけるデータ更新処理とスレーブのデータベース装置へのレプリケーションの要求が全て完了したか否かを特定する完了フラグを記憶するフラグ記憶部と、マスタからスレーブに変更した際、完了フラグのデータを新たにマスタとなるデータベース装置に送信する送信手段と、スレーブからマスタに変更した際、旧マスタのデータベース装置から受信した完了フラグのデータに基づいて、スレーブのデータベース装置からのレプリケーションの開始要求に対し、自装置が記憶するデータを全件送信するかまたは一件も送信せずに同期完了とするかを判断する手段を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、冗長化データベースシステムにおいてマスタの交代後に不必要な全件レプリケーションを防止し、冗長性が失われるおそれを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、冗長化データベースシステムを説明する概略図である。
【図２】図２は、冗長化データベースシステムにおける一般的なレプリケーションの処理を説明するシーケンス図である。
【図３】図３は、冗長化データベースシステムにおける一般的なマスタ交代の処理を説明するシーケンス図である。
【図４】図４は、実施形態に係る冗長化データベースシステムを説明する概略図である。
【図５】図５は、実施形態に係る冗長化データベースシステムにおけるマスタ交代の処理の一例を説明するシーケンス図である。
【図６】図６は、実施形態に係る冗長化データベースシステムにおけるマスタ交代の処理の他の例を説明するシーケンス図である。
【図７】図７は、実施形態に係る冗長化データベースシステムにおけるマスタ交代の処理の他の例を説明するシーケンス図である。
【発明を実施するための形態】
【００１２】
以下に、図面を用いて本発明の各実施形態に係る冗長化データベースシステム、データベース装置及びマスタ交代方法について説明する。なお、以下の説明において、同一の構成については同一の符号を付して説明を省略する。
【００１３】
図１（ａ）に示すように、実施形態に係る冗長化データベースシステム１００は、同一のデータを管理する複数のデータベース装置（ＤＢ装置）１〜３が接続されるシステムである。この冗長化データベースシステム１００では、１台のＤＢ装置１がマスタとして設定され、他のＤＢ装置２、３がスレーブとして設定される。各ＤＢ装置１〜３で記憶されるデータは、同期される。具体的には、マスタの第１ＤＢ装置１でデータが更新されると、レプリケーションにより同一のデータ（レプリカ）がスレーブの第２ＤＢ装置２及び第３ＤＢ装置３に記憶される。
【００１４】
また、冗長化データベースシステム１００では、冗長化データベースシステム１００の保守時や第１ＤＢ装置１で故障が発生した場合、マスタが交代される。ここで、故障とは、後述するレプリケーション要求完了通知の送受信が可能である程度のソフトウェア故障等のマスタの交代に影響を与えない故障であって、第１ＤＢ装置１の全損やネットワークの全断等の故障ではない。
【００１５】
例えば、図１（ｂ）に示すように、第１ＤＢ装置１をマスタからスレーブに変更し、第２ＤＢ装置２をスレーブからマスタに変更する。また、マスタに変更された第２ＤＢ装置２は、スレーブである他のＤＢ装置１、３からレプリケーションが要求され、データが同期される。実施形態に係るマスタ交代方法は、このように、冗長化データベースシステム１００においてマスタとスレーブを交代する際の方法である。
【００１６】
図２のシーケンス図を用いて、正常時における処理について説明する。冗長化データベースシステム１００では、例えば、マスタの第１ＤＢ装置１は、ホスト装置４から、記憶するデータの更新を要求する更新要求を受信すると（Ｓ１）、受信した更新要求にしたがって、データを更新する（Ｓ２）。
【００１７】
マスタの第１ＤＢ装置１は、スレーブの第２ＤＢ装置２に、データの更新に関するレプリケーション要求を送信する（Ｓ３）。第２ＤＢ装置２では、レプリケーション要求にしたがって、データを更新する（Ｓ４）。これにより、第２ＤＢ装置２では、第１ＤＢ装置１と同一のデータ（レプリカ）が記憶される。
【００１８】
また、第２ＤＢ装置２では、更新が完了した完了通知をマスタの第１ＤＢ装置１に送信する（Ｓ５）。
【００１９】
ここで、マスタのＤＢ装置は、接続される全てのスレーブのＤＢ装置に対してレプリケーションの要求を送信する。したがって、図１に示すように冗長化データベースシステム１００が２台のスレーブのＤＢ装置を有する場合、ステップＳ３〜Ｓ５の処理は、第２ＤＢ装置２及び第３ＤＢ装置３の２台のＤＢ装置との間でそれぞれ実行される。
【００２０】
全てのスレーブのＤＢ装置から完了通知を受信すると、マスタの第１ＤＢ装置１は、ホスト装置４に完了通知を送信する（Ｓ６）。
【００２１】
次に、図３のシーケンス図を用いて、単純な冗長化データベースシステムで実行されるマスタの交代方法の例について説明する。例えば、マスタの第１ＤＢ装置１は、ホスト装置４から、記憶するデータの更新要求を受信すると（Ｓ１１）、受信した更新要求にしたがって、データを更新する（Ｓ１２）。
【００２２】
ここで、第１ＤＢ装置１が故障の発生を検出すると、第１ＤＢ装置１は、マスタの交代処理を開始する（Ｓ１３）。また、これにより、第１ＤＢ装置１では、掃き出しを開始する（Ｓ１４）。
【００２３】
『掃き出し』は、マスタとスレーブの交代を実行する際、旧マスタのＤＢ装置が実行の必要があるレプリケーションの処理があるとき、レプリケーション処理が完了するまでマスタとスレーブの交代を開始せず、また、ホスト装置４からの新規のデータの更新要求も受け付けないようにすることをいう。
【００２４】
また、第１ＤＢ装置１は、ステップＳ１２で実行した更新処理に応じてデータを同期させるため、第２ＤＢ装置２にレプリケーション要求を送信する（Ｓ１５）。このレプリケーション要求は、ステップＳ１２で更新したデータの内容を含み、第１ＤＢ装置１が第２ＤＢ装置２にデータを同期させるものである。第２ＤＢ装置２では、レプリケーション要求にしたがって、データを更新する（Ｓ１６）。
【００２５】
旧マスタであった第１ＤＢ装置１は、上述したように掃き出しが継続する間、再びホスト装置４から更新要求を受信すると（Ｓ１７）、ホスト装置４にエラー通知を送信する（Ｓ１８）。
【００２６】
第２ＤＢ装置２は、レプリケーションの要求に応じたデータの更新処理が終了すると、更新が完了した完了通知を旧マスタの第１ＤＢ装置１に送信する（Ｓ１９）。
【００２７】
その後、第１ＤＢ装置１はホスト装置４に、更新が完了した完了通知を送信し（Ｓ２０）、掃き出し処理を終了する（Ｓ２１）。
【００２８】
掃き出しが終了すると、中断していたマスタとスレーブとの処理を再開するため、第１ＤＢ装置１は、第２ＤＢ装置２にスレーブからマスタへ変更することを要求するマスタ化通知を送信する（Ｓ２２）。また、第１ＤＢ装置１は、マスタ交代の処理を終了し（Ｓ２３）、自装置のスレーブとしての処理を開始する（Ｓ２４）。
【００２９】
一方、第１ＤＢ装置１からマスタ化通知を受信した第２ＤＢ装置２は、マスタとしての処理を開始する（Ｓ２５）。
【００３０】
スレーブとなった第１ＤＢ装置１は、マスタである第２ＤＢ装置２とのデータの同期させるため、第２ＤＢ装置２にレプリケーション開始要求を送信する（Ｓ２６）。このレプリケーション開始要求は、スレーブとなった第１ＤＢ装置１がマスタの第２ＤＢ装置２と同期するため、レプリケーションのためのデータの送信をリクエストするものである。また、レプリケーション開始要求を受信した第２ＤＢ装置２は、第２ＤＢ装置２が記憶するデータと第１ＤＢ装置１が記憶するデータとの差分が不明である。したがって、第２ＤＢ装置２は、全件レプリケーションを第１ＤＢ装置１に送信する。
【００３１】
これに対し、実施形態に係る冗長化データベースシステム１００では、図４を用いて後述するように、マスタとなったＤＢ装置では、フラグ記憶部１１において、スレーブのＤＢ装置とデータの同期が完了したか否かに関する『完了フラグ』を記憶し、これに応じて全件レプリケーションの実行の要否を判断する。
【００３２】
具体的には、図４（ａ）に示すように、第１ＤＢ装置１は、冗長化データベースシステム１００で管理するデータを記憶するデータ記憶部１０と、マスタに設定されるとき、マスタとスレーブのＤＢ装置の同期の完了に関する『完了フラグ』を記憶するフラグ記憶部１１と、ホスト装置４から受信したデータで、データ記憶部１０のデータの更新を実行する更新手段１２と、マスタとスレーブのＤＢ装置のデータの同期を実行するとともに、必要に応じてフラグ記憶部１１の完了フラグを更新する同期手段１３と、マスタからスレーブに交代した際、フラグ記憶部１１のフラグを新たにマスタになったＤＢ装置に送信する送信手段１４を備えている。
【００３３】
なお、第２ＤＢ装置２及び第３ＤＢ装置３も、第１ＤＢ装置１と同様に、データ記憶部１０、フラグ記憶部１１、更新手段１２、同期手段１３及び送信手段１４を有し、スレーブに設定される際にはスレーブのＤＢ装置として必要な処理を実行し、マスタに交代された際には、マスタのＤＢ装置として必要な処理を実行する。
【００３４】
マスタ交代を開始すると、マスタの第１ＤＢ装置１はデータ更新処理の『掃き出し』を行う。すなわち、ホストのＤＢ装置からの新規のデータ更新要求の受け付けを止めた上で、処理中の更新処理が完了するまで、新マスタのＤＢ装置に「マスタ化通知」を送信せずに待機する。データ更新処理の『掃き出し』が完了し、第２ＤＢ装置２へのレプリケーション要求が全て成功していたならば、図４（ａ）に示すように、フラグ記憶部１１において、第２ＤＢ装置２への掃き出しの完了を表す「完了フラグ２」を「完了」に設定する。また、データ更新処理の『掃き出し』が完了し、第３ＤＢ装置３へのレプリケーション要求が全て成功していたならば、フラグ記憶部１１において、第３ＤＢ装置３への掃き出しの完了を表す「完了フラグ３」を「完了」に設定する。
【００３５】
このように、「完了フラグ２」及び「完了フラグ３」が「完了」であれば、旧マスタであった第１ＤＢ装置１で記憶されていたデータは、旧スレーブであった第２ＤＢ装置２及び第３ＤＢ装置３と同一であることが分かるため、「完了フラグ２」と「完了フラグ３」を第２ＤＢ装置２へ伝達することにより、レプリケーションは不要とできる。
【００３６】
新たにスレーブとなった第１ＤＢ装置１の送信手段１４は、図４（ｂ）に示すように、「完了フラグ２」及び「完了フラグ３」である「完了」を新たにマスタとなった第２ＤＢ装置２に送信する。その後、第１ＤＢ装置１の同期手段１３は、「完了フラグ２」及び「完了フラグ３」を「未完了」に更新する。
【００３７】
新たにマスタとなった第２ＤＢ装置２の同期手段１３は、第１ＤＢ装置１におけるレプリケーションの完了を表す「完了フラグ１」及び第３ＤＢ装置３におけるレプリケーションの完了を表す「完了フラグ３」を、初期設定の「未完了」に設定する。
【００３８】
図５に示すシーケンス図を利用して、実施形態に係る冗長化データベースシステム１００について具体的に説明する。図５に示すフローチャートでは、図３を用いて説明したステップＳ１１〜Ｓ２５の処理は、同一である。ただし、マスタの第１ＤＢ装置１では、始めに「完了フラグ」として、初期値の「未完了」を記憶している。
【００３９】
処理中のデータ更新処理が全て完了して掃き出しが終了し（Ｓ２１）、かつ、それまでの第２ＤＢ装置２へのレプリケーション要求が全て成功していたならば、「完了フラグ２」を「完了」に更新する（Ｓ３１）。これにより、第１ＤＢ装置１と第２ＤＢ装置２は、マスタ交代時にデータが同期状態であったことが分かる。
【００４０】
ステップＳ２４で自装置のスレーブとしての処理を開始した第１ＤＢ装置１は、「完了フラグ２」のデータである「完了」を読み出し（Ｓ３２）、読み出した完了フラグデータとともに、新たにマスタとなった第２ＤＢ装置２に、データの同期を要求するレプリケーション開始要求を送信する（Ｓ３３）。
【００４１】
このレプリケーション開始要求及び完了フラグデータ（完了）を受信したマスタである第２ＤＢ装置２は、第１ＤＢ装置１と第２ＤＢ装置２とが同期していることがわかるため、レプリケーションは不要と判断する。したがって、第２ＤＢ装置２から第１ＤＢ装置１へのデータの送信は実行されない。
【００４２】
また、第１ＤＢ装置１は、レプリケーション開始要求及び完了フラグデータを送信すると、「完了フラグ２」を「完了」から「未完了」に更新する（Ｓ３４）。
【００４３】
このように、冗長性データベースシステム１００では、マスタのＤＢ装置に完了フラグを設け、マスタは交代の際に、スレーブのＤＢ装置へのレプリケーションの掃き出しが完了したか否かを記憶する。また、マスタの交代によりスレーブとなった旧マスタであるＤＢ装置は、旧スレーブとのデータの掃き出しの完了を表す完了フラグのデータをレプリケーション開始要求の送信の際に新マスタであるＤＢ装置に送信する。これにより、新マスタとなったＤＢ装置は、旧マスタのＤＢ装置から引き継いだ完了フラグのデータから、旧マスタのＤＢ装置とのデータの同期を判断することができる。したがって、レプリケーションの要否を判断し、不要な全件レプリケーションの実行を防止し、冗長性が失われることを防ぐことができる。
【００４４】
［スレーブが２台存在する場合］
図５では、スレーブが１台の場合で説明したが、図６に示すシーケンス図を利用して、スレーブが２台存在する場合の処理について説明する。図６では、第１ＤＢ装置１がマスタからスレーブに変更し、第２ＤＢ装置２がスレーブからマスタに変更し、第３ＤＢ装置３は、スレーブを継続する場合の一例である。図６では、ステップＳ１１〜Ｓ１４までの処理は図３及び図５と同一である。
【００４５】
ステップＳ１２で更新処理を実行すると、第１ＤＢ装置１は、第２ＤＢ装置２及び第３ＤＢ装置３のそれぞれにレプリケーション要求を送信する（Ｓ１５−１、Ｓ１５−２）。
【００４６】
レプリケーション要求を受信した第２ＤＢ装置２及び第３ＤＢ装置３は、それぞれ、レプリケーション要求にしたがって、データを更新する（Ｓ１６−１、Ｓ１６−２）。また、データの更新処理が終了した第２ＤＢ装置２及び第３ＤＢ装置３は、更新が完了した完了通知を旧マスタの第１ＤＢ装置１に送信する（Ｓ１９−１、Ｓ１９−２）。
【００４７】
第２ＤＢ装置２及び第３ＤＢ装置３から完了通知を受信した第１ＤＢ装置１は、ホスト装置４に完了通知を送信して（Ｓ２０）、掃き出しが完了すると（Ｓ２１）、第２ＤＢ装置２との同期に関する「完了フラグ２」及び第３ＤＢ装置３との同期に関する「完了フラグ３」を「未完了」から「完了」に更新する（Ｓ４１）。
【００４８】
また、ステップＳ２２〜Ｓ２５の処理も、図３及び図５と同一である。
【００４９】
ステップＳ２４で自装置のスレーブとしての処理を開始した第１ＤＢ装置１は、「完了フラグ２」のデータ（完了）及び「完了フラグ３」のデータ（完了）を読み出し（Ｓ４２）、新たにマスタとなった第２ＤＢ装置２に、読み出した完了フラグデータとともに、データの同期を要求するレプリケーション開始要求を送信する（Ｓ４３）。
【００５０】
また、完了フラグデータを新たにマスタとなった第２ＤＢ装置２に送信した第１ＤＢ装置１は、「完了フラグ２」及び「完了フラグ３」を「完了」から「未完了」に変更する（Ｓ４４）。
【００５１】
このレプリケーション開始要求及び完了フラグ２のデータ（完了）を受信したマスタである第２ＤＢ装置２は、第１ＤＢ装置１と第２ＤＢ装置２とが同期していることがわかる。そのため、第２ＤＢ装置２は、第１ＤＢ装置１とのレプリケーションは不要と判断する。したがって、第２ＤＢ装置２から第１ＤＢ装置１へのデータの送信は実行されない。
【００５２】
また、第２ＤＢ装置２は、完了フラグ３のデータから、第１ＤＢ装置１と第３ＤＢ装置３とが同期していることが分かるため、第２ＤＢ装置２と第３ＤＢ装置３とも同期していることが分かる。したがって、第２ＤＢ装置２は、自装置が記憶するデータと第３ＤＢ装置３が記憶するデータとが同期していることを表す「完了フラグ３」を「完了」に更新する（Ｓ４５）。これにより、第２ＤＢ装置２は、第３ＤＢ装置３へのレプリケーションは不要と判断することができる。
【００５３】
したがって、第２ＤＢ装置２は、第３ＤＢ装置３からレプリケーション要求を受信した場合にも（Ｓ４６）、レプリケーションは実行されない。また、第２ＤＢ装置２は、第３ＤＢ装置３からレプリケーション要求を受信すると、第３完了フラグを「完了」から「未完了」に更新する（Ｓ４７）。
【００５４】
このように、冗長性データベースシステム１００では、マスタのＤＢ装置に完了フラグを設け、スレーブのＤＢ装置とのデータの掃き出しが完了したかを記憶する。また、マスタの交代によりスレーブとなった旧マスタであるＤＢ装置は、旧スレーブへのレプリ掃き出しの完了を表す完了フラグのデータをレプリケーション開始要求の送信の際に新マスタであるＤＢ装置に送信する。これにより、新マスタとなったＤＢ装置は、旧マスタのＤＢ装置から引き継いだ完了フラグのデータから、旧マスタのＤＢ装置と旧スレーブのＤＢ装置とのデータの同期を判断することができる。したがって、レプリケーションの要否を判断し、不要な全件レプリケーションの実行を防止し、冗長性が失われることを防ぐことができる。
【００５５】
［２台目スレーブから先にレプリケーション開始要求を受信した場合］
また、図７は、新マスタとなった第２ＤＢ装置２が、旧マスタの第１ＤＢ装置１ではなく、第３ＤＢ装置３である２台目スレーブから先にレプリケーション開始要求を受信した例を説明するシーケンス図である。図７において、ステップＳ２５までの処理は図６と同一であり、ステップＳ１１〜Ｓ２１については、図示を省略している。
【００５６】
図７に示すように、新マスタとなった第２ＤＢ装置２の同期手段１３は、スレーブである第３ＤＢ装置３から、レプリケーション開始要求を受信したとき（Ｓ５１）、旧マスタの第１ＤＢ装置１から完了フラグのデータを引き継いでいないとする。この場合、第２ＤＢ装置２は、レプリケーション開始要求に対して直に応答せず、旧マスタの第１ＤＢ装置１から完了フラグデータを受信するまで一定時間を上限として待機する。
【００５７】
第１ＤＢ装置１が「完了フラグ１」のデータ（完了）及び「完了フラグ２」のデータ（完了）を読み出し（Ｓ４２）、完了フラグのデータを含むレプリケーション開始要求を第２ＤＢ装置２に送信する（Ｓ５２）。また、レプリケーション開始要求を送信した第１ＤＢ装置１は、「完了フラグ２」及び「完了フラグ３」を「完了」から「未完了」に更新する（Ｓ５３）。
【００５８】
完了フラグを受信した場合には、第１ＤＢ装置１からレプリケーション開始要求及び完了フラグのデータ（完了）を受信した第２ＤＢ装置２は、第１ＤＢ装置１と第２ＤＢ装置とが同期していることがわかる。そのため、第２ＤＢ装置２は第１ＤＢ装置１とのレプリケーションは不要と判断し、データは送信されない。
【００５９】
その後、第２ＤＢ装置２は、第１ＤＢ装置１（旧マスタ）から受信した「完了フラグ３」が「完了」であることから、ステップＳ５１で受信したレプリケーション開始要求に対して、送信の必要がないと判定する。したがって、第２ＤＢ装置２は、第１ＤＢ装置１へのデータの送信を実行しない。
【００６０】
このように、マスタの交代によって新マスタとなったＤＢ装置は、旧マスタのＤＢ装置から完了フラグのデータを引き継ぐ前に他のスレーブのＤＢ装置からレプリケーションが要求されると、完了フラグのデータを引き継ぐまでレプリケーションの要否の判断を保留にすることにより、不要なレプリケーションの実行を防止し、冗長性が失われることを防止することができる。
【００６１】
以上、実施形態を用いて本発明を詳細に説明したが、本発明は本明細書中に説明した実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲の記載及び特許請求の範囲の記載と均等の範囲により決定されるものである。
【符号の説明】
【００６２】
１００  冗長化データベースシステム
１〜３  データベース装置（ＤＢ装置）
１０  データ記憶部
１１  フラグ記憶部
１２  更新手段
１３  同期手段（判断する手段）
１４  送信手段
４  ホスト装置
【図１】
2015153285.tif 000003
【図２】
2015153285.tif 000004
【図３】
2015153285.tif 000005
【図４】
2015153285.tif 000006
【図５】
2015153285.tif 000007
【図６】
2015153285.tif 000008
【図７】
2015153285.tif 000009