(57)【要約】【課題】無共有型データベースシステムにおいて、同期処理に伴う性能低下を抑制する。【解決手段】ネットワークを介してクライアントに接続される同期装置と、同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムである。同期装置は、第１のデータベースサーバに同期命令および同期完了命令を送信して、第１のデータベースサーバと、第２のデータベースサーバとの同期を制御する。第１のデータベースサーバは、同期命令を受信した場合、処理するトランザクションのログの作成を開始した後、占有する記憶領域を前記第２のデータベースサーバにコピーして、前記ログを前記第２のデータベースサーバへ送信する。第１のデータベースサーバは、同期装置から同期完了命令を受信するとログの作成を終了する。第２のデータベースサーバは、前記ログを受信して、記憶領域の更新を実行する。【選択図】図１
2014016953.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムであって、
前記同期装置は、同期を実行する場合、前記複数のデータベースサーバのうち第１のデータベースサーバに同期命令を送信し、当該同期が完了したと判定した場合、前記第１のデータベースサーバに同期完了命令を送信することによって、前記第１のデータベースサーバと、第２のデータベースサーバとの同期を制御する同期制御部を備え、
前記第１のデータベースサーバは、前記同期命令を受信した場合、処理するトランザクションのログの作成を開始した後、当該第１のデータベースサーバが占有する記憶領域を前記第２のデータベースサーバにコピーして、作成した前記ログを前記第２のデータベースサーバへ送信し、前記同期装置から同期完了命令を受信した場合、ログの作成を終了し、
前記第２のデータベースサーバは、前記ログを受信して、記憶領域の更新を実行することを特徴とする無共有型データベースシステム。
【請求項２】
前記同期装置は、前記第１のデータベースサーバと前記第２のデータベースサーバとの同期の状態が所定の程度に達したと判定したときから、前記同期完了命令を送信するまでの間、前記クライアントからの更新要求を実行せずに保留することを特徴とする請求項１に記載の無共有型データベースシステム。
【請求項３】
前記第１のデータベースサーバは、作成したログをキャッシュファイルに格納することを特徴とする請求項１または２に記載の無共有型データベースシステム。
【請求項４】
前記同期制御部は、運用系の前記第１のデータベースサーバと、待機系の前記第２のデータベースサーバとの同期を実行することにより、前記第２のデータベースサーバを運用系に切り替え、または、運用系の前記第１のデータベースサーバと、運用系の前記第２のデータベースサーバとの同期を実行することにより、前記第２のデータベースサーバの記憶領域の更新を実行することを特徴とする請求項１〜３のいずれか１項に記載の無共有型データベースシステム。
【請求項５】
ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムにおいて、前記複数のデータベースサーバのうち第１のデータベースサーバと第２のデータベースサーバとを同期する同期装置であって、
同期を実行する場合、前記第１のデータベースサーバに、処理するトランザクションのログの作成を開始した後、当該第１のデータベースサーバが占有する記憶領域を前記第２のデータベースサーバにコピーして、作成した前記ログを前記第２のデータベースサーバへ送信することを指示する同期命令を送信し、当該同期が完了したと判定した場合、前記第１のデータベースサーバに、ログの作成の終了を指示する同期完了命令を送信することによって、前記第１のデータベースサーバと、第２のデータベースサーバとの同期を制御する同期制御部を備えることを特徴とする同期装置。
【請求項６】
所定の記憶領域を占有するデータベースサーバであって、
同期命令の受信に応じて、処理するトランザクションのログの作成を開始した後、前記記憶領域を他のデータベースサーバにコピーして、作成した前記ログを他のデータベースサーバへ送信し、同期完了命令の受信に応じて、ログの作成を終了することを特徴とするデータベースサーバ。
【請求項７】
ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムにおいて実行される同期方法であって、
同期を実行する場合、前記複数のデータベースサーバのうち第１のデータベースサーバに同期命令を送信する工程と、
前記第１のデータベースサーバが前記同期命令を受信した場合、処理するトランザクションのログの作成を開始した後、当該第１のデータベースサーバが占有する記憶領域を前記複数のデータベースサーバのうち第２のデータベースサーバにコピーして、作成した前記ログを前記第２のデータベースサーバへ送信する工程と、
前記第２のデータベースサーバが前記ログを受信して、記憶領域の更新を実行する工程と、
当該同期が完了したと判定した場合、前記第１のデータベースサーバに同期完了命令を送信する工程と、
前記第１のデータベースサーバが前記同期完了命令を受信した場合、前記第１のデータベースサーバが処理するトランザクションのログの作成を終了する工程と、
を含んだことを特徴とする無共有型データベースシステムにおけるデータベースサーバの同期方法。
【請求項８】
ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムにおいて実行される同期プログラムであって、
同期を実行する場合、前記複数のデータベースサーバのうち第１のデータベースサーバに同期命令を送信する手順と、
前記第１のデータベースサーバが前記同期命令を受信した場合、処理するトランザクションのログの作成を開始した後、当該第１のデータベースサーバが占有する記憶領域を前記複数のデータベースサーバのうち第２のデータベースサーバにコピーして、作成した前記ログを前記第２のデータベースサーバへ送信する手順と、
前記第２のデータベースサーバが前記ログを受信して、記憶領域の更新を実行する手順と、
当該同期が完了したと判定した場合、前記第１のデータベースサーバに同期完了命令を送信する手順と、
前記第１のデータベースサーバが前記同期完了命令を受信した場合、前記第１のデータベースサーバが処理するトランザクションのログの作成を終了する手順と、
をコンピュータに実行させることを特徴とする無共有型データベースシステムにおけるデータベースサーバの同期プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラムに関する。
【背景技術】
【０００２】
従来、システム中のノード（コンピュータ）がストレージを共有しないノード内蔵型ストレージによって構成された無共有型データベースシステムが知られている。そして、無共有型のデータベースシステムに適用できるデータベース管理システム（ＤＢＭＳ：Database Management System）ソフトウェアとして、ＭｙＳＱＬ（登録商標）やＰｏｓｔｇｒｅＳＱＬ等が知られている。
【０００３】
無共有型データベースシステムでは、各ノード（コンピュータ）上のデータベースサーバが論理的または物理的に１つのデータ領域（データベース）を有し、他のノードとデータ領域を共有しない。したがって、最適な性能を得るためには、無共有型データベースシステムが処理するデータ量の増減に伴い、各ノードのデータ領域の量に応じて処理を割り当て、必要に応じてノードを追加する等の構成の変更を行う。
【０００４】
たとえば、特許文献１は、無共有型データベースシステムにおいて、複数のデータベースサーバの構成を変更する場合、データベース管理ノードが、構成の変更に応じて、データを移動させるデータ領域を特定し、特定されたデータ領域のデータを移動可能か否か、を判定する。すなわち、そのデータ領域とデータベースサーバとの対応付けを変更可能か否か、を判定する。具体的には、当該データ領域についてトランザクションが実行中か否かを判定する。そして、データベース管理ノードは、当該データ領域についてトランザクションが実行中でなければ、当該データ領域を移動させる。すなわち、当該データ領域と対応付けられるデータベースサーバを変更する。また、データベース管理ノードは、当該データ領域についてトランザクションが実行中であれば、トランザクションの完了を待ってから当該データ領域を移動させる。
【０００５】
また、たとえば、特許文献２は、データベースシステムに新しいデータベースを追加する場合に、既存のデータベースと新規データベースとの同一性を確保した後に、両データベースに対するアクセスを分散することで、システムを停止せずにデータベースを追加する技術を提案している。具体的には、新規データベースをネットワークに接続した後、レプリケーション機能を利用して、既存データベースと新規データベースとのデータの同一性を確保する。レプリケーションとは、データベース管理システムが有する機能の一つであって、所定のデータベースと同一の内容の複製を他のコンピュータ上に作成して、内容の同期を維持する機能である。これによって、システムを停止することなく、新しいデータベースを追加することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３２８７１１号公報
【特許文献２】特開２００６−１７８５８７号公報
【非特許文献】
【０００７】
【非特許文献１】T. Mishima and H. Nakamura, Pangea: An Eager Database Replication Middleware guaranteeing Snapshot Isolation without Modification of Database Servers. Update 2, no. 1: 1066-1077 (2009).
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１のように、実行中のトランザクションの完了を待ってデータ領域を移動させる場合、トランザクションごとにストレージへのアクセスを伴うコミット処理やロールバック処理が発生し、完了までの待機時間が長くなる。つまり、ハードディスクへのアクセスに要する時間など、ストレージが性能のボトルネックとなる。また、共有型ストレージを利用する場合、通常、ＳＡＮ（Storage Area Network）やＮＡＳ（Network Attached Storage）といった高価な装置が必要となり、コストが高くなる。さらに、新規データベースサーバを追加した直後は、当該サーバはコールド状態であるため、性能が低下する。
【０００９】
また、特許文献２のように、レプリケーション機能を利用した場合には、データベースサーバを追加する直前にレプリケーション機能を停止させることになる。そのため、レプリケーション機能を停止した後、データベースサーバが追加されてクライアントからのアクセス（クエリ）を受け付けることができるようになるまでの間に、データベースが更新されることが考えられる。このような場合には、新規に追加されたデータベースサーバには更新が反映されず、全てのデータベースサーバ間での同期を確保することができない。
【００１０】
開示の実施の形態は、上記に鑑みてなされたものであって、無共有型データベースシステムにおいて、システムの性能低下を抑制することができる、無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明に係る実施の形態は、ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムにおいて、同期を実行する場合、複数のデータベースサーバのうち第１のデータベースサーバに同期命令を送信し、第１のデータベースサーバが同期命令を受信した場合、処理するトランザクションのログの作成を開始した後、当該第１のデータベースサーバが占有する記憶領域を前記複数のデータベースサーバのうち第２のデータベースサーバにコピーして、作成したログを第２のデータベースサーバへ送信し、第２のデータベースサーバがログを受信して、記憶領域の更新を実行し、同期が完了したと判定した場合、第１のデータベースサーバに同期完了命令を送信し、第１のデータベースサーバが同期完了命令を受信した場合、第１のデータベースサーバが処理するトランザクションのログの作成を終了することを特徴とする。
【発明の効果】
【００１２】
本発明の実施の形態に係る無共有型データベースシステム、その同期方法、同期装置、データベースサーバおよび同期プログラムは、無共有型データベースシステムにおいて、システムの性能低下を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施の形態に係る無共有型データベースシステムの構成の一例を示す図である。
【図２】図２は、無共有型データベースシステムに新規データベースサーバを追加する例を説明するための図である。
【図３】図３は、第１の実施の形態に係る同期装置の構成の一例を示す図である。
【図４】図４は、第１の実施の形態に係る同期装置が備える管理テーブルに格納される情報の構成の一例を示す図である。
【図５】図５は、第１の実施の形態に係る同期装置が備える同期状態記憶部に格納される情報の構成の一例を示す図である。
【図６】図６は、第１の実施の形態に係る無共有型データベースシステムにおける同期制御処理の流れの一例を説明するためのシーケンスチャートである。
【図７】図７は、第１の実施の形態に係るデータベースサーバの構成の一例を示す図である。
【図８】図８は、第１の実施の形態に係る無共有型データベースシステムにおける同期処理の流れの一例を示すフローチャートである。
【図９】図９は、第１の実施の形態の変形例に係る無共有型データベースシステムの構成の一例を示す図である。
【図１０】図１０は、第１の実施の形態の変形例に係る無共有型データベースシステムの動作の一例を示すシーケンスチャートである。
【図１１】図１１は、第２の実施の形態に係るインタークラウドシステムの構成の一例を示す図である。
【図１２】図１２は、無共有型データベースシステムにおける一連の処理を実行するプログラムである同期プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、各実施の形態は適宜組み合わせることができる。
【００１５】
（第１の実施の形態）
図１は、第１の実施の形態に係る無共有型データベースシステム１の構成の一例を示す図である。図１を参照して、第１の実施の形態に係る無共有型データベースシステム１について説明する。図１に示すように、無共有型データベースシステム１は、同期装置１００と、データベースサーバ２００Ａ，２００Ｂ，２００Ｃと、データベース３００Ａ，３００Ｂ，３００Ｃと、を備える。同期装置１００には、クライアント４００−１，４００−２がネットワーク５００を介して接続される。また、同期装置１００には、ネットワーク５００を介して、オペレータ端末７００が接続される。さらに、同期装置１００には、ネットワーク６００を介して、データベースサーバ２００Ａ，２００Ｂ，２００Ｃが接続される。データベースサーバ２００Ａ，２００Ｂ，２００Ｃはそれぞれ、個別のデータベース３００Ａ，３００Ｂ，３００Ｃを有する。
【００１６】
ここで、無共有型データベースシステムとは、各データベースサーバが記憶領域を共有しないシステムを言う。すなわち、データベースサーバ２００Ａ，２００Ｂ，２００Ｃは、一つのストレージ装置を共有するのではなく、それぞれが占有する記憶領域を有している。ただし、記憶領域は物理的に別々に構成されるものであってもよいし、論理的に別々に構成されるものであってもよい。
【００１７】
また、データベースサーバ２００Ａ，２００Ｂ，２００Ｃおよびデータベース３００Ａ，３００Ｂ，３００Ｃは、仮想技術を利用して実現されてもよい。例えば、データセンタ内のサーバ上に、複数のデータベースサーバを構築し、それぞれに個別の記憶領域を割り当ててデータベースとしてもよい。また、同期装置１００は、インタークラウドサービスを提供するクラウド業者が管理するサーバ等によって実現されてもよい。
【００１８】
図１には、２つのクライアント４００−１，４００−２を示すが、同期装置１００に接続されるクライアントの数は特に限定されず、任意の複数の数のクライアントを同期装置１００に接続し、各クライアントにデータベースサーバ２００Ａ〜２００Ｃを利用させるように構成してもよい。また、図１には、３つのデータベースサーバ２００Ａ，２００Ｂ，２００Ｃを示すが、データベースサーバの数も特に限定されず、任意の複数の数のデータベースサーバを同期装置１００に接続することができる。
【００１９】
［同期装置１００による処理の例］
第１の実施の形態に係る同期装置１００は、クライアント４００−１，４００−２からの要求（クエリ）を受信する。クライアント４００−１，４００−２からの要求には、たとえば、データベースから情報を読み出すリード要求や、データベースに情報を書き込むライト要求が含まれる。以下、特にデータベース上の情報の変更を伴う要求を更新要求と呼ぶ。
【００２０】
同期装置１００は、受信した要求を適宜データベースサーバ２００Ａ〜２００Ｃに送信して、要求に係るトランザクションを処理する。トランザクションとは、分けることができない情報処理の単位である。一つの要求に関連してデータの整合性を保つために一体的に処理される一連の操作のまとまりをトランザクションという。
【００２１】
［同期処理］
第１の実施の形態に係る同期装置１００はまた、オペレータ端末７００から同期要求を受信し、受信した同期要求に応じて同期処理を実行する。同期要求とは、複数のデータベースサーバ間のデータ内容の同期、すなわち、異なるデータベースサーバが同一のデータ内容を保持するようにする処理の実行を求める要求である。また、同期処理とは、同期装置１００に接続されるデータベースサーバ２００Ａ〜２００Ｃが同一のデータ内容を保持すること、すなわち、データベース３００Ａ〜３００Ｃの記憶内容の同一性を維持するための処理である。第１の実施の形態に係る同期装置１００は、通常データ処理時および構成変更処理時において、異なる同期処理を実行する。
【００２２】
［構成変更処理］
構成変更処理時とは、無共有型データベースシステム１の構成に関連する処理を行う時である。たとえば、無共有型データベースシステム１に対する処理負荷が過大になった場合に、新規データベースを無共有型データベースシステム１に追加する処理が該当する。すなわち、無共有型データベースシステム１に含まれるデータベースサーバ２００Ａ〜２００Ｃの構成になんらかの変更を行う場合を指す。たとえば、一般的にスケーリングと呼ばれる処理が、構成変更処理に該当する。第１の実施の形態では特に、オンラインスケーリングを行う場合を想定する。オンラインスケーリングとは、システムを停止させることなくスケーリングを行うものである。また、データベースサーバ２００Ａ〜２００Ｃのいずれかに問題が発生し、問題解決のため、リカバリ等の記憶領域の更新処理を行う場合も構成変更処理時に該当する。第１の実施の形態では、記憶領域の更新処理も新規データベースサーバの追加処理と同様の手順で実行できるため、構成変更処理の一つとして説明する。
【００２３】
［通常データ処理］
通常データ処理時とは、無共有型データベースシステム１の構成の変更を伴わない処理である。たとえば、同期装置１００が、クライアント４００−１，４００−２からの要求を受けてデータベースサーバ２００Ａ〜２００Ｃに対して要求を送信し、データベースサーバ２００Ａ〜２００Ｃからの応答をクライアント４００−１，４００−２へ返す処理が通常データ処理に該当する。
【００２４】
同期装置１００は、通常データ処理時には、全てのデータベースサーバ２００Ａ〜２００Ｃ間で同期を取るように、受信した要求を処理する。たとえば、同期装置１００は、データベースサーバ２００Ａ，２００Ｂ，２００Ｃのうち一つのデータベースサーバ、たとえばデータベースサーバ２００Ａをリーダ（Leader）に指定し、他の二つのデータベースサーバをフォロワ（Follower）に指定する。同期装置１００は、クライアント４００−１，４００−２からの要求をリーダであるデータベースサーバ２００Ａのみに送信する。そして、リーダであるデータベースサーバ２００Ａにおける処理が完了してデータベースサーバ２００Ａからの応答を受信すると、同期装置１００は、フォロワであるデータベースサーバ２００Ｂ，２００Ｃに同じ要求を送信する。すべてのデータベースサーバ２００Ａ〜２００Ｃからの応答を受信すると、同期装置１００は、クライアント４００−１，４００−２に応答を送信する。このようにして、同期装置１００は通常データ処理時にデータベースサーバ間の同期を確保する。
【００２５】
また、同期装置１００は、ライトコンフリクトが生じた場合は、ロックを獲得したトランザクションの更新クエリのみを実行可能とし、ロックを獲得できなかったトランザクションの更新クエリはロックを取得するまでブロックする。ライトコンフリクトとは、複数のクライアントから発行された更新クエリが同一のデータを同時に更新しようとすることを指す。たとえば、図１の例では、クライアント４００−１とクライアント４００−２とが同時に同一のデータの更新を伴う要求（クエリ）を同期装置１００に送信した場合である。このように処理することで、同一データに対する更新順序が、全てのデータベースサーバにおいて同一となることを保障する。
【００２６】
なお、通常データ処理時に適用する同期確保のための手法は特に限定されない。ただし、非特許文献１に記載のPangeaとして知られる同期方法を採用することが好ましい。
【００２７】
［ログの作成］
一般的にデータベースシステムにおいては、データ損失を防ぎ保守性を確保するために、各データベースサーバにおいて、ログを作成することが広く行われている。たとえば、ライトアヘッドログ（ＷＡＬｓ：Write-Ahead Logs）と呼ばれるログを作成することが知られている。通常ライトアヘッドログは、トランザクションが実行されコミットが行われたことで生じた変更を記録するものであり、不揮発性のディスク、たとえばハードディスクに強制書き込みにより記録される。深刻なデータ損失や故障が発生した場合であっても、ＷＡＬを参照することでデータを回復することができる。
【００２８】
第１の実施の形態では、通常データ処理時には、データベースサーバ２００Ａ〜２００Ｃはログ（ＷＡＬ）を作成しない。ログを作成しない代わりに、無共有型データベースシステム１は、複数のデータベースサーバ２００Ａ〜２００Ｃ間で同期を取ることによって、すなわちレプリカを作成することによって、データの保守性を確保する。
【００２９】
構成変更処理時には、無共有型データベースシステム１のデータベースサーバ２００Ａ〜２００Ｃのうち、同期元データベースサーバに指定されたデータベースサーバが、ログを作成する。具体的には、同期装置１００から同期元データベースサーバにログ作成を指示し、同期元データベースサーバは、指示に応じてログを作成する。同期元データベースサーバは、作成したログを逐一ハードディスクすなわちデータベースに格納するのではなく、キャッシュファイル等のメモリに格納する。格納したログは、同期装置１００からの指示に応じて、同期先データベースサーバに送信される。
【００３０】
［構成変更処理の一例−新規データベースサーバ追加処理の流れ］
図２を参照して、構成変更処理の一例について説明する。図２は、無共有型データベースシステム１に新規データベースサーバを追加する例を説明するための図である。
【００３１】
同期装置１００は、構成変更処理時、たとえば新規データベースサーバを追加する場合には次の処理を実行する。まず、同期装置１００は、オペレータ端末７００から追加要求を受信する。追加要求は、新規データベースサーバ、たとえば図２に示すデータベース３００Ｄを占有するデータベースサーバ２００Ｄをシステムに追加する要求である。追加要求は、追加するデータベースサーバのアドレスと、当該データベースサーバと同期させる現用系データベースサーバのアドレスとを指定する。
【００３２】
新規データベースサーバを追加する場合、新規データベースサーバのデータベースにはまだデータが蓄積されておらず、直ちに無共有型データベースシステム１の構成に追加しても、高い処理性能を達成することができない。そこで、現用系データベースサーバ２００Ａ〜２００Ｃの一つにおいて、当該データベースサーバが占有するデータベースのデータコピーを作成させ、新規データベースサーバに転送させる。以下、データコピーを作成するデータベースサーバを同期元データベースサーバまたはマスタ、データコピーを受信する新規データベースサーバを同期先データベースサーバまたはスレーブとも呼ぶ。図２の例では、データベースサーバ２００Ｂが同期元データベースサーバであり、データベースサーバ２００Ｄが同期先データベースサーバである。
【００３３】
追加要求において同期元データベースサーバと同期先データベースサーバを特定する場合は、オペレータがそのアドレスを指定して追加要求に含めて送信する。また、オペレータは追加するデータベースサーバのアドレスのみを指定して、同期装置１００が所定の基準に基づき同期元データベースサーバを選択してもよい。同期装置１００は、同期元データベースサーバを、フォロワの役割を持つデータベースサーバの中から選択する（図４参照）。たとえば、同期装置１００は、図１に示すデータベースサーバ２００Ｂを同期元データベースサーバとして選択する。オペレータが同期元データベースサーバを指定する場合も、同様に、フォロワの役割を持つデータベースサーバの一つを指定する。
【００３４】
［データ転送処理］
新規データベースサーバの追加要求があると、同期装置１００は、同期元データベースサーバ２００Ｂにデータベース３００Ｂに格納した情報のコピーであるデータコピーを作成し同期先データベースサーバへ転送するよう指示する。図２の例では、データベースサーバ２００Ｂは、データベースサーバ２００Ｄにデータコピーを転送し、データベースサーバ２００Ｄは、受信したデータコピーをデータベース３００Ｄに格納する。
【００３５】
同期装置１００はまた、同期元データベースサーバ２００Ｂにログを作成し、データベースサーバ２００Ｄに送信するよう指示する。新規データベースサーバの追加処理中も、クライアント４００−１，４００−２から同期装置１００への要求送信は続いており、同期装置１００は通常データ処理を継続して実行している。つまり、追加処理の開始後も、同期装置１００は、リード要求やライト要求等を受信し、適宜、データベースサーバ２００Ａ〜２００Ｃに要求を送信しているため、データベース３００Ａ〜３００Ｃの内容に変更が生じている場合がある。したがって、同期元データベースサーバ２００Ｂがデータコピーを作成した後にデータベース３００Ｂの内容に変更が発生する場合がある。このような変更を、同期先データベースサーバ２００Ｄのデータベース３００Ｄに反映できるよう、データベースサーバ２００Ｂは、実行したトランザクションのログを作成して一時的に記憶し、データベースサーバ２００Ｄに送信する。この際、データベースサーバ２００Ｂは、作成したログをキャッシュファイル等のメモリに格納し、データベース３００Ｂには格納しない。このため、データベース３００Ｂにログを格納する場合と比較して、アクセス時間が低減される。
【００３６】
データベースサーバ２００Ｂから送信されるログがデータベース３００Ｄに反映されて、データベース３００Ｂが格納するデータ内容と、データベース３００Ｄが格納するデータ内容とが、所定の程度まで一致したと判定すると、同期装置１００は、クライアント４００−１，４００−２から受信する新しい更新要求の実行を保留する。ただし、同期装置１００は、送信される更新要求の受付は行う。また、同期装置１００は、更新を伴わない要求については処理を継続する。したがって、サービスの提供自体は継続されている状態が維持される。同期装置１００は、受け付けた更新要求を一時的に記憶して保留する。
【００３７】
その後も、データベースサーバ２００Ｂにおけるログの作成と、データベースサーバ２００Ｄへのログの送信は継続する。同期装置１００は、データベースサーバ２００Ｂのデータ内容と、データベースサーバ２００Ｄのデータ内容とが完全に一致したと判定すると、データベースサーバ２００Ｂとデータベースサーバ２００Ｄとを切り離す。そして、同期装置１００は、データベースサーバ２００Ｄでのログのデータベースへの反映、すなわち記憶領域の更新処理を完了させる。また、同期装置１００は、同期元データベースサーバ２００Ｂでのログ作成を終了させる。そして、同期装置１００は、データベースサーバ２００Ｄを無共有型データベースシステム１に登録して、データベースサーバ２００Ａ〜２００Ｄを利用して、保留していた更新要求の実行を再開する。これによって、構成変更処理は完了し、通常データ処理に戻る。
【００３８】
［第１の実施の形態に係る同期装置１００の構成］
次に、図３を参照して、同期装置１００の構成の一例について詳細に説明する。図３は、第１の実施の形態に係る同期装置１００の構成の一例を示す図である。図３に示すように、同期装置１００は、記憶部１１０および制御部１２０を備える。
【００３９】
記憶部１１０は、同期装置１００における処理に利用される情報や、処理の結果生成される情報を記憶する。たとえば、記憶部１１０は、クライアント４００−１，４００−２から送信される要求を一次的に格納する。また、記憶部１１０は、ネットワーク５００を介して同期装置１００に接続されるクライアント４００−１，４００−２についての情報や、ネットワーク６００を介して同期装置１００に接続されるデータベースサーバ２００Ａ〜２００Ｃについての情報を記憶する。たとえば、記憶部１１０は、データベースサーバ２００Ａ〜２００Ｃのうち、いずれのデータベースサーバがリーダとしての役割を持ち、いずれのデータベースサーバがフォロワとしての役割を持つかを示す情報を記憶する（図４参照）。また、記憶部１００は、構成変更処理時には、同期元データベースサーバと同期先データベースサーバを特定する情報を記憶する。
【００４０】
制御部１２０は、同期装置１００が備える各部における処理を制御する。たとえば、制御部１２０は、後述する同期維持部１２３による各データベースサーバ間の同期維持のための処理を制御する。また、制御部１２０は、後述する同期制御部１２４による同期処理を制御する。たとえば、制御部１２０は、オペレータ端末７００から新規データベースサーバの追加要求を受信すると、同期制御部１２４を制御して、同期元データベースサーバに対してログ作成開始指示を送信させる。また、制御部１２０は、同期制御部１２４を制御して、同期元データベースサーバと同期先データベースサーバとの同期の状態を検出させる。そして、制御部１２０は、同期制御部１２４を制御して、同期状態が所定の状態に達したと判定した場合、新しい更新要求（更新クエリ）の実行を保留する。さらに制御部１２０は、同期制御部１２４を制御して、同期状態が完了状態に達したと判定した場合、同期先データベースサーバを切り離し、同期元データベースサーバにログの送信を終了させて、同期先データベースサーバを無共有型データベースシステム１に登録し、更新要求の実行を再開する。記憶部１１０および制御部１２０の詳細については、以下にさらに詳細に説明する。なお、制御部１２０は、同期元データベースサーバから同期先データベースサーバに対する、最新のデータベースの内容に相当するデータコピーおよびログの転送が完了した時点で、同期状態が完了状態に達したと判定して、ログ送信を終了させてもよいし、転送完了後、同期先データベースサーバでの更新処理が完了した時点で、同期状態が完了状態に達したと判定して、ログ送信を終了させてもよい。
【００４１】
［記憶部１１０の構成］
記憶部１１０は、管理テーブル１１１と同期状態記憶部１１２とを備える。
【００４２】
管理テーブル１１１は、同期装置１００に接続されるデータベースサーバ２００Ａ〜２００Ｃを管理するための情報を格納する。図４は、第１の実施の形態に係る同期装置１００が備える管理テーブル１１１に格納される情報の構成の一例を示す図である。たとえば、図４に示すように、管理テーブル１１１は、同期装置１００に接続される各データベースサーバ２００Ａ〜２００Ｃを一意に特定するデータベースサーバＩＤ（Identifier）と、各データベースサーバ２００Ａ〜２００Ｃの役割と、各データベースサーバ２００Ａ〜２００Ｃの状態とを記憶する。無共有型データベースシステム１に新しいデータベースサーバが追加されると、その情報は後述する処理を経て管理テーブル１１１に格納される。
【００４３】
図４中、データベースサーバＩＤ「ＤＢＳ００１」で特定されるデータベースサーバ２００Ａの役割が「リーダ」であり、その状態が「同期」状態であることが示されている。また、データベースサーバＩＤ「ＤＢＳ００２」で特定されるデータベースサーバ２００Ｂの役割が「フォロワ」であり、その状態が「同期」状態であることが示されている。また、データベースサーバＩＤ「ＤＢＳ００３」で特定されるデータベースサーバ２００Ｃの役割が「フォロワ」であり、その状態が「同期」状態であることが示されている。
【００４４】
同期状態記憶部１１２は、構成変更処理時に、構成変更の対象となるデータベースサーバの同期状態を記憶する。図５は、第１の実施の形態に係る同期装置１００が備える同期状態記憶部１１２に格納される情報の構成の一例を示す図である。図５に示すように、たとえば、新規データベースサーバの追加処理が開始されると、すなわち、同期装置１００がオペレータ端末７００からの新規データベースサーバの追加要求を受信すると、同期状態記憶部１１２の「状態：同期」の欄にフラグが立てられる。そして、同期装置１００により、同期元データベースサーバと同期先データベースサーバの同期状態が所定の状態に達したと判定されると、同期状態記憶部１１２の「状態：保留（同期）」の欄にフラグが立てられる。さらに、同期装置１００が、同期元データベースサーバと同期先データベースサーバの同期状態が完了したと判定し、同期先データベースサーバを管理テーブル１１１に登録すると、同期状態記憶部１１２の「状態：通常」の欄にフラグが立てられる。
【００４５】
また、データベースサーバのいずれかが故障して記憶領域の更新処理（例えばリカバリ処理）を行う場合も、同様に同期状態記憶部１１２に記憶領域の更新処理の進行状態を示す情報を記憶する。たとえば、データベースサーバ２００Ｃに故障が発生し、他のデータベースサーバ２００Ｂからデータをコピーして記憶領域の更新処理を行う場合には、同期装置１００は、記憶領域の更新処理の開始を指示するときに、同期状態記憶部１１２の「状態：同期」にフラグを立てる。そして、同期装置１００により、データベースサーバ２００Ｂとデータベースサーバ２００Ｃの同期状態が所定の状態に達したと判定されると、同期状態記憶部１１２の「状態：保留（同期）」の欄にフラグを立てる。さらに、同期装置１００により、データベースサーバ２００Ｂからデータベースサーバ２００Ｃの同期状態が完了したと判定され、データベースサーバ２００Ｂおよび２００Ｃに記憶領域の更新処理の終了が指示されると、同期状態記憶部１１２の「状態：通常」の欄にフラグが立てられる。なお、図５には図示しないが、同期状態記憶部１１２は、同期処理の対象となっているデータベースサーバを特定する情報も記憶してもよい。
【００４６】
［制御部１２０の構成］
再び図３を参照して制御部１２０の構成の一例について説明する。制御部１２０は、受信部１２１と、送信部１２２と、同期維持部１２３と、同期制御部１２４と、を備える。受信部１２１は、外部から送信されるデータ、たとえばクライアント４００−１，４００−２から送信される要求（クエリ）を受信する。また、受信部１２１は、オペレータ端末７００から送信される要求を受信する。さらに、受信部１２１は、データベースサーバ２００Ａ〜２００Ｃから送信される応答等を受信する。
【００４７】
送信部１２２は、外部にむけてデータを送信する。たとえば、送信部１２２は、クライアント４００−１，４００−２からの要求を、データベースサーバ２００Ａ〜２００Ｃに送信する。また、送信部１２２は、オペレータ端末７００からの要求に対する応答をオペレータ端末７００に送信する。送信部１２２は、データベースサーバ２００Ａ〜２００Ｃから受信した応答をクライアント４００に送信する。
【００４８】
同期維持部１２３は、データベースサーバ２００Ａ〜２００Ｃの間で同期状態を維持する処理を実行する。たとえば、受信部１２１がクライアント４００からライト要求を受信すると、同期維持部１２３はまず、ライト要求をその時点でリーダの役割を持つデータベースサーバ、たとえばデータベースサーバ２００Ａに送信する。そして、データベースサーバ２００Ａにおいてライト要求が実行されコミットが完了すると、すなわち、処理後の状態がデータベース３００Ａに反映されると、データベースサーバ２００Ａは、同期装置１００に応答を送信する。
【００４９】
データベースサーバ２００Ａからの応答を受信すると、同期維持部１２３は、ライト要求をフォロワであるデータベースサーバ２００Ｂ，２００Ｃに送信する。そして、データベースサーバ２００Ｂ，２００Ｃでもライト要求の実行とコミットが完了すると、すなわち、処理後の状態がデータベース３００Ｂ，３００Ｃに反映されると、データベースサーバ２００Ｂ，２００Ｃは同期装置１００に応答を送信する。同期維持部１２３は、すべてのデータベースサーバ２００Ａ〜２００Ｃから応答を受信すると、クライアント４００に応答を送信する。このようにして、同期維持部１２３は、現用系データベースサーバ２００Ａ〜２００Ｃの間でデータの同一性が維持されるように処理を行う。
【００５０】
なお、同期維持部１２３が行う同期維持のための処理は特に限定されず、複数のデータベースが常時同じデータを保持するようにできる処理であればよい。すなわち、レイジーレプリケーション（Lazy Replication）やイーガーレプリケーション（Eager Replication）に分類される同期処理等を同期維持部１２３での処理に適用することができる。ただし、本発明においては、非特許文献１に記載の同期処理を適用することが好ましい。
【００５１】
同期制御部１２４は、受信部１２１がオペレータ端末７００から二つのデータベースサーバ間での同期を伴う要求を受信した場合に、データベースサーバ間での同期を実現する処理を実行する。同期を伴う要求とは、たとえば、新規データベースサーバの追加要求である。また、同期を伴う要求とは、たとえば、現用系データベースサーバ２００Ａ〜２００Ｃにおける記憶領域の更新処理の要求である。
【００５２】
同期制御部１２４は、受信部１２１がオペレータ端末７００から新規データベースサーバの追加要求を受信した場合に、現用系データベースサーバと新規データベースサーバとの間の同期を実現する処理を実行する。処理の詳細は後述する。
【００５３】
また、同期制御部１２４は、現用系データベースサーバ２００Ａ〜２００Ｃのいずれかにおいて故障が発生し、故障が通知された場合に、故障が発生したデータベースサーバの記憶領域の更新処理を実行する。また、同期制御部１２４は、同期装置１００がデータベースサーバ２００Ａ〜２００Ｃの故障を検出した場合に、故障が検出されたデータベースサーバの記憶領域の更新処理を実行する。記憶領域の更新処理においては、現用系データベースサーバの一つから故障したデータベースサーバに対してデータベースに格納されたデータのデータコピーと記憶領域の更新処理の指示を受けてから実行したトランザクションのログとを送信することになるため、実質的に、新規データベースサーバの追加時と同様の処理を実行することになる。
【００５４】
［同期制御処理の流れ］
次に、同期制御部１２４において実行される同期制御処理の流れの一例について説明する。図６は、第１の実施の形態に係る無共有型データベースシステム１における同期制御処理の流れの一例を説明するためのシーケンスチャートである。
【００５５】
図６に示すように、まずオペレータ端末７００が同期装置１００に新規データベースサーバの追加要求を送信する（図６の（１））。追加要求を受信した同期装置１００の同期制御部１２４は、同期状態記憶部１１２の「状態：同期」にフラグを立てる（図６の（２））。そして、同期制御部１２４は、管理テーブル１１１を参照して、同期元データベースサーバを選択する。なお、オペレータ端末７００からの追加要求において、同期元データベースサーバのアドレスを指定してもよい。
【００５６】
次に、同期制御部１２４は、現用系データベースサーバ２００Ｂに、データベース３００Ｂのデータコピーの作成とログの作成開始を指示する（図６の（３））。現用系データベースサーバ２００Ｂは、ログの作成を開始した後、データコピーを作成し、作成したデータコピーを新規データベースサーバ２００Ｄに送信する（図６の（４））。新規データベースサーバ２００Ｄは、データコピーの受信を完了すると、受信完了応答を現用系データベースサーバ２００Ｂに送信する（図６の（５））。現用系データベースサーバ２００Ｂは、データコピーの送受信が完了したことを示す完了応答を同期装置１００に送信する（図６の（６））。次に、現用系データベースサーバ２００Ｂは、新規データベースサーバ２００Ｄに対してログを送信する（図６の（７））。なお、図には明示しないが、現用系データベースサーバ２００Ｂは、この後、同期制御部１２４が同期状態記憶部１１２の「状態：通常」にフラグを立てるまでの間、継続的に新規データベースサーバ２００Ｄにログを送信する。また、ログの送信は、データコピーの送信と並行して実行してもよい。
【００５７】
新規データベースサーバ２００Ｄは、ログを受信しデータベース３００Ｄへの反映を完了すると、完了応答を現用系データベースサーバ２００Ｂに送信する（図６の（８））。現用系データベースサーバ２００Ｂは、さらに完了応答を同期装置１００に送信する（図６の（９））。なお、図６では、ログの送受信結果を逐一、現用系データベースサーバ２００Ｂおよび同期装置１００に通知するものとして記載したが、応答送信等は適宜省略してもよい。
【００５８】
同期制御部１２４は、現用系データベースサーバ２００Ｂから新規データベースサーバ２００Ｄへのデータの転送が進むと、同期状態が所定の程度に到達したか否かを判定する（図６の（１０））。ここで、同期制御部１２４は、たとえば、現用系データベースサーバ２００Ｂに送信した要求のログを作成しておき、現用系データベースサーバ２００Ｂから受信したログ反映完了応答を参照して、新規データベースサーバ２００Ｄとの同期状態を判定してもよい。同期状態の判定手法は特に限定されない。
【００５９】
同期制御部１２４は、現用系データベースサーバ２００Ｂと新規データベースサーバ２００Ｄとの同期状態が所定の程度に到達したと判定すると、同期状態記憶部１１２の「状態：保留（同期）」にフラグを立てる（図６の（１１））。同期状態記憶部１１２が「保留（同期）」状態となると、同期装置１００は以後、同期状態記憶部１１２が「通常」状態に変更されるまでの間、クライアント４００−１，４００−２からの更新要求を受信した場合、実行せずに、記憶部１１０に格納して保留する。
【００６０】
つまり、同期状態記憶部１１２が「保留（同期）」状態となってから「通常」状態になるまでの間、同期装置１００は、クライアント４００−１，４００−２からの要求を受信した場合、まず、更新要求であるか否かを判定する。そして、更新要求でない場合は、同期装置１００は、当該要求をリーダであるデータベースサーバ２００Ａに送信して通常の処理を行う。他方、更新要求である場合は、同期装置１００は、当該要求を記憶部１１０に格納し、実行せずに保留する。なお、「保留（同期）」状態に移行した際に、既に実行中の更新トランザクションについては、実行を中止せずに継続する。したがって、「保留（同期）状態」に移行した後も、データベースサーバ２００Ｂは適宜ログを作成してデータベースサーバ２００Ｄに送信する（図６の（１２）、（１３）、（１４）、（１５））。
【００６１】
同期状態記憶部１１２が「保留（同期）」状態に移行した後、所定時間が経過すると、同期制御部１２４は、実行中のトランザクションの有無を判定する（図６の（１６））。実行中のトランザクションがなければ、現用系データベースサーバ２００Ｂから新規データベースサーバ２００Ｄへのデータコピーおよびログの転送が完了しているか否かを判定する（図６の（１７））。他方、実行中のトランザクションが存在すれば、当該トランザクションの完了を待つため、さらに所定時間待機する。転送が完了していると判定すると、同期制御部１２４は、新規データベースサーバ２００Ｄと現用系データベースサーバ２００Ｂとを切り離す（図６の（１８））。そして、同期制御部１２４は、新規データベースサーバ２００Ｄにおけるログの反映処理（リカバリ処理等の記憶領域の更新処理）が完了したか否かを判定する（図６の（１９））。反映処理が完了していれば、同期制御部１２４は、新規データベースサーバ２００Ｄを管理テーブル１１１に登録し（図６の（２０））、同期状態記憶部１１２の「状態：通常」にフラグをたてる（図６の（２１））。これで、同期制御部１２４による同期処理が完了する。
【００６２】
なお、図６においては、データベースサーバ２００Ｂは、同期装置１００からログ作成指示を受信した後、同期状態記憶部１１２が「状態：通常」に移行するまでの間、ログ作成および送信を行うものとして記載した。しかし、これに限定されず、データベースサーバ２００Ｂによるログの作成は、実行中のトランザクションが完了した後、すなわち、図６の（１６）において実行中トランザクションなしと判定されれば、終了してよい。ただし、ログ作成終了のタイミングは特に限定されず、実行中トランザクションなしと判定された後、同期状態記憶部１１２が「状態：通常」に移行するまでの間の任意の時点で終了するようにすればよい。
【００６３】
［第１の実施の形態に係るデータベースサーバの構成］
図７は、第１の実施の形態に係るデータベースサーバ２００Ａの構成の一例を示す図である。図１に示すデータベースサーバ２００Ａ〜２００Ｃのいずれも、図７に示す構成と同様の構成を備えるが、図７は例としてデータベースサーバ２００Ａを示す。
【００６４】
図７に示すように、データベースサーバ２００Ａは、記憶部２１０と制御部２２０とを備える。記憶部２１０は、データベースサーバ２００Ａにおける処理に利用する情報や、データベースサーバ２００Ａにおける処理の結果として生成される情報を記憶する。制御部２２０は、データベースサーバ２００Ａにおける各部の処理を制御する。
【００６５】
［記憶部２１０の構成］
記憶部２１０は、ログ記憶部２１１とデータコピー記憶部２１２とを備える。ログ記憶部２１１は、同期装置１００からの指示に応じて、データベースサーバ２００Ａにおいて作成されるログを記憶するメモリである。ログ記憶部２１１はたとえば、データベースサーバ２００Ａが作成したＷＡＬを記憶する。データベースサーバ２００Ａは、作成したログをデータベース３００Ａやハードディスクに格納することはせず、ログ記憶部２１１に保持する。ログ記憶部２１１は、ハードディスク等と比較してアクセス速度が速いメモリ、たとえばキャッシュファイルで構成する。
【００６６】
ログ記憶部２１１の内容は、同期装置１００から、ログ作成指示を受信したタイミングで一端初期化される。ただし、処理ごとに、新しくログを作成することができればよく、たとえば、同期制御部１２４が同期状態記憶部１１２の状態を「保留（同期）」から「通常」に変更したときに、同期装置１００からデータベースサーバ２００Ａに初期化指示を送信し、ログ記憶部２１１を初期化するものとしてもよい。
【００６７】
データコピー記憶部２１２は、データベースサーバ２００Ａが同期装置１００からの指示に応じて作成したデータコピーを一次的に記憶する。記憶したデータコピーは逐次、新規データベースサーバへ送信される。
【００６８】
［制御部２２０の構成］
制御部２２０は、トランザクション処理部２２１と、ログ受信部２２２と、ログ送信部２２３と、更新実行部２２４と、を備える。
【００６９】
トランザクション処理部２２１は、同期装置１００を介して送信されるクライアント４００−１，４００−２からの要求に応じてトランザクションを実行する。トランザクション処理部２２１は、たとえば、ライト要求を受信すると、スナップショットの作成や、データベースへの情報の書き込み処理、コミット処理等を実行する。処理が完了するとトランザクション処理部２２１は、応答を同期装置１００へ送信する。
【００７０】
トランザクション処理部２２１はまた、同期装置１００からログ作成開始指示を受信した場合に、ログの作成を開始し、同期装置１００からログ作成終了指示を受信した場合に、ログの作成を終了する。トランザクション処理部２２１が作成したログは、ログ記憶部２１１に格納する。トランザクション処理部２２１は、常時ログを作成するのではなく、同期装置１００からの指示を受信した場合にログを作成する。また、トランザクション処理部２２１は、同期装置１００からログ作成開始指示を受信すると、ログ記憶部２１１を初期化する。
【００７１】
トランザクション処理部２２１はまた、同期装置１００からデータコピーを作成する指示を受信した場合に、データコピーの作成を実行し、データコピー記憶部２１２に格納する。
【００７２】
ログ受信部２２２は、他のデータベースサーバが作成したログを受信する。図１および図４の例では、データベースサーバ２００Ａは、リーダである。しかし、構成が変更された場合は、データベースサーバ２００Ａは、フォロワやスレーブとして動作する場合もある。たとえば、データベースサーバ２００Ａがスレーブ、すなわち同期先データベースサーバとして動作する場合、ログ受信部２２２は、同期元データベースサーバが作成したログを受信する。
【００７３】
ログ送信部２２３は、データベースサーバ２００Ａが作成し、ログ記憶部２１１に格納したログを、他のデータベースサーバに送信する。たとえば、データベースサーバ２００Ａがマスタ、すなわち同期元データベースサーバとして動作する場合、ログ送信部２２３は、ログ記憶部２１１に格納されたログを、同期先データベースサーバへ送信する。たとえば、ログ送信部２２３は、定期的にログ記憶部２１１を参照し、ログが格納されていれば、適宜、同期先データベースサーバにログを送信する。
【００７４】
更新実行部２２４は、ログ受信部２２２が受信したログに基づいて記憶領域の更新処理を実行する。たとえば、更新実行部２２４は、データベースサーバ２００Ａが新規データベースサーバとして新たに無共有型データベースシステム１に追加される場合に、他のデータベースサーバからデータコピーとログを受信してデータを取得する場合の処理を実行する。また、更新実行部２２４は、データベースサーバ２００Ａに故障が発生し、他のデータベースサーバからデータコピーとログを受信してデータを回復する場合の処理を実行する。
【００７５】
［第１の実施の形態における同期処理の流れ］
図８は、第１の実施の形態に係る無共有型データベースシステム１における同期処理の流れの一例を示すフローチャートである。以下、図８を参照して、第１の実施の形態に係る無共有型データベースシステム１における同期処理の流れの一例について説明する。
【００７６】
まず、同期装置１００は、オペレータ端末７００が送信する同期要求を受信する（ステップＳ１０１）。同期要求は、同期の対象となるデータベースサーバを特定する。たとえば、同期要求は、新規に追加するデータベースサーバのアドレスを含む。また、同期要求は、同期元となるデータベースサーバのアドレスも含んでもよい。
【００７７】
同期要求を受信した同期装置１００の受信部１２１は、同期制御部１２４に同期要求の受信を通知する。これを受けて、同期制御部１２４は、同期元となるデータベースサーバを選択する。または、同期制御部１２４は、同期要求において指定されたデータベースサーバを同期元として特定する。そして、同期制御部１２４は、当該データベースサーバに対して、ログ記憶部２１１を初期化するよう指示する（ステップＳ１０２）。
【００７８】
次に、同期制御部１２４は、同期状態記憶部１１２の「状態：同期」にフラグを立てる（ステップＳ１０３）。そして、同期制御部１２４は、同期元データベースサーバにデータコピーの作成とログの作成開始を指示する（ステップＳ１０４）。また、同期制御部１２４は、作成したデータコピーとログを同期先データベースサーバに送信するよう同期元データベースサーバに指示する（ステップＳ１０４）。
【００７９】
そして、同期制御部１２４は、同期元データベースサーバに対してデータコピーを同期先データベースサーバに転送させる（ステップＳ１０５）。同期元データベースサーバは作成したデータコピーをデータコピー記憶部２１２から読み出して、同期先データベースサーバへ転送する。なお、データコピーおよびログの作成と送信についての指示は必ずしも別個に出す必要はなく、一つの命令が作成および送信の指示を兼ねてよいし、別個に出してもよい。
【００８０】
データコピーの転送中も、同期元データベースサーバから同期先データベースサーバへのログの送信は継続する。そして、データコピーの転送が完了すると、同期制御部１２４は、同期先データベースサーバにインスタンスを起動するよう指示する（ステップＳ１０６）。指示に応じて、同期先データベースサーバはインスタンスを起動し、データベースにログを反映させる。
【００８１】
インスタンス起動から所定の期間が経過すると、同期制御部１２４は、同期元データベースサーバと同期先データベースサーバとの同期状態が所定の程度に達したか否かを判定する（ステップＳ１０７）。同期状態が所定の程度に達していないと判定した場合（ステップＳ１０７、否定）、同期制御部１２４はさらに所定の期間待機して、再び、同期状態が所定の程度に達したか否かを判定する。同期状態が所定の程度に達したと判定した場合（ステップＳ１０７、肯定）、同期制御部１２４は、同期状態記憶部１１２の「状態：保留（同期）」にフラグを立てる（ステップＳ１０８）。
【００８２】
同期状態記憶部１１２が「保留（同期）」状態になると、同期装置１００は、新たにクライアント４００−１，４００−２から更新要求が送信された場合、更新要求を実行することなく保留して記憶部１１０に格納する。
【００８３】
そして、同期制御部１２４は、同期元データベースサーバにおいて実行中のトランザクションが存在するか否かを判定する（ステップＳ１０９）。同期元データベースサーバにおいて実行中のトランザクションがあると判定した場合（ステップＳ１０９、肯定）、同期制御部１２４は所定の期間待機して、再び、実行中のトランザクションの有無を判定する。他方、同期元データベースサーバにおいて実行中のトランザクションはないと判定した場合（ステップＳ１０９、否定）、同期制御部１２４は、同期元データベースサーバから同期先データベースサーバへのログの転送が完了したか否かを判定する（ステップＳ１１０）。転送が完了していないと判定した場合（ステップＳ１１０、否定）、同期制御部１２４は、所定の期間待機して再び転送が完了したか否かを判定する。転送が完了したと判定した場合（ステップＳ１１０、肯定）、同期制御部１２４は、同期先データベースサーバを同期元データベースサーバから切り離す（ステップＳ１１１）。
【００８４】
そして、同期制御部１２４は、同期先データベースサーバにおいて、記憶領域の更新処理すなわちログのデータベースへの反映処理が完了したか否かを判定する（ステップＳ１１２）。反映処理が完了していないと判定した場合（ステップＳ１１２、否定）、同期制御部１２４はさらに所定の期間待機した後、再び反映処理が完了したか否かを判定する。他方、反映処理が完了したと判定した場合（ステップＳ１１２、肯定）、同期制御部１２４は、同期先データベースサーバを管理テーブル１１１に登録する（ステップＳ１１３）。たとえば、同期制御部１２４は、図４に示す管理テーブルの空欄部分に、同期先データベースを一意に特定するデータベースＩＤと、その役割と、状態とを格納する。
【００８５】
その後、同期制御部１２４は、同期状態記憶部１１２の状態を「保留（同期）」から「通常」に移行させる（ステップＳ１１４）。すなわち、同期制御部１２４は、「状態：通常」にフラグを立てる。同期状態記憶部１１２の「状態：通常」にフラグが立てられると、同期元データベースサーバは、ログの作成と送信を終了する。また、同期装置１００は、保留して記憶部１１０に格納していた更新要求の処理を再開する。これによって、同期処理が終了する。
【００８６】
［第１の実施の形態の効果］
上記の通り、第１の実施の形態に係る無共有型データベースシステム１は、ネットワークを介してクライアントに接続される同期装置と、当該同期装置と接続され、各々所定の記憶領域を占有する複数のデータベースサーバとを備える無共有型データベースシステムである。同期装置は、同期を実行する場合、同期元データベースサーバに同期命令、すなわち、データコピーとログの作成および送信を指示する命令を送信し、同期が完了したと判定した場合、同期元データベースサーバに同期完了命令、すなわち、ログの作成の終了を指示する命令を送信して、同期を制御する。同期元データベースサーバは、同期命令を受信した場合、同期元データベースサーバが占有する記憶領域のコピーを作成するとともに、処理するトランザクションのログの作成を開始する。そして、同期元データベースサーバは、作成したコピーとログとを同期先データベースサーバへ送信する。同期元データベースサーバはまた、同期装置から同期完了命令を受信した場合、ログの作成を終了する。同期先データベースサーバは、同期元データベースサーバからコピーとログとを受信して、記憶領域の更新処理を実行する。このように、第１の実施の形態に係る無共有型データベースシステムは、データベースサーバにおいて作成されるログを利用して、新規データベースサーバの同期等の構成変更処理を実行するため、構成変更処理時のオーバヘッドを抑制することができる。
【００８７】
すなわち、第１の実施の形態に係る無共有型データベースシステム１は、通常データ処理の間は、各データベースサーバ２００Ａ〜２００Ｃにおいて処理したトランザクションのログを作成せず、同期装置１００からログ作成開始の指示が送信された場合のみ、ログを作成する。このため、ログの作成とハードディスクへの格納のために要される時間や処理が不要となり、処理効率を向上させることができる。
【００８８】
また、上記のように第１の実施の形態に係る無共有型データベースシステム１は、無共有型のシステム構成を採用しているため、共有ディスクを使用してシステムを構築する場合のように、高価な共有ディスクを必要とせず、通常のコンピュータをクラスタ化して構築することができる。このため、コスト低減することができる。また、複数のデータベースサーバが一つのストレージを共有しないため、ストレージが障害点となった不具合の発生を回避することができる。
【００８９】
また、上記のように第１の実施の形態に係る無共有型データベースシステム１においては、同期元データベースサーバは、同期命令を受信した場合にログの作成を開始し、同期完了命令を受信した場合にログの作成を終了するため、常時ログを作成する場合と比較して、ハードディスクへのアクセスが減じられ、処理速度を向上させることができる。
【００９０】
また、第１の実施の形態に係る無共有型データベースシステム１において、同期装置は、同期元データベースサーバと同期先データベースサーバとの同期の状態が所定の程度に達したと判定したときから、同期完了命令を送信するまでの間、クライアントからの更新要求を実行せずに保留する。このため、同期元データベースサーバと同期先データベースサーバとの間の同期を保障しつつ、クライアントからの要求の処理の遅延を最小限に抑えることができる。
【００９１】
また、第１の実施の形態に係る無共有型データベースシステム１において、同期元データベースサーバは、作成したログをキャッシュファイルに格納する。すなわち、同期元データベースサーバは、作成したログを逐次ハードディスクに格納しない。このため、相対的に速度が遅いハードディスクへのアクセスを行う必要がなく、ログの作成や格納にかかるオーバヘッドを削減することができる。また、ログの転送はメモリ間コピーとなるため、オーバヘッドが小さい。このため、無共有型データベースシステムにおける処理効率を向上させることができる。
【００９２】
また、第１の実施の形態に係る無共有型データベースシステム１において、同期制御部は、運用系の同期元データベースサーバと、待機系の同期先データベースサーバとの同期を実行することにより同期先データベースサーバを運用系に切り替える。また、同期制御部は、運用系の同期元データベースサーバと、運用系の同期先データベースサーバとの同期を実行することにより、同期先データベースサーバの記憶領域の更新を実行する。このため、第１の実施の形態に係る無共有型データベースシステムは、新規データベースサーバの追加や運用系データベースサーバの記憶領域の更新を行う場合に、全てのデータベースを同期させることができる。
【００９３】
また、同期完了後は、同期元データベースサーバと同期先データベースサーバとが同期しているため、同期先データベースサーバは最初からウォーム状態で動作することになり、同期後の性能低下を防止することができる。
【００９４】
なお、本実施の形態においては、構成変更処理の一例として、新規データベースサーバを追加する場合と、現用系データベースサーバが故障して記憶領域の更新処理を行う場合について説明した。しかし、これに限られず、本発明は、データベースシステムにおいて異なるデータベースサーバ間で同期を取る様々な場合に適用できる。
【００９５】
（第１の実施の形態の変形例）
上述した第１の実施の形態は、同期元データベースサーバがデータコピーを作成した上で、作成したデータコピーを同期先データベースサーバに送信するように構成した。しかし、同期元データベースサーバがデータコピーを作成せず、ファイルレベルでデータを同期先データベースサーバにコピーするように構成することもできる。以下、第１の実施の形態の変形例として、同期元データベースサーバがデータコピーを作成しない場合を説明する。変形例においては、第１の実施の形態と共通する部分については詳細な説明は省略し、第１の実施の形態と相違する部分のみ説明する。
【００９６】
［変形例に係る無共有型データベースシステムの構成］
図９は、変形例に係る無共有型データベースシステム１Ａの構成の一例を示す図である。第１の実施の形態と同様、無共有型データベースシステム１Ａにおいては、同期装置１００Ａと複数のデータベースサーバ２５０Ａ，２５０Ｂ，２５０Ｃがネットワーク６００Ａを介して接続される。さらに、データベースサーバ２５０Ａ，２５０Ｂ，２５０Ｃはそれぞれデータベース３５０Ａ，３５０Ｂ，３５０Ｃと接続される。同期装置１００Ａはまた、ネットワーク５００Ａを介してクライアント４００Ａ，４００Ｂおよびオペレータ端末７００Ａに接続される。
【００９７】
［変形例に係る同期装置の構成］
図９に示すように、変形例に係る同期装置１００Ａの構成は、図３に示す実施の形態１の同期装置１００の構成と同様である。同期装置１００Ａは、記憶部１１０Ａと制御部１２０Ａとを備え、記憶部１１０Ａは、管理テーブル１１１Ａおよび同期状態記憶部１１２Ａを備える。また、制御部１２０Ａは、受信部１２１Ａ、送信部１２２Ａ、同期維持部１２３Ａ、同期制御部１２４Ａを備える。これら各部の機能は、実施の形態１と同様である。
【００９８】
［変形例に係るデータベースサーバの構成］
変形例においては、図９に示すように、データベースサーバ２５０Ａの構成は、第１の実施の形態に係るデータベースサーバ２００Ａの構成と異なる。データベースサーバ２５０Ａは、記憶部２１０Ａと制御部２２０Ａとを備える。記憶部２１０Ａはログ記憶部２１１Ａを備える。また、制御部２２０Ａはトランザクション処理部２２１Ａ、ログ受信部２２２Ａ、ログ送信部２２３Ａおよび更新実行部２２４Ａを備える。すなわち、第１の実施の形態のデータベースサーバ２００Ａと異なり、変形例のデータベースサーバ２５０Ａは、記憶部２１０Ａ内にデータコピー記憶部２１２を有しない。また、データベースサーバ２５０Ａのトランザクション処理部２２１Ａは、たとえば新規データベースサーバを追加する指示を同期装置１００Ａから受信した場合、データコピーを作成して一時的に格納するのではなく、ｒｓｙｎｃを利用したりＣＰコマンド等の命令を利用することで、ファイルレベルでのコピーを実行する。これら以外の点では、変形例のデータベースサーバ２５０Ａの各部の動作および機能は、第１の実施の形態に係るデータベースサーバ２００Ａの各部の動作および機能と同様である。
【００９９】
［変形例に係る無共有型データベースシステムの動作］
図１０は、変形例に係る無共有型データベースシステムの動作の一例を示すシーケンスチャートである。図１０を参照して、無共有型データベースシステム１Ａの動作の一例を説明する。ここでは、同期元データベースサーバとしてデータベースサーバ２５０Ａが指定され、同期先データベースサーバとしてデータベースサーバ２５０Ｂが指定され、データベースサーバ２５０Ｂを新規にシステムに追加する場合を想定する。
【０１００】
まず、オペレータ端末７００Ａから同期装置１００Ａに対して、追加要求を送信する（図１０の（１））。同期装置１００Ａは、同期状態記憶部１１２Ａを「状態：同期」とする（図１０の（２））。そして同期装置１００Ａは、データベースサーバ２５０Ａにログ作成の開始を指示する（図１０の（３））。データベースサーバ２５０Ａは、ログの作成を開始する。
【０１０１】
次に、同期装置１００Ａは、データベースサーバ２５０Ａにコピー開始を指示する（図１０の（４））。データベースサーバ２５０Ａは、コピー開始指示に応じて、データベースサーバ２５０Ｂへのコピーを開始する（図１０の（５））。ここで、コピーは例えば、ｒｓｙｎｃ等のソフトウェアやＣＰコマンド等の命令を利用して実現することができる。コピーが完了すると、データベースサーバ２５０Ｂからデータベースサーバ２５０Ａにコピー完了応答が送信される（図１０の（６））。データベースサーバ２５０Ａは、コピー完了応答を同期装置１００Ａに送信する（図１０の（７））。なお、図１０では便宜上、コピー完了応答をログ送信より前の処理として記載しているが、データコピーが完了する前にログ送信を実行してもよい。
【０１０２】
データベースサーバ２５０Ａは、コピー中にデータの更新が発生した場合はログをログ記憶部２１１Ａに格納する。そして、例えば所定期間が経過するごとにログ記憶部２１１Ａに新しいログが記憶されているか否かを検出する。新しいログが記憶されていることを検出した場合、データベースサーバ２５０Ａは、検出したログをデータベースサーバ２５０Ｂに送信する（図１０の（８））。データベースサーバ２５０Ｂでは受信したログを格納し、データベースサーバ２５０Ｂにログ反映完了応答を返す（図１０の（９））。さらに、データベースサーバ２５０Ｂは、ログ反映完了応答をデータベースサーバ２５０Ａに送信する（図１０の（１０））。その後の処理は、図６に示す（１０）〜（２１）と同様である。
【０１０３】
［変形例の効果］
上記の通り、変形例に係る無共有型データベースシステムでは、同期処理において、同期元データベースサーバがデータのコピーを作成するのではなく、同期先データベースサーバにファイルレベルでコピーを実行する。また、コピーを開始する前に、同期装置が同期元データベースサーバにログの作成を指示し、コピー中に発生した処理のログを記憶させる。このため、同期先データベースサーバにおいてデータコピー作成のための記憶領域を準備する必要がなく、容易にコピーを実行し、コピー中に発生したデータの更新はログによって反映させることができる。このため、同期処理の実行による無共有型データベースシステムの性能低下を抑制することができる。この他、変形例も第１の実施の形態と同様の効果を奏することができる。
【０１０４】
（第２の実施の形態）
本発明に係る無共有型データベースシステム、その同期方法、同期装置、データベースサーバおよび同期プログラムは、インタークラウドシステムに適用することができる。そこで、第２の実施の形態として、インタークラウドシステムにおける本発明の適用例を説明する。
【０１０５】
図１１は、第２の実施の形態に係るインタークラウドシステム２の構成の一例を示す図である。図１１に示すように、インタークラウドシステム２は、クラウドサービスプロバイダ（ＣＳＰ：Cloud Service Provider）オペレータ端末１０００と、インタークラウドサーバ（ＩＣＳ：Inter-Cloud Server）２０００と、データセンタＤＣ１，ＤＣ２と、クライアント４０００−１，４０００−２，４０００−３と、を備える。ＣＳＰオペレータ端末１０００は、インタークラウドサーバ２０００と接続される。また、インタークラウドサーバ２０００は、データセンタＤＣ１，ＤＣ２と、ネットワーク３０００−１を介して接続される。また、インタークラウドサーバ２０００は、クライアント４０００−１，４０００−２，４０００−３と、ネットワーク３０００−１を介して接続される。また、データセンタＤＣ１，ＤＣ２は、ネットワーク３０００−２を介してクライアント４０００−１，４０００−２，４０００−３と接続される。なお、図１１には二つのデータセンタと、三つのクライアントを示しているが、データセンタおよびクライアントの数は図示する数に限定されない。
【０１０６】
第２の実施の形態に係るインタークラウドサーバ２０００は、データセンタＤＣ１，ＤＣ２のリソースを用いて、仮想マシン（ＶＭ：Virtual Machine）を構築し、構築した仮想マシンを用いたサービスを、クライアント４０００−１，４０００−２，４０００−３に対して提供する。データセンタＤＣ１，ＤＣ２内には、サーバや、データベース等が適宜構築され、また再構築される。インタークラウドサーバ２０００は、データセンタＤＣ１，ＤＣ２等のリソースを管理するため、管理情報データベース（ＤＢ）２１００と、制約条件データベース（ＤＢ）２２００を備える。管理情報データベース２１００には、管理対象であるリソースやデータセンタオペレーションシステム（ＤＣ−ＯＰＳ）等の情報を格納する。また、制約条件データベース２２００には、各クライアント４０００−１，４０００−２，４０００−３について定められた制約条件等を格納する。たとえば、クライアント４０００−１が利用するリソースの性能要件等を格納する。
【０１０７】
第２の実施の形態に係るインタークラウドサーバ２０００は、データセンタＤＣ１，ＤＣ２を用いて、無共有型データベースシステムを構築する。つまり、データセンタＤＣ１内のコンピュータ上にデータベースサーバが仮想的に構築され、コンピュータのローカルディスクが、データベースサーバが占有するデータベースとして機能する。また、仮想的に構築されたデータベースサーバ各々は他のデータベースサーバと記憶領域を共有しない、無共有型（Shared-nothing）の構成である。
【０１０８】
インタークラウドサーバ２０００は、各種のハードウェアを有し、ＯＳやミドルウェアなどの各種プログラムが予めインストールされる。具体的には、インタークラウドサーバ２０００は、詳細については後述するように、インタークラウドサーバ２０００が有する各種のハードウェアにより実行されるプログラムとして、ＩＣＳソフトウェア２００１を実行する。
【０１０９】
なお、ＩＣＳソフトウェア２００１は、第１の実施の形態における同期装置１００の制御部１２０の各部およびデータベースサーバ２００Ａの制御部２２０の各部により実行される処理を実行する。
【０１１０】
［第２の実施の形態に係るインタークラウドサーバ２０００の処理］
インタークラウドサーバ２０００は、ＣＳＰオペレータ端末１０００から送信される、システム構成を変更する指示や、リソースの割当を変更する指示等を受信する。また、インタークラウドサーバ２０００は、ＣＳＰオペレータ端末１０００から、データセンタＤＣ１，ＤＣ２に構築されたデータベースサーバの構成の変更、たとえば新規データベースサーバの追加の指示や、故障したデータベースサーバの記憶領域の更新の指示等を受信する。インタークラウドサーバ２０００は、ＩＣＳソフトウェア２００１を実行することで、新規データベースサーバの追加の処理や故障データベースサーバの記憶領域の更新処理を実行する。
【０１１１】
たとえば、データセンタＤＣ１内のデータベースサーバに故障が生じた場合、データセンタＤＣ２内のデータベースサーバが占有するデータベースのデータコピーを作成する。そして、その後、データセンタＤＣ２内のデータベースサーバに対してクライアント４０００−１〜４０００−３の要求に応じて実行されたトランザクションのログを作成する。作成したデータコピーとログとを、故障したデータセンタＤＣ１内のデータベースサーバに送信する。故障したデータベースサーバは送信されるデータコピーとログとを用いて記憶領域の更新処理を行う。
【０１１２】
このとき、データセンタＤＣ２内のデータベースサーバ（同期元データベースサーバ）は、データコピーを作成して送信した後、ログの作成と送信を継続する。そして、インタークラウドサーバ２０００は、二つのデータベースサーバ間の同期状態が所定の程度に達したか否かを判定して、所定の程度になったと判定すれば、その後、クライアント４０００−１〜４０００−３からの要求のうち、データベースの内容の更新を伴う要求を実行せずに保留する。そして、実行中のトランザクションがなくなれば、再び同期状態を判定し、ログの転送が完了したと判定すれば、同期先データベースサーバと同期元データベースサーバとを切り離して、同期元のデータベースサーバによるログの作成を終了させる。
【０１１３】
インタークラウドサーバ２０００は、新規データベースサーバを追加する場合も同様に処理を実行する。
【０１１４】
［第２の実施の形態の効果］
上記のように、インタークラウドシステムにおいて第１の実施の形態に係る同期方法を実装することで、仮想技術を利用して柔軟にリソース構成を変更しつつ、クライアントに対してシームレスなサービスを提供することができる。
【０１１５】
（第３の実施の形態）
これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されてもよい。以下に、その他の実施例を説明する。
【０１１６】
［ログイン機能］
たとえば、インタークラウドサーバは、アクセス時に、パスワードを要求してもよい。すなわち、システムの使用時に許可されたオペレータのみがログインできるように、ログイン時にユーザ名とパスワードとを用いて認証処理を実行してもよい。
【０１１７】
［システム構成］
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。たとえば、図１に示す例では、記憶部１１０を同期装置１００の内部に配置したが、記憶部１１０を同期装置１００の外部装置としてネットワーク経由で接続するようにしてもよい。また、図７に示すログ受信部２２２とログ送信部２２３は、実際にはまとめて一つの通信部として実装してもよい。また、記憶部１１０，２１０はそれぞれ、他の情報も記憶するように構成できる。
【０１１９】
［プログラム］
図１２は、無共有型データベースシステムにおける一連の処理を実行するプログラムである同期プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。図１２に例示するように、コンピュータ５０００は、たとえば、メモリ５０１０と、ＣＰＵ（Central  Processing  Unit）５０２０と、ハードディスクドライブ５０８０と、ネットワークインタフェース５０７０とを有する。コンピュータ５０００の各部はバス５１００によって接続される。
【０１２０】
メモリ５０１０は、図１２に例示するように、ＲＯＭ５０１１およびＲＡＭ５０１２を含む。ＲＯＭ５０１１は、たとえば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。
【０１２１】
ここで、図１２に例示するように、ハードディスクドライブ５０８０は、たとえば、ＯＳ５０８１、アプリケーションプログラム５０８２、プログラムモジュール５０８３、プログラムデータ５０８４を記憶する。すなわち、開示の技術に係るリソース管理プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール５０８３として、たとえばハードディスクドライブ５０８０に記憶される。たとえば、制御部１２０および制御部２２０の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール５０８３が、ハードディスクドライブ５０８０に記憶される。
【０１２２】
また、記憶部１１０，２１０に記憶されるデータのように、リソース管理プログラムによる情報処理に用いられるデータは、プログラムデータ５０８４として、たとえばハードディスクドライブ５０８０に記憶される。そして、ＣＰＵ５０２０が、ハードディスクドライブ５０８０に記憶されたプログラムモジュール５０８３やプログラムデータ５０８４を必要に応じてＲＡＭ５０１２に読み出し、各種の手順を実行する。
【０１２３】
なお、リソース管理プログラムに係るプログラムモジュール５０８３やプログラムデータ５０８４は、ハードディスクドライブ５０８０に記憶される場合に限られない。たとえば、プログラムモジュール５０８３やプログラムデータ５０８４は、着脱可能な記憶媒体に記憶されてもよい。この場合、ＣＰＵ５０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、プログラムモジュール５０８３やプログラムデータ５０８４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。この場合、ＣＰＵ５０２０は、ネットワークインタフェース５０７０を介して他のコンピュータにアクセスすることで各種データを読み出す。
【０１２４】
［その他］
なお、本実施例で説明した同期プログラムは、インターネット等のネットワークを介して配布することができる。また、同期プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１２５】
１  無共有型データベースシステム
２  インタークラウドシステム
１００  同期装置
１１０  記憶部
１１１  管理テーブル
１１２  同期状態記憶部
１２０  制御部
１２１  受信部
１２２  送信部
１２３  同期維持部
１２４  同期制御部
２００Ａ，２００Ｂ，２００Ｃ  データベースサーバ（現用系）
２００Ｄ  データベースサーバ（待機系）
２１０  記憶部
２１１  ログ記憶部
２１２  データコピー記憶部
２２０  制御部
２２１  トランザクション処理部
２２２  ログ受信部
２２３  ログ送信部
２２４  更新実行部
３００Ａ，３００Ｂ，３００Ｃ  データベース（現用系）
３００Ｄ  データベース（待機系）
４００−１，４００−２  クライアント
５００  ネットワーク
６００  ネットワーク
７００  オペレータ端末
１０００  ＣＳＰオペレータ端末
２０００  インタークラウドサーバ
２１００  管理情報データベース
２２００  制約条件データベース
３０００−１，３０００−２  ネットワーク
４０００−１，４０００−２，４０００−３  クライアント
５０００  コンピュータ
【図１】
2014016953.tif 000003
【図２】
2014016953.tif 000004
【図３】
2014016953.tif 000005
【図４】
2014016953.tif 000006
【図５】
2014016953.tif 000007
【図６】
2014016953.tif 000008
【図７】
2014016953.tif 000009
【図８】
2014016953.tif 000010
【図９】
2014016953.tif 000011
【図１０】
2014016953.tif 000012
【図１１】
2014016953.tif 000013
【図１２】
2014016953.tif 000014