(57)【要約】      （修正有）【課題】データ登録処理に関する特段の考慮を不要にして簡単かつ簡潔に多重化が可能なデータベース多重化システム及び多重化方法を提供する。【解決手段】第１サーバ１Ａ及び第２サーバ１Ｂと被参照サーバ３とが相互に通信可能に接続されたデータベース多重化システム１００は、第１サーバ１Ａが、被参照サーバ３に記憶されたデータを順次取得するデータ取得部１１Ａと、取得したデータから生成されたデータをマスタＤＢ２２Ａに記憶するデータ生成部１２Ａ及びデータ登録部１３Ａと、記憶したデータを複製のために第２サーバ１Ｂに送信する第１複製部１４Ａと、第２サーバ１Ｂから受信したデータを第２サーバ１ＢのレプリカであるスレーブＤＢ２４Ａに記憶する第２複製部１５Ａと、マスタＤＢ２２ＡとスレーブＤＢ２４Ａとの整合性がとれているか否かを確認する整合性確認部１６Ａとを備える。【選択図】図１
2011221594.tif 000002
【特許請求の範囲】
【請求項１】
２台のデータベースサーバである第１サーバ及び第２サーバと、被参照サーバとが相互に通信可能に接続されたデータベース多重化システムであって、
前記第１サーバ及び第２サーバは、
前記被参照サーバに記憶されたデータを順次取得するデータ取得部と、
前記データ取得部により取得したデータを、前記データベースサーバの各々が備えるマスタデータベースに記憶するデータ登録部と、
前記データ登録部が記憶した前記データを複製のために前記第２サーバ及び前記第１サーバに送信する第１複製部と、
前記第２サーバ及び前記第１サーバから受信したデータをそれぞれ前記第２サーバ及び前記第１サーバのレプリカであるスレーブデータベースに記憶する第２複製部と、
前記マスタデータベースと、前記スレーブデータベースとの整合性がとれているか否かを確認する整合性確認部と、
を備える、
データベース多重化システム。
【請求項２】
前記整合性確認部により否と判定された場合に、前記スレーブデータベースに記憶されたデータを前記マスタデータベースに対して更新するデータ補完部を備える、
請求項１に記載のデータベース多重化システム。
【請求項３】
２台のデータベースサーバである第１サーバ及び第２サーバと、被参照サーバとが相互に通信可能に接続されたデータベース多重化システムによる多重化方法であって、
前記第１サーバ及び前記第２サーバが、前記被参照サーバに記憶されたデータを順次取得するデータ取得ステップと、
前記第１サーバ及び前記第２サーバが、前記データ取得ステップにより取得したデータを、前記データベースサーバの各々が備えるマスタデータベースに記憶するデータ登録ステップと、
前記第１サーバが、前記第２サーバが備える前記第１サーバのレプリカであるスレーブデータベースに記憶させるために、前記データ登録ステップにより記憶された前記データを前記第２サーバに送信する第１複製ステップと、
前記第２サーバが、前記第１サーバから受信した前記データを前記第２サーバの前記スレーブデータベースに記憶する第２複製ステップと、
前記第２サーバが、前記第１サーバが備える前記第２サーバのレプリカであるスレーブデータベースに記憶させるために、前記データ登録ステップにより記憶された前記データを前記第１サーバに送信する第３複製ステップと、
前記第１サーバが、前記第２サーバから受信した前記データを前記第１サーバの前記スレーブデータベースに記憶する第４複製ステップと、
前記第１サーバ及び前記第２サーバが、各々備える前記マスタデータベースと、前記スレーブデータベースとの整合性がとれているか否かを確認する整合性確認ステップと、
を含む、
多重化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース多重化システム及び多重化方法に関する。
【背景技術】
【０００２】
従来、データベースを多重化して、データベース障害に備える方法が数多く示されている（例えば、特許文献１参照）。特許文献１に記載のレプリケーションＤＢ整合性確認方法では、マスタデータベース及びレプリカデータベース（スレーブデータベース）の各々に対する全更新処理を各々が所持する更新履歴データベースに格納し、一定の間隔で双方の更新履歴データベースの比較を行い前回比較からの差分情報のみを更新履歴データベースに残すものであった。これにより、更新履歴データベースに残る情報は、マスタデータベース、レプリカデータベースの差異となり、更新履歴データベースを参照して整合性の確認、レプリカデータベースの改竄の検知を行っていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２５０８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載されたものは、マスタデータベース及びレプリカデータベースを１つずつ備えたデータベース多重化システムであり、マスタデータベースの障害時には、データの登録処理が止まってしまうものであった。そのため、両者のデータベースへのデータ更新が止まってしまうものであった。
【０００５】
ところで、マスタデータベース及びレプリカデータベースを備えたデータベース多重化システムの場合には、マスタデータベース側だけではなく、レプリカデータベース側にもデータを登録する登録部を有するものにするのが一般的である。このようなシステムは、通常時において、マスタデータベース側の登録部と、レプリカデータベース側の登録部とがデータを半分ずつマスタデータベースに登録し、その後、マスタデータベースに基づいてレプリカデータベースを更新する。そして、障害発生時には、障害が発生していないデータベース側で全てのデータを登録することで、全ての処理を止めることなく稼働中のデータベースのデータ更新を行うことができるものである。しかし、このようなシステムは、登録処理を多重化にするので、登録するデータ内容の振分やデータベースサーバの振分を考慮する必要があり、処理が煩雑であった。
【０００６】
本発明は、データ登録処理に関する特段の考慮を不要にして簡単かつ簡潔に多重化が可能なデータベース多重化システム及び多重化方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明者らは、マスタデータベース及びスレーブデータベースを２重化することで、処理に関して特段の考慮を不要にすることを見出し、本発明を完成するに至った。本発明は、具体的には次のようなものを提供する。
【０００８】
（１）  ２台のデータベースサーバである第１サーバ及び第２サーバと、被参照サーバとが相互に通信可能に接続されたデータベース多重化システムであって、前記第１サーバ及び第２サーバは、前記被参照サーバに記憶されたデータを順次取得するデータ取得部と、前記データ取得部により取得したデータを、前記データベースサーバの各々が備えるマスタデータベースに記憶するデータ登録部と、前記データ登録部が記憶した前記データを複製のために前記第２サーバ及び前記第１サーバに送信する第１複製部と、前記第２サーバ及び前記第１サーバから受信したデータをそれぞれ前記第２サーバ及び前記第１サーバのレプリカであるスレーブデータベースに記憶する第２複製部と、前記マスタデータベースと、前記スレーブデータベースとの整合性がとれているか否かを確認する整合性確認部と、を備える、データベース多重化システム。
【０００９】
本発明のこのような構成によれば、データベース多重化システムは、各データベースサーバが管理するデータベースを各々マスタデータベースとスレーブデータベースの２つに分けることで、例えば、第２サーバに記憶されたデータベースの内容を、第１サーバにもレプリケートして有する等、データのレプリケーション（複製）処理が単方向になるので、各データベースサーバにおける処理内容の振分を不要にして簡単かつ簡潔に多重化することができる。よって、データベース多重化システムは、第１サーバと第２サーバとの処理をほぼ同等にするので、データ登録処理を簡潔なものにすることができる。
【００１０】
また、データベース多重化システムは、第１サーバで登録されたデータと第２サーバで登録されたデータとを同一のデータベースサーバ内で管理することで、第１サーバに記憶されたデータベースの内容と、第２サーバに記憶されたデータベースの内容との整合性を簡単に確認できる。
【００１１】
（２）  前記整合性確認部により否と判定された場合に、前記スレーブデータベースに記憶されたデータを前記マスタデータベースに対して更新するデータ補完部を備える、（１）に記載のデータベース多重化システム。
【００１２】
本発明のこのような構成によれば、データベース多重化システムは、スレーブデータベースに記憶されたデータをマスタデータベースに対して更新するデータ補完部を備えるので、例えば、第１サーバの障害復旧時に、第１サーバは、第１サーバに記憶されたデータベースを参照することで復旧できる。よって、データベース多重化システムは、単純な作業で障害復帰ができる。
【００１３】
（３）  ２台のデータベースサーバである第１サーバ及び第２サーバと、被参照サーバとが相互に通信可能に接続されたデータベース多重化システムによる多重化方法であって、前記第１サーバ及び前記第２サーバが、前記被参照サーバに記憶されたデータを順次取得するデータ取得ステップと、前記第１サーバ及び前記第２サーバが、前記データ取得ステップにより取得したデータを、前記データベースサーバの各々が備えるマスタデータベースに記憶するデータ登録ステップと、前記第１サーバが、前記第２サーバが備える前記第１サーバのレプリカであるスレーブデータベースに記憶させるために、前記データ登録ステップにより記憶された前記データを前記第２サーバに送信する第１複製ステップと、前記第２サーバが、前記第１サーバから受信した前記データを前記第２サーバの前記スレーブデータベースに記憶する第２複製ステップと、前記第２サーバが、前記第１サーバが備える前記第２サーバのレプリカであるスレーブデータベースに記憶させるために、前記データ登録ステップにより記憶された前記データを前記第１サーバに送信する第３複製ステップと、前記第１サーバが、前記第２サーバから受信した前記データを前記第１サーバの前記スレーブデータベースに記憶する第４複製ステップと、前記第１サーバ及び前記第２サーバが、各々備える前記マスタデータベースと、前記スレーブデータベースとの整合性がとれているか否かを確認する整合性確認ステップと、を含む、多重化方法。
【００１４】
本発明のこのような構成によれば、（１）と同様の効果を奏する方法を提供できる。
【発明の効果】
【００１５】
本発明によれば、データ登録処理に関する特段の考慮を不要にして簡単かつ簡潔に多重化が可能なデータベース多重化システム及び多重化方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るデータベース多重化システムの全体構成並びに第１サーバ、第２サーバ及び被参照サーバの機能構成を示す図である。
【図２】本実施形態に係る第１サーバがデータを取得したことを契機として発生する第１サーバのフローチャートである。
【図３】本実施形態に係る第２サーバからのデータ受信を契機として発生する第１サーバのフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００１８】
（実施形態）
［データベース多重化システム１００の全体構成並びに第１サーバ１Ａ、第２サーバ１Ｂ及び被参照サーバ３の機能構成］
図１は、本実施形態に係るデータベース多重化システム１００の全体構成並びに第１サーバ１Ａ、第２サーバ１Ｂ及び被参照サーバ３の機能構成を示す図である。
【００１９】
データベース多重化システム１００は、第１サーバ１Ａと、第２サーバ１Ｂと、被参照サーバ３と、参照サーバ５と、通信ネットワークＮとにより構成される。通信ネットワークＮによって、第１サーバ１Ａと、第２サーバ１Ｂと、被参照サーバ３と、参照サーバ５とが通信可能に接続されている。
【００２０】
第１サーバ１Ａ及び第２サーバ１Ｂは、同一の構成を備えたデータベースサーバである。第１サーバ１Ａ及び第２サーバ１Ｂは、被参照サーバ３から同一のデータを取得して相互にレプリケーションを行う。データベース多重化システム１００は、データベースを多重化して相互にレプリケーションを行い、その後、マスタデータベースとスレーブデータベースとの間で補完処理を行うことで、データベース多重化システム１００全体の信頼性の向上を図っている。第１サーバ１Ａは、制御部１０Ａと、記憶部２０Ａとを備える。また、第２サーバ１Ｂは、制御部１０Ｂと、記憶部２０Ｂとを備える。なお、以降の説明において、第１サーバ１Ａ及び第２サーバ１Ｂに共通のものについては、符号Ａ、Ｂを省略して、例えば、制御部１０等と説明する。また、第１サーバ１Ａ及び第２サーバ１Ｂとを区別しない場合に、データベースサーバ１として説明する。
【００２１】
制御部１０は、データ取得部１１と、データ生成部１２と、データ登録部１３と、第１複製部１４と、第２複製部１５と、整合性確認部１６と、データ補完部１７とを備える。
【００２２】
データ取得部１１は、被参照サーバ３からデータを取得する制御部である。データ取得部１１は、マスタＤＢ２２（ＤＢ：データベース）を参照し、被参照サーバ３に対してマスタＤＢ２２に記憶されていないデータの取得要求を送信することで、被参照サーバ３から要求に対応するデータを取得する。
【００２３】
データ生成部１２は、被参照サーバ３から取得したデータから、マスタＤＢ２２に記憶させるデータを生成する制御部である。例えば、データ生成部１２は、被参照サーバ３から取得したクエリーのログを集計及び加工して、クエリーごとのランキング情報を生成する。
【００２４】
データ登録部１３は、データ生成部１２により生成されたデータをマスタＤＢ２２に記憶させる制御部である。上述の例であれば、データ登録部１３は、生成されたクエリーごとのランキング情報を記憶することで、クリック集計ランキングをマスタＤＢ２２に記憶できる。
【００２５】
第１複製部１４は、被参照サーバ３から取得してデータ生成部１２が生成したデータを複製のために相手方のデータベースサーバ１に対して送信する制御部である。相手方のデータベースサーバ１は、第１複製部１４Ａの場合には、第２サーバ１Ｂであり、第１複製部１４Ｂの場合には、第１サーバ１Ａである。
【００２６】
第２複製部１５は、相手方のデータベースサーバ１の第１複製部１４が送信したデータを受信して、スレーブＤＢ２４に記憶させる制御部である。相手方のデータベースサーバ１の第１複製部１４は、第２複製部１５Ａの場合には、第２サーバ１Ｂの第１複製部１４Ｂであり、第２複製部１５Ｂの場合には、第１サーバ１Ａの第１複製部１４Ａである。
【００２７】
整合性確認部１６は、記憶部２０に記憶されているマスタＤＢ２２とスレーブＤＢ２４との整合性が取れているか否かを確認する制御部である。整合性が取れているか否かは、例えば、データが欠損している場合、データの生成時刻が異なる場合、データ自体の集計値が異なる場合等を確認することで判定できる。
【００２８】
データ補完部１７は、整合性確認部１６による確認の結果、整合性が取れていないと判定された場合に、マスタＤＢ２２に対してスレーブＤＢ２４のデータを更新することで、整合性をとる制御部である。
【００２９】
記憶部２０は、マスタＤＢ２２と、スレーブＤＢ２４とを備える。
【００３０】
マスタＤＢ２２は、メインになるＤＢであり、被参照サーバ３から取得してデータ生成部１２が生成したデータを登録するＤＢである。
【００３１】
スレーブＤＢ２４は、サブになるＤＢであり、相手方のデータベースサーバ１のマスタＤＢ２２に記憶されたデータを受信して格納したＤＢであり、相手方のデータベースサーバ１のマスタＤＢ２２の複製である。
【００３２】
本実施形態の第１サーバ１Ａ及び第２サーバ１Ｂのハードウェアは、一般的なコンピュータによって構成してもよい。一般的なコンピュータは、例えば、制御部１０として、中央処理装置（ＣＰＵ）を備える他、記憶部２０として、メモリ（ＲＡＭ、ＲＯＭ）、ハードディスク（ＨＤＤ）及び光ディスク（ＣＤ、ＤＶＤ等）を、ネットワーク通信装置として、各種有線及び無線ＬＡＮ装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス（マウス、トラッキングボール等）を適宜備え、これらはバスラインにより接続されている。このような一般的なコンピュータにおいて、第１サーバ１ＡのＣＰＵは、第１サーバ１Ａを、第２サーバ１ＢのＣＰＵは、第２サーバ１Ｂを、それぞれ統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００３３】
被参照サーバ３は、例えば、ファイルサーバであり、検索に用いられたクエリーのログを記憶している。被参照サーバ３は、第１サーバ１Ａ及び第２サーバ１Ｂによりアクセスされ、第１サーバ１Ａ及び第２サーバ１Ｂは、例えば、被参照サーバ３に記憶されているクエリーのログを取得する。被参照サーバ３は、被参照サーバ３の全体を制御する制御部３０と、データを記憶するデータ記憶部３２とを備える。被参照サーバ３のハードウェアは、一般的なコンピュータによって構成してもよい。
【００３４】
参照サーバ５は、例えば、動画検索サーバ等のフロントエンドサーバである。参照サーバ５は、クエリーを第１サーバ１Ａ及び第２サーバ１ＢのうちのいずれかのマスタＤＢ２２に対して実行して、クエリーに対する処理結果を取得する。なお、参照サーバ５は、例えば、パーソナルコンピュータ（ＰＣ）や、携帯電話機等の端末であってもよい。
【００３５】
通信ネットワークＮは、第１サーバ１Ａと、第２サーバ１Ｂと、被参照サーバ３と、参照サーバ５との間で通信を行うための、例えば、インターネット等の通信回線である。通信ネットワークＮは、有線であってもよいし、その一部又は全部が無線であってもよい。
【００３６】
［第１サーバ１Ａの処理］
次に、第１サーバ１Ａでの処理について説明する。図２は、本実施形態に係る第１サーバ１Ａがデータを取得したことを契機として発生する第１サーバ１Ａのフローチャートである。図３は、本実施形態に係る第２サーバ１Ｂからのデータ受信を契機として発生する第１サーバ１Ａのフローチャートである。なお、第２サーバ１Ｂは、以下に説明する第１サーバ１Ａと同じ処理を行う。具体的には、第２サーバ１Ｂでの処理では、以下の説明のうち、第２サーバ１Ｂと記載されている部分を第１サーバ１Ａと置き換えれば、後は第１サーバ１Ａの処理と同じである。
【００３７】
図２のＳ１０：制御部１０Ａ（データ取得部１１Ａ）は、被参照サーバ３からデータを取得する。ここで、データ取得部１１Ａは、被参照サーバ３に対して、定期的（例えば、毎朝４時等）に更新データの有無を照会することで、データを取得してもよい。また、被参照サーバ３が更新されたことを通知することで、データ取得部１１Ａがデータを取得してもよい。
【００３８】
Ｓ１１：制御部１０Ａ（データ生成部１２Ａ）は、Ｓ１０で取得したデータからマスタＤＢ２２Ａに記憶させるデータを生成する。
【００３９】
Ｓ１２：制御部１０Ａ（データ登録部１３Ａ）は、Ｓ１１で生成したデータを、マスタＤＢ２２Ａに記憶する。
【００４０】
Ｓ１３：制御部１０Ａ（第１複製部１４Ａ）は、Ｓ１１で生成し、Ｓ１２でマスタＤＢ２２Ａに記憶したデータを、第２サーバ１Ｂに対して送信する。その後、制御部１０Ａは、本処理を終了する。
【００４１】
図３のＳ２１：制御部１０Ａ（第２複製部１５Ａ）は、第２サーバ１Ｂからデータを受信する。ここで、受信するデータは、第２サーバ１Ｂが被参照サーバ３から取得して生成したデータである。
【００４２】
Ｓ２２：制御部１０Ａ（第２複製部１５Ａ）は、受信したデータを、スレーブＤＢ２４Ａに記憶する。
【００４３】
Ｓ２３：制御部１０Ａ（整合性確認部１６Ａ）は、マスタＤＢ２２ＡとスレーブＤＢ２４Ａとの間でデータの整合性が取れているか否かを確認する。確認した結果、整合性が取れていると判定された場合（Ｓ２３：ＹＥＳ）には、制御部１０Ａは、本処理を終了する。他方、確認の結果、整合性が取れていないと判定された場合（Ｓ２３：ＮＯ）には、制御部１０Ａは、処理をＳ２４に移す。
【００４４】
Ｓ２４：制御部１０Ａ（データ補完部１７Ａ）は、スレーブＤＢ２４Ａに存在し、マスタＤＢ２２Ａに存在しないデータを、マスタＤＢ２２Ａに対して更新することで、マスタＤＢ２２ＡとスレーブＤＢ２４Ａとの整合性が取れるようにする。その後、制御部１０Ａは、本処理を終了する。
【００４５】
このように、データベース多重化システム１００は、第１サーバ１Ａと第２サーバ１Ｂとが管理するデータベースを各々マスタＤＢ２２とスレーブＤＢ２４の２つに分けることでデータの複製処理を単方向にできるので、データベースサーバ１における処理内容の振分を不要にして簡単かつ簡潔に多重化が可能になる。よって、データベース多重化システム１００は、第１サーバ１Ａと第２サーバ１Ｂとの処理をほぼ同等にするので、データ登録処理を簡潔なものにすることができる。
【００４６】
また、データベース多重化システム１００は、第１サーバ１Ａで登録されたデータと第２サーバ１Ｂで登録されたデータとを、第１サーバ１Ａと第２サーバ１Ｂとの中で各々管理することで、第１サーバ１Ａに記憶されたデータベースの内容と、第２サーバ１Ｂに記憶されたデータベースの内容との整合性を簡単に確認できる。
【００４７】
以上、本発明の実施形態について説明したが、本発明は、上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００４８】
１      データベースサーバ
１Ａ    第１サーバ
１Ｂ    第２サーバ
３      被参照サーバ
５      参照サーバ
１０，１０Ａ，１０Ｂ，３０  制御部
１１，１１Ａ，１１Ｂ  データ取得部
１２，１２Ａ，１２Ｂ  データ生成部
１３，１３Ａ，１３Ｂ  データ登録部
１４，１４Ａ，１４Ｂ  第１複製部
１５，１５Ａ，１５Ｂ  第２複製部
１６，１６Ａ，１６Ｂ  整合性確認部
１７，１７Ａ，１７Ｂ  データ補完部
２０，２０Ａ，２０Ｂ，３２  記憶部
２２，２２Ａ，２２Ｂ  マスタＤＢ
２４，２４Ａ，２４Ｂ  スレーブＤＢ
１００  データベース多重化システム
Ｎ      通信ネットワーク
【図１】
2011221594.tif 000003
【図２】
2011221594.tif 000004
【図３】
2011221594.tif 000005