(57)【特許請求の範囲】
【請求項１】
第１のデータ送信装置と第２のデータ送信装置を含むデータ送信システムであって、
前記データ送信システムは、予め定められたレプリケーション用アドレス宛のデータ要求信号を送出するデータ受信装置とともに用いられ、
前記第１のデータ送信装置は、
前記レプリケーション用アドレスである当該第１のデータ送信装置のアドレス宛のデータ要求信号を受信した場合に、前記データ受信装置にデータを送信する手段を備え、
前記第２のデータ送信装置は、
該第２のデータ送信装置のアドレス宛のデータ要求信号を受信した場合に、前記データ受信装置にデータを送信する手段と、
前記第１のデータ送信装置の障害を検出した場合に、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更する手段と
を備えることを特徴とするデータ送信システム。
【請求項２】
前記第２のデータ送信装置は、
前記第１のデータ送信装置の障害からの回復を検出した場合に、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更する前のアドレスに変更する手段
を備えることを特徴とする請求項１記載のデータ送信システム。
【請求項３】
前記第２のデータ送信装置は、
前記第１のデータ送信装置の障害を検出した場合に、データを送信しないように前記第１のデータ送信装置を設定する
ことを特徴とする請求項１または２記載のデータ送信システム。
【請求項４】
前記第２のデータ送信装置は、
前記第１のデータ送信装置の障害からの回復を検出した場合に、データを送信するように前記第１のデータ送信装置を設定する
ことを特徴とする請求項３記載のデータ送信システム。
【請求項５】
前記第２のデータ送信装置は、
前記第１のデータ送信装置から前記データ受信装置に送信されるデータを予め当該第１のデータ送信装置に送信するものであり、
前記第１のデータ送信装置の障害を検出した場合に、前記第１のデータ送信装置に送信するデータの運用を停止し、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更したなら、当該データの運用を再開する
ことを特徴とする請求項１ないし４のいずれかに記載のデータ送信システム。
【請求項６】
前記第２のデータ送信装置は、
前記第１のデータ送信装置から前記データ受信装置に送信されるデータを予め当該第１のデータ送信装置に送信するものであり、
前記第１のデータ送信装置の障害からの回復を検出した場合に、障害により停止した前記第１のデータ送信装置へのデータの送信を再開する
ことを特徴とする請求項１ないし４のいずれかに記載のデータ送信システム。
【請求項７】
前記第２のデータ送信装置は、
前記第１のデータ送信装置へのデータの送信を再開するに際し、前記第２のデータ送信装置の全データを前記第１のデータ送信装置に送信する
ことを特徴とする請求項６記載のデータ送信システム。
【請求項８】
前記第２のデータ送信装置は、
前記第１のデータ送信装置へのデータの送信を再開するに際し、前記データ受信装置へのデータ送信を停止し、前記データ受信装置に送信したが前記第１のデータ送信装置には送信していない全データを当該第１のデータ送信装置に送信して当該第１のデータ送信装置のデータに反映させる
ことを特徴とする請求項６記載のデータ送信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成のデータベースシステムのスレーブサーバに発生した障害を自動検出し、データベースシステムの冗長化を保ってデータを損失させることなくデータのレプリケーションを継続し、短時間でデータベースシステムの運用を再開させるための技術に関する。
【背景技術】
【０００２】
運用中に書き換えが発生するデータベースシステムでは、一部のサーバに障害が発生した場合にもデータの損失を回避して運用を継続するために、複数のサーバ間でデータのレプリケーション（複製）を行う必要がある。
【０００３】
高可用性が要求されるデータベースシステムでは、マスターサーバとスレーブサーバを用いたサーバ構成とし、かつサーバ間におけるデータの整合性を保証するため、マスターサーバと地理的に近い拠点にスレーブサーバを配置し、それらのサーバ間で同期レプリケーションを行うのが一般的である。また、このようなサーバ間におけるレプリケーションでは、非特許文献１で示されているように差分レプリケーション方式をとる場合が多い。
【０００４】
さらに近年では、広域災害によるデータベースの損失を避けるため、マスターサーバと地理的に近い拠点のスレーブサーバに加え、地理的に遠隔にある拠点にもスレーブサーバを配置し、複数のスレーブサーバの縦続接続構成によるカスケードレプリケーションを行う場合がある。地理的に近い拠点に置いたスレーブサーバはデータベースの整合性を保証するために同期レプリケーションを行い、地理的に遠隔にある拠点のスレーブサーバは同期レプリケーションまたは非同期レプリケーションを行う。図１に、カスケードレプリケーション構成のデータベースシステムの一例を示す。
【０００５】
上記のシステムにおいてデータの可用性を向上させるためには、マスターサーバ１に接続しているスレーブサーバ２に障害が発生した際に、マスターサーバ１におけるデータの運用停止時間および後続のスレーブサーバ３に対するデータのレプリケーションに要する時間を、最小限にとどめる必要がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】堀米紀貴、徳永茂樹、三上高太朗「分散システムにおける効果的なレプリケーション方式の提案」、信学会総合大会B-18-6, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１のように、データベースの整合性を保証するためにマスターサーバ１とスレーブサーバ２の間で差分データの同期レプリケーションを行い、かつスレーブサーバ２とスレーブサーバ３の間で差分データの非同期レプリケーションを行う、カスケードレプリケーション構成のデータベースシステムにおいて、スレーブサーバ２に障害が発生すると、マスターサーバ１および後続のスレーブサーバ３には障害が発生していないにもかかわらず、マスターサーバ１はレプリケーションを行えないため、スレーブサーバ２が回復するまでデータベースは運用停止に陥ってしまうという問題点を有していた。ここでは、運用条件として、マスターサーバ１に加えて、必ずスレーブサーバが最低１台運用されていることと仮定している。
【０００８】
本発明は、冗長構成のデータベースシステムのスレーブサーバに発生した障害を自動検出し、データベースシステムの冗長化を保ってデータを損失させることなくデータのレプリケーションを継続し、短時間でデータベースシステムの運用を再開させるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のデータ送信システムは、第１のデータ送信装置と第２のデータ送信装置を含むデータ送信システムであって、前記データ送信システムは、予め定められたレプリケーション用アドレス宛のデータ要求信号を送出するデータ受信装置とともに用いられ、前記第１のデータ送信装置は、前記レプリケーション用アドレスである当該第１のデータ送信装置のアドレス宛のデータ要求信号を受信した場合に、前記データ受信装置にデータを送信する手段を備え、前記第２のデータ送信装置は、該第２のデータ送信装置のアドレス宛のデータ要求信号を受信した場合に、前記データ受信装置にデータを送信する手段と、前記第１のデータ送信装置の障害を検出した場合に、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更する手段とを備えることを特徴とする。
【００１０】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置の障害からの回復を検出した場合に、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更する前のアドレスに変更する手段を備える。
【００１１】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置の障害を検出した場合に、データを送信しないように前記第１のデータ送信装置を設定する。
【００１２】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置の障害からの回復を検出した場合に、データを送信するように前記第１のデータ送信装置を設定する。
【００１３】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置から前記データ受信装置に送信されるデータを予め当該第１のデータ送信装置に送信するものであり、前記第１のデータ送信装置の障害を検出した場合に、前記第１のデータ送信装置に送信するデータの運用を停止し、前記第２のデータ送信装置のアドレスを前記レプリケーション用アドレスに変更したなら、当該データの運用を再開する。
【００１４】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置から前記データ受信装置に送信されるデータを予め当該第１のデータ送信装置に送信するものであり、前記第１のデータ送信装置の障害からの回復を検出した場合に、障害により停止した前記第１のデータ送信装置へのデータの送信を再開する。
【００１５】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置へのデータの送信を再開するに際し、前記第２のデータ送信装置の全データを前記第１のデータ送信装置に送信する。
【００１６】
例えば、前記第２のデータ送信装置は、前記第１のデータ送信装置へのデータの送信を再開するに際し、前記データ受信装置へのデータ送信を停止し、前記データ受信装置に送信したが前記第１のデータ送信装置には送信していない全データを当該第１のデータ送信装置に送信して当該第１のデータ送信装置のデータに反映させる。
【発明の効果】
【００１７】
本発明のデータ送信システムによれば、冗長構成のデータベースシステムのスレーブサーバに発生した障害を自動検出し、データベースシステムの冗長化を保ってデータを損失させることなくデータのレプリケーションを継続し、短時間でデータベースシステムの運用を再開させることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明を適用するカスケードレプリケーション構成のデータベースシステムの一例を示す図である。
【図２】図１に示すデータベースシステムの論理的な構成例を示す図である。
【図３】図１に示すデータベースシステムの物理的な構成例を示す図である。
【図４】スレーブサーバ２に障害が発生した場合のデータ運用の再開手順を示す図である。
【図５】手順１（マスターサーバ１によるスレーブサーバ２の障害検知、マスターサーバ１からスレーブサーバ２への同期レプリケーションの停止）を示す図である。
【図６】手順２（マスターサーバ１のＩＰアドレスの変更、スレーブサーバ２のデータ要求信号への不応答の設定）を示す図である。
【図７】手順３（マスターサーバ１からスレーブサーバ３への非同期レプリケーションの開始）を示す図である。
【図８】スレーブサーバ２が障害から回復した場合のデータ運用の再開手順を示す図である。
【図９】手順４（マスターサーバ１によるスレーブサーバ２の障害回復検知、マスターサーバ１からスレーブサーバ２への全データコピー、マスターサーバ１からスレーブサーバ３への非同期レプリケーションの継続）を示す図である。
【図１０】手順５（マスターサーバ１からスレーブサーバ３への非同期レプリケーションの停止、マスターサーバ１からスレーブサーバ２へのデータ完全反映、マスターサーバ１からスレーブサーバ２への同期レプリケーションの再開）を示す図である。
【図１１】手順６（マスターサーバ１におけるＩＰアドレスの再変更、スレーブサーバ２のデータ要求応答設定による当初構成での非同期レプリケーションの再開）を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について図面を参照して説明する。
【００２０】
図１は、本発明を適用するカスケードレプリケーション構成のデータベースシステムの一例を示す図である。
【００２１】
例えば、第１拠点にマスターサーバ１とスレーブサーバ２が配置され、遠隔地である第２拠点にスレーブサーバ３が配置される。課題を解決する手段にある各装置とは、マスターサーバ１が第2のデータ送信装置、スレーブサーバ２が第1のデータ送信装置、スレーブサーバ３がデータ受信装置に、それぞれ対応する。マスターサーバ１はスレーブサーバ２に対し同期レプリケーションを実施し、スレーブサーバ２はスレーブサーバ３に非同期レプリケーションを実施する。マスターサーバ１は、同期レプリケーションで送信するデータを自身のデータベース（以下、ＤＢ）部に記憶している。スレーブサーバ２は、同期レプリケーションで受信するデータを自身のＤＢ部に記憶し、ＤＢ部のデータを非同期レプリケーションでスレーブサーバ３に送信する。スレーブサーバ３は、非同期レプリケーションで受信するデータを自身のＤＢ部に記憶する。また、マスターサーバ１は、データベース利用者が利用する端末などからの要求により、自身のＤＢ部に記憶したデータを運用する。
【００２２】
スレーブサーバ３は、ここでは、予め定められたＩＰアドレス（以下、非同期レプリケーション用ＩＰアドレス）を宛先とするデータ要求信号を送出し、非同期レプリケーション用ＩＰアドレスが設定されたスレーブサーバ２またはマスターサーバ１から非同期レプリケーションを受ける。
【００２３】
当初、非同期レプリケーション用ＩＰアドレスはスレーブサーバ２のアドレスなので、スレーブサーバ２から非同期レプリケーションを受け、その後、スレーブサーバ２に障害が発生し、非同期レプリケーション用ＩＰアドレスはマスターサーバ１のアドレスになるので、マスターサーバ１から非同期レプリケーションを受け、その後、マスターサーバ１のアドレスが元のアドレスに変更されるので、スレーブサーバ２から非同期レプリケーションを受けることとなる。
【００２４】
図２は、図１に示すデータベースシステムの論理的な構成例を示す図である。
【００２５】
マスターサーバ１は、コントローラ部１１、ＤＢ部１２、通信インタフェース部１３、１４を備える。スレーブサーバ２は、コントローラ部２１、ＤＢ部２２、通信インタフェース部２３、２４を備える。スレーブサーバ３は、コントローラ部３１、ＤＢ部３２、通信インタフェース部３３、３４を備える。マスターサーバ１とスレーブサーバ２は通信回線１５で接続され、スレーブサーバ２とスレーブサーバ３は通信回線２５で接続される。
【００２６】
図３は、図１に示すデータベースシステムの物理的な構成例を示す図である。
【００２７】
図３は、マスターサーバ１とスレーブサーバ２とスレーブサーバ３を通信回線とルータとスイッチ等の通信装置で結ぶ物理的な構成例を示す。このような構成の場合、スレーブサーバ２が障害発生による停止等で機能していない場合であっても、スレーブサーバ２を迂回し、マスターサーバ１とスレーブサーバ３を接続する迂回通信回線を用意する必要はない。また、マスターサーバ１とスレーブサーバ２との接続は複数の回線があるため、１つの回線が切断したとしても、互いの装置間通信により状態監視を継続することが可能である。
【００２８】
図４は、スレーブサーバ２に障害が発生した場合のデータ運用の再開手順を示す図である。
【００２９】
［手順１］
図４において、マスターサーバ１は、スレーブサーバ２に対し、同期レプリケーション（差分データ送信）を実施する（Ｓ１）。同期レプリケーションは以降、継続する。
【００３０】
スレーブサーバ２は、通信インタフェース２４に設定されている非同期レプリケーション用ＩＰアドレス（この時点のスレーブサーバ２のアドレス）宛のデータ要求信号をスレーブサーバ３が送出するので（Ｓ２）、データ要求信号を受信し、スレーブサーバ３に対して非同期レプリケーション（データ要求信号で要求されたデータの送信）を実施する。非同期レプリケーションは以降、継続する。
【００３１】
マスターサーバ１のコントローラ部１１は、スレーブサーバ２に障害が発生していないかを状態監視するため、スレーブサーバ２のコントローラ部２１に対して、通信インタフェース部１４と通信回線１５と通信インタフェース２３経由で、定期的にスレーブサーバ２へ状態監視信号を送信する（Ｓ１１）。
【００３２】
スレーブサーバ２のコントローラ部２１は、マスターサーバ１から送信された状態監視信号を受信したのち、マスターサーバ１のコントローラ部１１に対して、通信インタフェース部２３と通信回線１５と通信インタフェース１４経由で、障害の有無を示す障害有無信号を送信する（Ｓ１２）。
【００３３】
スレーブサーバ２は、障害が発生した場合（Ｓ１５）、マスターサーバ１との同期レプリケーションを停止する（Ｓ１６）。
【００３４】
マスターサーバ１のコントローラ部１１は、スレーブサーバ２のコントローラ部２１から返信された障害有無信号を受信し、障害有無信号を基にスレーブサーバ２の障害有無を検出する（Ｓ２１）。なお障害有無信号がマスターサーバ１のコントローラ部１１へ一定時間経過しても返信されない場合も、コントローラ部１１はスレーブサーバ２に障害が発生したと判断する。
【００３５】
マスターサーバ１のコントローラ部１１は、スレーブサーバ２の障害発生を検出した場合、ＤＢ部１２のデータ運用を停止し（Ｓ２２）、検出しなかった場合は、状態監視を継続する。
【００３６】
上記の手順１を図５に示す。
【００３７】
［手順２］
図４において、マスターサーバ１のコントローラ部１１は、スレーブサーバ２のコントローラ部２１に対し、スレーブサーバ２の通信インタフェース２４に設定されている非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に応答しないように設定をおこなわせるデータ要求不応答指示信号を送信する（Ｓ３１）。
【００３８】
スレーブサーバ２のコントローラ部２１は、データ要求不応答指示信号により、スレーブサーバ２の通信インタフェース２４に設定されている非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に応答しないデータ要求不応答設定を行う（Ｓ３２）。なお、スレーブサーバ２は、非同期レプリケーション用ＩＰアドレスを保持し続ける。
【００３９】
マスターサーバ１のコントローラ部１１は、マスターサーバ１の通信インタフェース１４に設定されていたＩＰアドレスを、スレーブサーバ２の通信インタフェース２４に当初設定されていた非同期レプリケーション用ＩＰアドレス（スレーブサーバ２のＩＰアドレス）に変更する（Ｓ４１）。これにより、マスターサーバ１は、非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に応答可能となる。なお、元のアドレスは、後に非同期レプリケーション用ＩＰアドレスから戻すために保持される。
【００４０】
上記の手順２を図６に示す。
【００４１】
［手順３］
図４において、マスターサーバ１の通信インタフェース１４への非同期レプリケーション用ＩＰアドレスの設定により、マスターサーバ１とスレーブサーバ３の間で差分データの非同期レプリケーションが開始される。つまり、マスターサーバ１は、通信インタフェース１４に設定されている非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に対する非同期レプリケーションを実施する（Ｓ５１、Ｓ５２）。非同期レプリケーションは以降、継続する。
【００４２】
そして、マスターサーバ１は、停止していたデータ運用を再開させる（Ｓ５５）。
【００４３】
スレーブサーバ２では、引き続き、障害が発生している（Ｓ１５）。
【００４４】
なお、スレーブサーバ２が障害発生による停止等で機能していない場合に、迂回回線が必要になる構成の場合もあるが、図３に示す物理的な構成例の場合、マスターサーバ１とスレーブサーバ３の間で非同期レプリケーションの物理的な通信回線は確保されているため、スレーブサーバ２を迂回し、マスターサーバ１とスレーブサーバ３を接続する迂回通信回線を用意する必要はない。
【００４５】
非同期レプリケーション用ＩＰアドレスの設定変更により、レプリケーションを行うサーバの構成を動的に変更することで、データベースの冗長性を失うことなく、短時間でデータベースの運用を再開させることができる。
【００４６】
上記の手順３を図７に示す。
【００４７】
なお、本動作例では、マスターサーバ１とスレーブサーバ３の間が地理的に遠隔にあることを想定し、スレーブサーバ３の応答を待たなくてもよい非同期レプリケーションで説明するが、応答性よりもデータの一致性を重視する場合には、同期レプリケーションを行ってもよい。
【００４８】
図８は、スレーブサーバ２が障害から回復した場合のデータ運用の再開手順を示す図である。
【００４９】
［手順４］
図８において、マスターサーバ１のコントローラ部１１は、引き続き、スレーブサーバ２の障害が回復しているかを状態監視するため、スレーブサーバ２のコントローラ部２１に対して、通信インタフェース部１４と通信回線１５と通信インタフェース２３経由で、定期的にスレーブサーバ２へ状態監視信号を送信する（Ｓ１１）。
【００５０】
なお、図３のデータベースの物理的な構成例のように、マスターサーバ１とスレーブサーバ２との間に複数の接続回線があれば、手順２において１つの接続回線のＩＰアドレス変更を行ったとしても、互いの装置間通信により状態監視を継続することが可能である。
【００５１】
スレーブサーバ２のコントローラ部２１は、マスターサーバ１から送信された状態監視信号を受信したのち、マスターサーバ１のコントローラ部１１に対して、通信インタフェース部２３と通信回線１５と通信インタフェース１４経由で、障害の有無を示す障害有無信号を送信する（Ｓ１２）。
【００５２】
マスターサーバ１は、引き続き、通信インタフェース１４に設定されている非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に対する非同期レプリケーションを実施する（Ｓ５１、Ｓ５２）。
【００５３】
マスターサーバ１のコントローラ部１１は、引き続き、スレーブサーバ２のコントローラ部２１から返信された障害有無信号を受信し、障害有無信号を基にスレーブサーバ２の障害有無を検出する（Ｓ２１）。
【００５４】
マスターサーバ１のコントローラ部１１は、障害がないこと、つまり、障害からの回復を検出した場合、スレーブサーバ３からスレーブサーバ２へのデータ要求を回避するため、非同期レプリケーション用ＩＰアドレスを維持しつつ、マスターサーバ１のＤＢ部１２からスレーブサーバ２のＤＢ部２２へ全データコピーを行う（Ｓ７１）。一方、障害があること、つまり、障害から回復を検出しなかった場合は、状態監視を継続する。
【００５５】
上記の手順４を図９に示す。
【００５６】
［手順５］
図８において、手順４が完了した段階では、スレーブサーバ３が、スレーブサーバ２よりも、一時的に後に更新されたデータを保持する可能性がある。この状態でスレーブサーバ２とスレーブサーバ３の非同期レプリケーションを再開すると、後続のスレーブサーバ３がデータ要求元のスレーブサーバ２より後に更新されたデータを保持していることが検知されてしまい、システムによっては、データベースの不整合を修復することを目的として、スレーブサーバ２からスレーブサーバ３への全データコピーを行ってしまう場合がある。全データコピーは、コピー対象のデータ量が多く、差分レプリケーションに比べ時間がかかるため、冗長性が回復するまでにかかる時間が長く、可用性に影響を与えてしまう。
【００５７】
そのような事態を回避するため、スレーブサーバ２とスレーブサーバ３の非同期レプリケーションを再開させる（Ｓ７７）前に、スレーブサーバ３がスレーブサーバ２よりも後に更新されたデータを保持しないように、マスターサーバ１のコントローラ部１１は、マスターサーバ１の通信インタフェース１４に設定した非同期レプリケーション用ＩＰアドレスを維持しつつ、スレーブサーバ３からのデータ要求信号（Ｓ７２）に対するデータ送信を停止し（Ｓ７５）、例えば、全データコピー（Ｓ７１）後にスレーブサーバ３に送信したがスレーブサーバ２には送信していない全データを、マスターサーバ１のＤＢ部１２からスレーブサーバ２のＤＢ部２２へ送信して反映させ（Ｓ７６）、マスターサーバ１からスレーブサーバ２への同期レプリケーションを再開する（Ｓ７７）。
【００５８】
上記の手順５を図１０に示す。
【００５９】
［手順６］
図８において、マスターサーバ１のコントローラ部１１は、通信インタフェース部１４に設定した非同期レプリケーション用ＩＰアドレスを消去し、スレーブサーバ２の障害発生前にマスターサーバ１の通信インタフェース部１４に設定していたＩＰアドレスを再設定する（Ｓ８１）。
【００６０】
次に、マスターサーバ１のコントローラ部１１は、スレーブサーバ２のコントローラ部２１に対し、スレーブサーバ２の通信インタフェース２４に、非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に応じるように設定させるデータ要求応答指示信号を送出する（Ｓ８２）。
【００６１】
スレーブサーバ２のコントローラ部２１は、データ要求応答指示信号により、スレーブサーバ２の通信インタフェース２４に対し、非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に応じるデータ要求応答設定を行う（Ｓ８３）。
【００６２】
このデータ要求応答設定により、スレーブサーバ２は、通信インタフェース２４に設定されている、非同期レプリケーション用ＩＰアドレス宛のデータ要求信号（つまり、スレーブサーバ３からのデータ要求信号）に対する非同期レプリケーション（データ送信）を実施（再開）する（Ｓ９１、Ｓ９２）。
【００６３】
この非同期レプリケーションの再開（Ｓ９２）により、当初のカスケードレプリケーション構成でのデータベースシステムでの運用再開となる。つまり、マスターサーバ１のＩＰアドレスの設定変更（Ｓ８１）により、データベースシステムを当初のカスケードレプリケーション構成に復旧させ、スレーブサーバ２とスレーブサーバ３の間でのデータ更新順序性の不整合を回避する（Ｓ７５、Ｓ７６）ことで、スレーブサーバ２からスレーブサーバ３への全データコピーの必要性を無くし、差分データの非同期レプリケーションを実現することにより、データベースシステムの当初の冗長構成に復旧するまでの時間を短縮させることができる。
【００６４】
上記の手順６を図１１に示す。
【００６５】
（本実施の形態によって生じる効果）
マスターサーバ１と同期レプリケーションを行うスレーブサーバ２にハードウェア障害や通信障害などが発生した場合に（Ｓ２１：障害あり）、動的にレプリケーション構成を変更し、障害の発生していない後続のスレーブサーバ３を用いてデータベースシステムの冗長性を確保することで、運用再開までの時間短縮を実現させ、データベースシステムの可用性を向上させることができる。
【００６６】
また、スレーブサーバ２が回復した場合に、データ更新の順序性を担保しながら差分データのレプリケーションを再開する（Ｓ７７）ことで、データ不整合による不要な全データコピーを回避して、当初の冗長構成のデータベースシステムに復旧するまでの時間を短縮させることができ、その結果データベースシステムの可用性を向上させることができる。
【００６７】
（本実施の形態のポイント）
マスターサーバ１が同期レプリケーションを行っているスレーブサーバ２の障害を検出した場合に（Ｓ２１：障害あり）、マスターサーバ１のＩＰアドレスをスレーブサーバ２の当初のＩＰアドレスである非同期レプリケーション用ＩＰアドレスに変更し（Ｓ４１）、後続のスレーブサーバ３と差分データの非同期レプリケーションを開始する（Ｓ５２）ことで、スレーブサーバ２に障害が発生している期間でも、データベースの運用を再開することが可能となる。
【００６８】
また、スレーブサーバ２が障害から回復した場合に（Ｓ２１：障害なし）、マスターサーバ１に設定した非同期レプリケーション用ＩＰアドレスを維持した状態で、スレーブサーバ３からのデータ要求に対するデータ送信を停止し（Ｓ７５）、スレーブサーバ３に対して送信したデータすべてを、マスターサーバ１のＤＢ部１２からスレーブサーバ２のＤＢ部２２へ送信し反映させた（Ｓ７６）後、マスターサーバ１からスレーブサーバ２への同期レプリケーションを再開させ（Ｓ７７）、マスターサーバのＩＰアドレスを再変更し（Ｓ８１）、非同期レプリケーション用ＩＰアドレス宛てへのデータ要求信号に応答するようスレーブサーバ２を設定する（Ｓ８２）ことで、障害から回復したスレーブサーバ２と後継のスレーブサーバ３の間のデータ更新の順序性を保てることができ、スレーブサーバ２からスレーブサーバ３への全データコピーを不要にできる。
【００６９】
また、マスターサーバ１のＩＰアドレスの設定変更（Ｓ４１、Ｓ８１）により、差分データのレプリケーションを行うサーバの構成を動的に変更させ、データベースシステムの冗長性を失うことなく、データベースシステムの運用再開時間の短縮を可能とする。
【００７０】
以上のように、スレーブサーバ２（第１のデータ送信装置）とマスターサーバ１（第２のデータ送信装置）はデータを送信するシステムいわゆるデータ送信システムを構成し、データ送信システムは、予め定められたレプリケーション用アドレス（非同期レプリケーション用ＩＰアドレス）宛のデータ要求信号を送出するスレーブサーバ３（データ受信装置）とともに用いられ、第１のデータ送信装置（２）は、レプリケーション用アドレスである当該第１のデータ送信装置（２）のアドレス宛のデータ要求信号を受信した場合に（Ｓ２）、データ受信装置（３）にデータを送信する手段（Ｓ３）を備え、第２のデータ送信装置（１）は、第２のデータ送信装置（１）のアドレス宛のデータ要求信号を受信した場合に（Ｓ５１）、データ受信装置（３）にデータを送信する手段（Ｓ５２）と、第１のデータ送信装置（２）の障害を検出した場合に（Ｓ２１：障害あり）、第２のデータ送信装置（１）のアドレスをレプリケーション用アドレスに変更する手段（Ｓ４１）とを備えるので、第１のデータ送信装置（２）の障害時においても、データ受信装置（３）にデータを送信できる。
【００７１】
また、第２のデータ送信装置（１）は、第１のデータ送信装置（２）の障害からの回復を検出した場合に（Ｓ２１：障害なし）、第２のデータ送信装置（１）のアドレスをレプリケーション用アドレスに変更する前のアドレスに変更する手段（Ｓ８１）を備えるので、第１のデータ送信装置（２）の障害からの回復時において、データ受信装置（３）へのデータ送信を停止できる。
【００７２】
また、第２のデータ送信装置（１）は、第１のデータ送信装置（２）の障害を検出した場合に（Ｓ２１：障害あり）、データを送信しないように第１のデータ送信装置（２）を設定する（Ｓ３１）ので、障害のある第１のデータ送信装置（２）からデータ受信装置（３）へのデータ送信を停止できる。
【００７３】
また、第２のデータ送信装置（１）は、第１のデータ送信装置（２）の障害からの回復を検出した場合に（Ｓ２１：障害なし）、データを送信するように第１のデータ送信装置（２）を設定する（Ｓ８２）ので、回復した第１のデータ送信装置（２）からデータ受信装置（３）へのデータ送信を再開できる。
【００７４】
また、第２のデータ送信装置（１）は、第１のデータ送信装置（２）からデータ受信装置（３）に送信されるデータを予め当該第１のデータ送信装置（２）に送信する（Ｓ１）ものであり、第１のデータ送信装置（２）の障害を検出した場合に（Ｓ２１：障害あり）、第１のデータ送信装置（２）に送信するデータの運用を停止し（Ｓ２２）、第２のデータ送信装置（１）のアドレスをレプリケーション用アドレスに変更したなら（Ｓ４１）、当該データの運用を再開する（Ｓ５５）ので、データ受信装置（３）へのデータ送信を開始してからデータ運用を再開できる。
【００７５】
また、第２のデータ送信装置（１）は、第１のデータ送信装置（２）からデータ受信装置（３）に送信されるデータを予め当該第１のデータ送信装置（２）に送信する（Ｓ１）ものであり、第１のデータ送信装置（２）の障害からの回復を検出した場合に（Ｓ２１：障害なし）、障害により停止した第１のデータ送信装置（２）へのデータの送信を再開する（Ｓ７７）ので、第２のデータ送信装置（１）から、回復した第１のデータ送信装置（２）へのデータ送信を再開できる。
【００７６】
また、第２のデータ送信装置（１）は、第１のデータ送信装置へのデータの送信を再開する（Ｓ７７）に際し、第１のデータ送信装置（１）に全データを送信する（Ｓ７１）ので、例えば、障害により第１のデータ送信装置（２）の全データやその大部分が消失した場合であっても、第１のデータ送信装置（２）を全データやその大部分がある状態に戻すことができる。
【００７７】
また、第２のデータ送信装置（１）は、第１のデータ送信装置へのデータの送信を再開する（Ｓ７７）に際し、データ受信装置（３）へのデータ送信を停止し（Ｓ７５）、データ受信装置（３）に送信したが第１のデータ送信装置（２）には送信していない全データを当該第１のデータ送信装置（２）に送信して当該第１のデータ送信装置（２）のデータに反映させる（Ｓ７６）ので、第１のデータ送信装置（２）からデータ受信装置（３）への全データコピーを不要にできる。
【００７８】
なお、これら本実施の形態の特徴については、必要なものを適宜選択して実施すればよい。
【００７９】
また、スレーブサーバ２（第１のデータ送信装置）やマスターサーバ１（第２のデータ送信装置）としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００８０】
１…マスターサーバ（第２のデータ送信装置）
２…スレーブサーバ（第１のデータ送信装置）
３…スレーブサーバ（データ受信装置）
１３、１４、２３、２４、３３、３４…通信インタフェース
１１、２１、３１…コントローラ部
１２、２２、３２…ＤＢ部
【要約】
【課題】冗長構成のデータベースシステムのスレーブサーバに発生した障害を自動検出し、データベースシステムの冗長化を保ってデータを損失させることなくデータのレプリケーションを継続し、短時間でデータベースシステムの運用を再開させる。
【解決手段】スレーブサーバ２は、非同期レプリケーション用ＩＰアドレスである自身のアドレス宛のデータ要求信号を受信した場合に（Ｓ２）、スレーブサーバ３にデータを送信する（Ｓ３）。マスターサーバ１は、自身のアドレス宛のデータ要求信号を受信した場合に、スレーブサーバ３にデータを送信する。マスターサーバ１は、スレーブサーバ２の障害を検出した場合に（Ｓ２１：障害あり）、自身のアドレスを非同期レプリケーション用ＩＰアドレスに変更する（Ｓ４１）。
【選択図】図４【図１】
0005870174.tif 000002
【図２】
0005870174.tif 000003
【図３】
0005870174.tif 000004
【図４】
0005870174.tif 000005
【図５】
0005870174.tif 000006
【図６】
0005870174.tif 000007
【図７】
0005870174.tif 000008
【図８】
0005870174.tif 000009
【図９】
0005870174.tif 000010
【図１０】
0005870174.tif 000011
【図１１】
0005870174.tif 000012