(57)【要約】【課題】複数のデータベースが対等の関係にある場合に、データの更新処理を的確に行うことが可能なデータベース同期システムを提供する。【解決手段】データベースサーバＡは、情報処理装置からデータの更新要求を受けた場合に、顧客マスターテーブルを更新するとともに更新情報を配信テーブルに登録する。配信テーブル中に未配信のデータがあった場合に、更新情報の他のデータベースサーバＢへの配信情報をデータベースサーバ毎に記録する配信管理テーブルの前記配信情報を未配信と示す情報に変更する。データベースサーバＢは、サーバＡの配信管理テーブルへアクセスし、該配信管理テーブル中のサーバＢの配信情報を取得する。取得した配信情報が未配信を示すものであった場合に、サーバＡの配信テーブルにアクセスし、未配信の更新情報を取得する。取得した更新情報に基づいてサーバＢの顧客マスターテーブルを更新する。【選択図】図９
2008158978.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システムであって、
一のデータベースサーバは、第１のデータベースと、
該第１のデータベースへの更新情報を記録する第２のデータベースと、
前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースと、
クライアント装置からデータの更新要求を受けた場合に、前記第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新手段と、
前記第２のデータベース中に未配信のデータがあった場合に、前記第３のデータベースの配信情報を未配信と示す情報に変更する変更手段と、を備え、
他のデータベースサーバは、前記第１のデータベースと同一のデータを管理する第４のデータベースと、
前記第３のデータベースへアクセスし、該第３のデータベース中の前記他のデータベースサーバの配信情報を取得する第１の取得手段と、
該第１の取得手段で取得した配信情報が未配信を示すものであった場合に、前記第２のデータベースにアクセスし、未配信の更新情報を取得する第２の取得手段と、
該第２の取得手段で取得した更新情報に基づいて前記第４のデータベースを更新する第２の更新手段と、を備える
ことを特徴とするデータベース同期システム。
【請求項２】
前記一のデータベースサーバは、前記第１のデータベースが複数の場合に、該複数の第１のデータベースのそれぞれについての更新情報を記録する複数の前記第２のデータベースを備える、
ことを特徴とする請求項１に記載のデータベース同期システム。
【請求項３】
前記他のデータベースサーバは、前記第４のデータベースの更新情報を記録する第５のデータベースと、
前記第２の取得手段で取得した更新情報が示すレコードと同一のレコードに対しての更新情報が前記第５のデータベースにあった場合に、更新情報の新旧を判断する第１の判断手段と、を備え、
前記第２の更新手段は、前記第１の判断手段で前記第２の取得手段で取得した更新情報が新しいと判断した場合に、該第２の取得手段で取得した更新情報に基づいて前記第４のデータベースを更新する、
ことを特徴とする請求項１又は２に記載のデータベース同期システム。
【請求項４】
前記一のデータベースサーバは、データの更新時刻を指定する指定手段と、
該指定手段による更新時刻の指定があった場合に、自己のサーバ向けの更新情報を記録する第６のデータベースと、
更新情報が示すレコードと同一のレコードに対しての更新情報が前記第６のデータベースにあった場合に、該更新情報の新旧を判断する第２の判断手段と、
該第２の判断手段で更新情報が新しいと判断した場合に、該更新情報に基づいて前記第１のデータベースを更新する第３の更新手段と、を備える
ことを特徴とする請求項１〜３のいずれか一項に記載のデータベース同期システム。
【請求項５】
複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期方法であって、
一のデータベースサーバ側で、クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新ステップと、
前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、を実行し、
他のデータベースサーバ側で、前記第３のデータベースへアクセスし、該第３のデータベース中の前記他のデータベースサーバの配信情報を取得する第１の取得ステップと、
該第１の取得ステップで取得した配信情報が未配信を示すものであった場合に、前記第２のデータベースにアクセスし、未配信の更新情報を取得する第２の取得ステップと、
該第２の取得ステップで取得した更新情報に基づいて前記第１のデータベースと同一のデータを管理する第４のデータベースを更新する第２の更新ステップと、を実行する、
ことを特徴とするデータベース同期方法。
【請求項６】
第１のデータベースと、
該第１のデータベースへの更新情報を記録する第２のデータベースと、
前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースと、
クライアント装置からデータの更新要求を受けた場合に、前記第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新手段と、
前記第２のデータベース中に未配信のデータがあった場合に、前記第３のデータベースの配信情報を未配信と示す情報に変更する変更手段と、
他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得手段と、  該第１の取得手段で取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得手段と、
該第２の取得手段で取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新手段と、を備える
ことを特徴とするデータベースサーバ。
【請求項７】
前記第１のデータベースが複数の場合に、該複数の第１のデータベースのそれぞれについての更新情報を記録する複数の前記第２のデータベースを備える、
ことを特徴とする請求項６に記載のデータベースサーバ。
【請求項８】
前記第２の取得手段で取得した更新情報が示すレコードと同一のレコードに対しての更新情報が前記第２のデータベースにあった場合に、更新情報の新旧を判断する第１の判断手段を備え、
前記第２の更新手段は、前記第１の判断手段で前記第２の取得手段で取得した更新情報が新しいと判断した場合に、該第２の取得手段で取得した更新情報に基づいて前記第１のデータベースを更新する、
ことを特徴とする請求項６又は７に記載のデータベースサーバ。
【請求項９】
データの更新時刻を指定する指定手段と、
該指定手段による更新時刻の指定があった場合に、自己のサーバ向けの更新情報を記録する第６のデータベースと、
更新情報が示すレコードと同一のレコードに対しての更新情報が前記第６のデータベースにあった場合に、該更新情報の新旧を判断する第２の判断手段と、
該第２の判断手段で更新情報が新しいと判断した場合に、該更新情報に基づいて前記第１のデータベースを更新する第３の更新手段と、を備える
ことを特徴とする請求項６〜８のいずれか一項に記載のデータベースサーバ。
【請求項１０】
クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新ステップと、
前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、
他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得ステップと、
該第１の取得ステップで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得ステップと、
該第２の取得ステップで取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新ステップと、を備える
ことを特徴とするデータベースサーバの制御方法。
【請求項１１】
クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新モジュールと、
前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更モジュールと、
他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得モジュールと、
該第１の取得モジュールで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得モジュールと、
該第２の取得モジュールで取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新モジュールと、をコンピュータに実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラムに関する。
【背景技術】
【０００２】
データベースサーバの負荷分散を目的として、複数のデータベースサーバで同じデータを管理、運用するケースが増えている。また、地理的に離れた複数の拠点を有する企業などは、複数の拠点毎にデータベースサーバを配置して、ネットワークにかかる負荷についても軽減するような形で運用することが一般的になっている。
【０００３】
このときに必要となってくるのが、それぞれのデータベースサーバで管理されているデータについての同期を取ることである。アクセスするデータベースサーバによって得られるデータに違いが生じてしまうことがないように、データベースサーバの管理責任者には、各データベース間の同期処理を的確に行うことが求められる。
【０００４】
通常、夜間にバッチ処理等でデータベース間の同期を取る処理が行われ、サーバ間のデータ転送（マスタデータ、トランザクションデータ等）は、ＦＴＰの利用、メッセージキュー（ＭＱ）の利用、又はネットワークファイルシステム（ＵＮＩＸ(登録商標)のＮＦＳなど）の利用によるテキストファイル（固定長、ＣＳＶファイル）での送受信が一般的である。
【０００５】
複数の地理的に離れた拠点間でのデータベースの管理については、例えば特許文献１に開示されているような技術がある。
【特許文献１】特開２００４−１６４４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１で開示されている技術は、各拠点でのデータベースがＭＡＳＴＥＲとＳＬＡＶＥの関係にあり、データの更新がＭＡＳＴＥＲ側のみでＳＬＡＶＥに対してはクライアントからのデータ更新要求が行われない場合には有効である。しかし、各拠点のデータベースが対等の関係でそれぞれのデータベースに対してデータの更新要求が発生するような場合には適用することができない。
【０００７】
そこで、本発明は、複数のデータベースが対等の関係にある場合に、データの更新処理を的確に行うことが可能なデータベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のデータベース同期システムは、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システムであって、  一のデータベースサーバは、第１のデータベースと、該第１のデータベースへの更新情報を記録する第２のデータベースと、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースと、クライアント装置からデータの更新要求を受けた場合に、前記第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新手段と、前記第２のデータベース中に未配信のデータがあった場合に、前記第３のデータベースの配信情報を未配信と示す情報に変更する変更手段と、を備え、他のデータベースサーバは、前記第１のデータベースと同一のデータを管理する第４のデータベースと、前記第３のデータベースへアクセスし、該第３のデータベース中の前記他のデータベースサーバの配信情報を取得する第１の取得手段と、該第１の取得手段で取得した配信情報が未配信を示すものであった場合に、前記第２のデータベースにアクセスし、未配信の更新情報を取得する第２の取得手段と、該第２の取得手段で取得した更新情報に基づいて前記第４のデータベースを更新する第２の更新手段と、を備えることを特徴とする。
【０００９】
本発明のデータベース同期方法は、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期方法であって、一のデータベースサーバ側で、クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新ステップと、前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、を実行し、他のデータベースサーバ側で、前記第３のデータベースへアクセスし、該第３のデータベース中の前記他のデータベースサーバの配信情報を取得する第１の取得ステップと、該第１の取得ステップで取得した配信情報が未配信を示すものであった場合に、前記第２のデータベースにアクセスし、未配信の更新情報を取得する第２の取得ステップと、該第２の取得ステップで取得した更新情報に基づいて前記第１のデータベースと同一のデータを管理する第４のデータベースを更新する第２の更新ステップと、を実行することを特徴とする。
【００１０】
本発明のデータベースサーバは、第１のデータベースと、該第１のデータベースへの更新情報を記録する第２のデータベースと、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースと、クライアント装置からデータの更新要求を受けた場合に、前記第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新手段と、前記第２のデータベース中に未配信のデータがあった場合に、前記第３のデータベースの配信情報を未配信と示す情報に変更する変更手段と、他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得手段と、該第１の取得手段で取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得手段と、該第２の取得手段で取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新手段と、を備えることを特徴とする。
【００１１】
本発明のデータベースサーバの制御方法は、クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新ステップと、前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得ステップと、該第１の取得ステップで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得ステップと、該第２の取得ステップで取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新ステップと、を備えることを特徴とする。
【００１２】
本発明のプログラムは、クライアント装置からデータの更新要求を受けた場合に、第１のデータベースを更新するとともに更新情報を第２のデータベースに登録する第１の更新モジュールと、前記第２のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第３のデータベースの前記配信情報を未配信と示す情報に変更する変更モジュールと、他のデータベースサーバへアクセスし、自己の配信情報を取得する第１の取得モジュールと、該第１の取得モジュールで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第２の取得モジュールと、該第２の取得モジュールで取得した更新情報に基づいて前記第１のデータベースを更新する第２の更新モジュールと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、対等の関係にある複数のデータベースの同期処理を的確に行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図を参照して説明する。
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態であるデータベース同期システムのシステム構成例を示す図である。
【００１６】
図１において、拠点Ａ１００、拠点Ｂ１１０、拠点Ｃ１２０は地理的に異なった位置にあり、拠点Ａ１００にデータベースサーバＡ１０１、拠点Ｂ１１０にデータベースサーバＢ１１１、拠点Ｃ１２０にデータベースＣ１２１がそれぞれ配置されている。データベースサーバＡ１０１、データベースサーバＢ１１１、データベースサーバＣ１２１は、広域回線１０５を介して互いに接続されている。
【００１７】
拠点Ａ１００のデータベースサーバＡ１０１には、ＬＡＮ等のネットワーク１０３を介して情報処理装置１０２−１，１０２−２（以下、情報処理装置１０２という）が接続されている。拠点Ｂ１１０のデータベースサーバＢ１１１には、ＬＡＮ等のネットワーク１１３を介して情報処理装置１１２−１，１１２−２（以下、情報処理装置１１２という）が接続されている。拠点Ｃ１２０のデータベースサーバＢ１２１には、ＬＡＮ等のネットワーク１２３を介して情報処理装置１２２−１，１２２−２（以下、情報処理装置１２２という）が接続されている。
【００１８】
データベースサーバ１０１，１１１，１２１は、それぞれ顧客マスタや売り上げマスタなどのデータベースのテーブル（以下、単に、「テーブル」という）の他、それぞれのテーブルへの更新情報を蓄積するためにテーブル毎に用意された配信テーブル（図７参照）を備えている。また、データベースサーバ１０１，１１１，１２１は、それぞれの配信テーブルに登録されているレコード（更新情報）が他のデータベースサーバに対して配信されたか否か（同期処理が行われたか否か）を管理するための配信管理テーブル（図７参照）を備えている。
【００１９】
情報処理装置１０２，１１２，１２２は、それぞれ同一の拠点に設置されているデータベースサーバにアクセスし、必要なデータを取得するとともに、データベースサーバが管理しているテーブルへのデータの新規登録、データの変更、データの削除といった更新指示をユーザの指示に基づいて行う。
【００２０】
各拠点に設置されているデータベースサーバでは同一のテーブルが管理されており、それぞれのテーブルへの更新情報を他拠点のデータベースサーバに対して略リアルタイムで配信する。これにより、各拠点のデータベースサーバが管理している、例えば顧客マスタや売り上げマスタ等のテーブル中のレコードが同一になるよう同期を取っている。実際には、一定時間毎に未配信のデータがあればそのデータを配信することになるが、その時間間隔を短くすることで略リアルタイムに配信することを可能にしている。
【００２１】
次に、図２を参照して、データベースサーバ１０１、１１１及び１２１のハードウェア構成について説明する。図２は、図１のデータベースサーバ１０１，１１１，１２１のハードウェア構成の一例を示す図である。
【００２２】
データベースサーバ１０１，１１１，１２１は、図２に示すように、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、記録媒体ドライブ２０５、キーボード２０６、ポインティングデバイス２０７、ネットワークＩ／Ｆ２０８、ビデオＩ／Ｆ２０９、ディスプレイ装置２１０、および外部機器Ｉ／Ｆ２１１を備える。これらのハードウェアは、システムバス２１２を介して互いに接続されている。
【００２３】
ＣＰＵ２０１は、ＲＡＭ２０２やＲＯＭ２０３に格納されているプログラムやデータを用いて、サーバ全体の制御を行うとともに、本サーバが行う後述する図３〜図６の各処理を実行する。
【００２４】
ＲＡＭ２０２は、ＨＤＤ（ハードディスクドライブ）２０４からロードされたプログラムやデータを一時的に記憶するためのエリアを有するとともに、ＣＰＵ２０１が各種処理を行うために使用するワークエリアを有する。
【００２５】
ＲＯＭ２０３は、コンピュータのブートプログラムやＢＩＯＳ等の各種プログラムを記憶している。ＨＤＤ２０４は、ＯＳ（オペレーティングシステム）や、データベースサーバ１０１，１１１，１２１が行う各処理をＣＰＵ２０１に実行させるためのプログラムやデータ等の各種データを保存している。これらの各種データは、必要に応じてＣＰＵ２０１の制御によりＲＡＭ２０２に読み出され実行されることになる。
【００２６】
記録媒体ドライブ２０５は、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷ、ＤＶＤ―ＲＯＭ、ＤＶＤ−Ｒ／ＲＷ、ＤＶＤ−ＲＡＭ等のドライブとして機能する。
【００２７】
キーボード２０６およびポインティングデバイス２０７は、各種の指示をＣＰＵ２０１に対して入力することができる入力部として機能する。
【００２８】
ネットワークＩ／Ｆ２０８は、ネットワークに接続するためのものであり、このネットワークＩ／Ｆ２１０を介してネットワーク上の他の機器との間でデータ通信を行うことが可能である。
【００２９】
ビデオＩ／Ｆ（インタフェース）２０９には、ディスプレイ装置２１０が接続される。ディスプレイ装置２１０はＣＲＴや液晶表示器等で構成されており、ビデオＩ／Ｆ２０９を介して送られた信号に基づいて、文字や画像等の情報を表示画面上に表示する機能を有する。
【００３０】
外部機器Ｉ／Ｆ２１１は、周辺機器を接続するためのポートであり、この外部機器Ｉ／Ｆ２１１を介して周辺機器との間でデータの送受信を行うことが可能である。外部機器Ｉ／Ｆ２１１は、ＳＣＳＩ、ＵＳＢ、ＩＥＥＥ１３９４等の各種インタフェースで構成することができ、通常、複数の外部機器Ｉ／Ｆを有する。なお、周辺機器との接続形態は有線／無線を問わない。
【００３１】
ここで、本実施の形態の処理を詳述する前に、データベースリンクについて簡単に触れておく。本実施の形態におけるデータベースサーバでそれぞれ管理している配信テーブルや配信管理テーブル（図７、図９、図１０参照）は、それぞれデータベースリンクの設定がされている。データベースリンクは、例えば米国オラクル社が提供しているデータベースで実現されているものである。
【００３２】
図８は、データベースリンクを説明するための図である。
【００３３】
図８において、データベースサーバ１及びデータベースサーバ２は、それぞれテーブルＡ、テーブルＢ、テーブルＣ、及びテーブルＤを有している。
【００３４】
データベースサーバ２のテーブルＡ、テーブルＣは、それぞれデータベースサーバ１のテーブルＡ、テーブルＣとのデータベースリンクが設定されている。又同様に、データベースサーバ１のテーブルＢ、テーブルＤは、それぞれデータベースサーバ１のテーブルＢ、テーブルＤとのデータベースリンクが設定されている。
【００３５】
データベースサーバ１のテーブルＢ及びテーブルＤ、並びにデータベースサーバ２のテーブルＡ及びテーブルＣは実際には実体がなく、そのテーブルへのアクセスが行われた場合にはリンク設定されている他のデータベースが管理しているテーブルに対してアクセス制御するようになっている。
【００３６】
ここで、データベースサーバ２のテーブルＡに対しての情報処理装置からアクセスする場合を例に挙げて説明する。
【００３７】
まず、情報処理装置からは例えばＳＱＬなどデータベース操作言語によってデータベースサーバ２上のテーブルＡへの操作要求がなされる（図中（Ｘ））。その操作要求を受け取ったデータベースサーバ２のＣＰＵは、自サーバのテーブルＡとデータベースリンク設定がされているデータベースサーバ１に対して操作要求を転送することになる。
【００３８】
このような手法で、情報処理装置からデータベースサーバ２のテーブルＡの操作命令をすることで、実際にはデータベースサーバ１のテーブルＡに対して操作処理が行われることになる。以上がデータベースリンクの概要である。
【００３９】
次に、図７を参照して、各データベースサーバで管理されているテーブルについて説明する。
【００４０】
各データベースサーバは、顧客マスタや売り上げマスタ等のテーブルを管理している。また、それぞれのテーブルについて配信対象のデータベースサーバが設定されている。配信対象のデータベースサーバとは、他拠点のデータベースサーバのうち、当該データベースサーバで管理しているテーブルと同様のテーブルを備えているデータベースサーバであって、当該テーブルの同期を取る必要があるデータベースサーバのことをいう。
【００４１】
それぞれのテーブルには、レコードを一意に識別するための主キーとその他データ項目が設定されているレコードが記録され管理されている。
【００４２】
データベースサーバで管理されているテーブルのうち、配信対象のデータベースサーバが１つでも設定されているテーブルそれぞれについて、配信テーブルが設定されている。
【００４３】
配信テーブルには、その配信テーブルに対応するテーブルの各データ項目のほか、「配信先」項目、「更新方法」項目、「更新時刻」項目、「配信区分」項目等がある。
【００４４】
配信管理テーブルには、対応するテーブルに対して行われた更新処理の履歴情報が管理されることになる。そして、その更新情報を配信するデータベースサーバが複数あった場合にはそれぞれについてレコードを作成することになる。
【００４５】
また、配信管理テーブルには、それぞれの配信テーブルで管理されているレコードについて、配送先、テーブル毎に配信データがある／ないの情報が管理されている。
【００４６】
図１０は、図１のデータベースサーバ１０１，１１１，１２１が顧客マスターテーブルを有し、それらが配信対象テーブルとして相互に設定されている場合の当該顧客マスターテーブルの同期処理に用いられるテーブル構成を示す図である。
【００４７】
図１０に示すように、データベースサーバ１０１，１１１，１２１は、それぞれ顧客マスターテーブルを有している。そして、それぞれ顧客マスタの配信テーブルと、配信管理テーブルとが設定されている。他拠点のデータベースサーバの配信テーブルおよび配信管理テーブルには、上述したデータベースリンク設定によりアクセス可能になっている。各データベースサーバは、他拠点のデータベースサーバにアクセスする場合にはこのデータベースリンクの機能を用いてアクセスすることになる。
【００４８】
図３は、情報処理装置からテーブルの更新（レコードの追加、レコードの変更、レコードの削除等）要求を受けた場合に、データベースサーバ１０１，１１１，１２１のＣＰＵ２０１によって行われるテーブルの更新処理の詳細を示すフローチャート図である。本処理は、それぞれのデータベースサーバのＨＤＤ２０４に格納されているプログラムによる制御に基づいて行われることになる。
【００４９】
まず、データベースサーバのＣＰＵ２０１は、常時、情報処理装置からのテーブルの更新要求を受け付けるために更新要求の待ち状態にある（ステップＳ３０１）。
【００５０】
ＣＰＵ２０１は、情報処理装置からの更新要求を受けたと判断した場合には（ステップＳ３０２でＹＥＳ）、情報処理装置から指定されたデータベースに対して指定された更新処理を行うことになる（ステップＳ３０３）。
【００５１】
その後、ＣＰＵ２０１は、変更指定されたデータベースが他の拠点のデータベースサーバでも管理されているかを判断する。他の拠点のデータベースサーバでも管理されているデータベースであれば、他拠点への配信対象のデータベースと判断することになる（ステップＳ３０４）。
【００５２】
他拠点への配信対象のデータベースに対しての更新処理が行われたと判断した場合には（ステップＳ３０４でＹＥＳ）、当該データベースの配信テーブルに更新情報を追加する（ステップＳ３０５）。そして、更新情報として追加したレコードの「配信区分」を「未配信」と設定する（ステップＳ３０６）。
【００５３】
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで（Ｓ３０７でＹＥＳと判断するまで）行うことになる。
【００５４】
以上が情報処理装置からデータベースの更新（追加、変更、削除）要求を受けた場合に、データベースサーバ１０１，１１１，１２１のＣＰＵ２０１によって行われるデータベースの更新処理である。
【００５５】
図４は、データベースサーバ１０１，１１１，１２１のＣＰＵ２０１によって行われる配信管理テーブルの更新処理の一例を示すフローチャート図である。本処理はそれぞれのデータベースサーバのＨＤＤ２０４に格納されているプログラムによる制御に基づいて行われることになる。
【００５６】
まず、ＣＰＵ２０１は前回の本処理を行ってから所定の時間が経過したか判断する（ステップＳ４０１）。所定時間経過していないと判断した場合には（ステップＳ４０１でＮＯ）、所定時間が経過するまで待つこととなる（ステップＳ４０１の判断処理を繰り返す）。
【００５７】
所定時間が経過したと判断した場合には（ステップＳ４０１でＹＥＳ）、データベースサーバで管理している他拠点のデータベースサーバに対しての配信テーブルのそれぞれをチェックする（ステップＳ４０２）。そして、ＣＰＵ２０１は、「未配信」データを有する配信テーブルがあった場合は（ステップＳ４０３でＹＥＳ）、未配信となっているデータの配信先を確認し（ステップＳ４０４）、配信管理テーブル中の当該宛先に対しての当該配信テーブルに関連するデータベースの配信管理情報を示すレコードの「配信管理区分」情報を「未配信あり」とする（ステップＳ４０５）。「配信管理区分」が「未配信あり」となっているレコードは、当該レコードで配信管理をしている配信テーブルには他拠点のデータベースサーバに未だ配信されていない配信すべきデータ（「配信区分」が「未配信」となっているデータ）が存在していることを示している。配信テーブルに「配信区分」が「未配信」となっているレコードがない（全ての配信すべきデータの配信（同期処理）を終えている）場合には、当該配信テーブルの配信管理をしているレコードの配信管理区分は「未配信なし」となる。
【００５８】
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで（Ｓ４０６でＹＥＳと判断するまで）行うことになる。
【００５９】
以上が配信管理テーブルの更新処理である。
【００６０】
図５は、データベースサーバ１０１，１１１，１２１のＣＰＵ２０１によって行われるデータ更新処理のフローチャート図である。ここでの処理は、自サーバで管理しているデータベースに対して、他拠点に設置されているデータベースサーバで変更されたデータと同様の変更処理を行い同期を取る処理について説明する。
【００６１】
ここでは、データベースサーバ１０１で管理されているテーブル（例えば顧客マスタテーブル）のあるレコードデータが変更され、その変更をデータベースサーバ１１１で管理しているテーブル（例えば顧客マスタテーブル）に対して反映させることにより同期を取る処理について説明する。
【００６２】
まず、データベースサーバ１１１のＣＰＵ２０１は、前回の本処理を行ってから所定の時間が経過したかを判断する（ステップＳ５０１）。経過したと判断した場合には（ステップＳ６０１でＹＥＳ）、他のデータベースサーバ（この場合はデータベースサーバ１０１と１２１）で管理されている自サーバ向けの配信管理テーブルのチェックを行う（ステップＳ５０２）。
【００６３】
そして、自サーバ向けの配信管理テーブル中のレコードを参照して、「未配信あり」となっているレコードがあるかを確認することで、「未配信」のレコードを有する配信テーブルがあるかを確認する（ステップＳ５０３）。「未配信」データを有する配信テーブルがあると判断した場合には（ステップＳ５０３でＹＥＳ）、未配信データを有する他拠点のデータベースサーバ（この場合はデータベースサーバ１０１）が管理する配信テーブルにアクセスする（ステップＳ５０４）。そして、当該配信テーブル中のレコードから、自サーバ（データベースサーバ１１１）向けで且つ配信区分が「未配信」のレコードのデータを当該配信テーブルから取得する（１レコードずつ）（ステップＳ５０５）。
【００６４】
そして、自サーバ（データベースサーバ１１１）の当該テーブルに対応する配信テーブル中にステップＳ５０５で取得したレコードと同一のレコードに対する更新情報で、更新時刻情報が新しいものがあるかをチェックする（ステップＳ５０６）。更新時刻が新しいものがあった場合には（ステップＳ５０６でＹＥＳ）、ステップＳ５０５で取得したレコードの配信区分を「配信済み」に変更する指示を、配信管理テーブルを管理しているデータベースサーバ（データベースサーバ１０１）に対して行い（ステップＳ５１４）、ステップＳ５１１に移行する。
【００６５】
ステップＳ５０６でＮＯと判断した場合には、ステップＳ５０５で取得したレコードの配信区分を「配信中」に変更する指示を、配信管理テーブルを管理しているデータベースサーバ（データベースサーバ１０１）に対して行う（ステップＳ５０７）。
【００６６】
次に、ステップＳ５０８では、データベースサーバ１１１のＣＰＵ２０１は、ステップＳ５０５で取得したデータ（具体的には更新情報データ及び更新内容データ）に基づいて、自サーバ（データベースサーバ１１１）で管理している該当テーブルの更新処理を行う。そして、更新処理に成功した場合には（ステップＳ５０９でＹＥＳ）、ステップＳ５０４からステップＳ５０９までの処理をステップＳ５１１でＮＯと判断するまで行うこととなる。
【００６７】
そして、全ての未配信データについての更新処理が終了したら（ステップＳ５１１でＮＯと判断）、データベースサーバ１０１で管理している配信テーブルで管理しているレコードのうち、配信先がデータベースサーバ１１１で配信区分が「配信中」になっているレコードの配信区分を「配信済み」に変更するようデータベースサーバ１０１に指示を行う（ステップＳ５１２）。
【００６８】
もし、ステップＳ５０９でステップＳ５０８の処理が失敗したと判断した場合には(ステップＳ５０９でＮＯ)、それまでに本処理で行ったデータベースのテーブルに対しての変更処理をキャンセルして全て元の状態に戻すことになる（ステップＳ５１０）。
【００６９】
以上の処理を、データベースサーバを操作するユーザの入力部を介した本処理を終了するという指示を受ける（ステップＳ５１３でＹＥＳと判断する）まで継続することになる。
【００７０】
なお、本処理の説明では、一定時間間隔で他のデータベースサーバで管理している配信管理テーブルに対してアクセスするようにしているが、例えば、情報処理装置からデータベースサーバ中のテーブルで管理しているデータに対する参照要求があった場合、更新要求があったタイミングで本処理を実行することも勿論可能である。
【００７１】
図６は、データベースサーバ１０１，１１１，１２１のＣＰＵ２０１によって行われる配信テーブル中のレコードの削除処理の一例を示すフローチャート図である。この処理は、通常夜間バッチ処理等で行われることになる。
【００７２】
まず、データベースサーバのＣＰＵ２０１は、配信テーブル中のレコードデータの削除を行うタイミングになったかどうかを判断する（ステップＳ６０１）。
【００７３】
データ削除を行うタイミングになったと判断した場合には（ステップＳ６０１でＹＥＳ）、自サーバで管理している全ての配信テーブルを確認し、配信区分が「配信済み」となっておりレコードデータがあるかを判断する（ステップＳ６０２）。
【００７４】
配信区分が「配信済み」となっているレコードデータがあると判断した場合には（ステップＳ６０２でＹＥＳ）、「配信済み」のレコードをそれぞれの配信管理テーブルから削除する（ステップＳ６０３）。
【００７５】
以上の処理を、データベースサーバを操作するユーザによる入力部を介した本処理を終了するという指示を受ける（ステップＳ６０４でＹＥＳと判断する）まで継続することになる。
【００７６】
以上が配信済みレコードの削除処理である。
【００７７】
最後に、図９を参照して、本実施の形態のデータ更新処理および同期処理について簡単に説明する。ここでは、データベースサーバＡが有する顧客マスターテーブルに対して更新処理がなされた場合の処理を説明する。この図では、この処理に必要なテーブルのみを記載している。
【００７８】
まず、更新データの配信元となるデータベースサーバＡは、情報処理装置から顧客マスタの更新要求を受けた場合には、当該更新要求に従って顧客マスタのレコードを更新するとともに、その変更内容を配信テーブルに対しても登録する。その際には、配信テーブルには配信先のデータベースサーバのデータ、更新方法データ、及び配信区分（未配信／配信済み  初期値は未配信）が登録される。
【００７９】
そして、定期的に配信テーブルを監視して、顧客マスタ配信テーブルに未配信のレコードがあった場合には、配信管理テーブルで管理している当該配信先に対する顧客マスタの配信管理レコードを「未配信ありに」、未配信のレコードがなかった場合には「配信済み」に設定する。また、定期的に配信テーブル中の配信済みのレコードを削除する処理を行う。
【００８０】
一方、配信先であるデータベースサーバＢでは、定期的にデータベースサーバＡで管理している配信管理テーブルにアクセスし、データベースサーバＢ向けの顧客マスタの配信管理レコードが「未配信」であるかをチェックする。「未配信」であった場合には、データベースサーバＡが管理している配信テーブルにアクセスし、未配信レコードを取得し、そのレコードで示されている更新をデータベースサーバＢ自体が管理している顧客管理テーブルに反映させる。そして、反映が終了したらデータベースサーバＡが管理している配信テーブルの未配信データを配信済みに変更する。
【００８１】
この処理を行うことで、データベースサーバＡとデータベースサーバＢとのそれぞれで管理されている顧客マスタの同期処理が行われることになる。
【００８２】
上記のような構成を採ることにより、対等の関係にある複数のデータベースの同期処理を的確に行うことが可能となる。また、１つの拠点に対してアクセスが集中しないため、データベースサーバおよびネットワークの負荷を軽減することができる。
【００８３】
［第２の実施の形態］
次に、図１１および図１２を参照して、本発明の第２の実施の形態を説明する。
【００８４】
本実施の形態では、データベースの更新時刻の指定を行い、その時刻に達した際にデータベースの更新処理を行うデータベースの同期処理について説明する。本実施の形態においては、各データベースサーバは配信テーブル及び配信管理テーブルを他のデータベースサーバ向けのものだけではなく、自データベースサーバ向けのものも有している。
【００８５】
まず、図１１を参照して、本実施形態におけるデータの登録処理の詳細について説明する。
【００８６】
図１１は、データベースサーバのＣＰＵ２０１によって行われるデータ登録処理のフローチャート図である。本処理は既に説明した図３の処理と類似するので、同様の処理については同一の符号を付与している。
【００８７】
まず、図３のステップＳ３０１、ステップＳ３０２の処理と同様の処理を行う。ステップＳ３０２でＹＥＳと判断した場合には、ＣＰＵ２０１はデータ更新の時間が指定されているかを判断する（ステップＳ１１０１）。本実施の形態では、データを更新する時刻を指定することが可能で、各データベースサーバは当該時刻に達した場合にデータの更新処理を行うことになる。データの更新時刻が設定されていない場合や、過去の時刻が設定された場合には、更新要求があると、直ちにデータベースの更新処理を行うことになる。
【００８８】
ステップＳ１１０１でＮＯと判断した場合には、図３の処理と同様に、指定されたテーブルに対してユーザからの要求どおりの更新処理を行う（ステップＳ３０３）。
【００８９】
ステップＳ１１０１でＹＥＳと判断した場合には、ＣＰＵ２０１は自サーバ向けの配信テーブルに更新情報を示すレコードを追加する（ステップＳ１１０２）。その際には、更新の指定時刻も合わせて登録されることになる。
【００９０】
ステップＳ３０３若しくはステップＳ１１０２の処理が終了した場合には、図３での処理と同様に、ステップＳ３０４からステップＳ３０６の処理を行う。なお、ステップＳ３０５で追加されるレコードについては、更新時刻の指定があった場合には、他のデータベースサーバへの配信テーブルにも勿論その時刻を設定することになる。
【００９１】
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで（Ｓ３０７でＹＥＳと判断するまで）行うことになる。
【００９２】
なお、上記の説明では、更新時刻を全データベースサーバで同じ時間にすることを前提にしているが、各データベースサーバの更新時刻を異ならせても勿論かまわない。その際には、それぞれのデータベースサーバにおける更新時刻をユーザの入力部を介した時刻設定命令等に基づいて設定することになる。更新時刻を異ならせる構成をとることで、例えば人事情報など、データの内容の実際の更新時刻前にその更新内容が必要となる一部の部署（人事部等）のみがアクセスできるデータベースを用意しておき、実際の更新時刻よりも先にそのデータベースの更新のみを行い、その後人事異動が行われる時刻（実際の更新時刻）に全社向けのデータベースを更新することにより同期を取るなどということも可能になる。
【００９３】
次に、図１２を参照して、本実施の形態におけるデータの更新処理について説明する。
【００９４】
図１２は、データベースサーバのＣＰＵ２０１によって行われるデータの更新処理のフローチャート図である。本処理は既に説明した図５の処理と類似するので、同様の処理については同一の符号を付与している。
【００９５】
まず、ＣＰＵ２０１は、図５のステップＳ５０１からＳ５０５の処理と同様の処理を行う。
【００９６】
そして、ステップＳ５０５で取得したレコードの更新時刻が未来の時刻かどうかを判断する（ステップＳ１２０１）。未来の時刻であると判断した場合には（ステップＳ１２０１でＹＥＳ）、未だ更新時刻に達していないのでステップＳ５１１に処理を進める。
【００９７】
ステップＳ１２０１でＮＯと判断した場合には、自サーバの配信テーブル（他のデータベースサーバ及び自データベースサーバ向け）をチェックして、ステップＳ５０５で取得したレコードの更新時刻よりも新しい、同一のレコードに対する更新情報のレコードがあるかをチェックする（ステップＳ１２０２）。この際には、更新時刻が新しくても未来の時刻のものについては未だ更新時刻に達していないので比較の対象とはしない。
【００９８】
そして、ステップＳ１２０２でＹＥＳと判断した場合には図５のステップＳ５０６でＹＥＳと判断した場合と、ＮＯと判断した場合には図５のステップＳ５０６でＮＯと判断した場合と同様の処理を行うことになる。
【００９９】
上記のような構成を採ることにより、レコードの更新時刻に達していない更新情報にもとづくテーブルの修正が行われることがない。よって、指定された時刻に達した場合に更新処理を行うことが可能になる。
【０１００】
なお、本発明は、上記実施の形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【０１０１】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【０１０２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０３】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１０４】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０５】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１の実施の形態であるデータベース同期システムのシステム構成例を示す図である。
【図２】データベースサーバのハードウェア構成の一例を示すブロック図である。
【図３】情報処理装置からテーブルの更新要求を受けた場合に、データベースサーバのＣＰＵによって行われるテーブルの更新処理の一例を示すフローチャート図である。
【図４】データベースサーバのＣＰＵによって行われる配信管理テーブルの更新処理の一例を示すフローチャート図である。
【図５】データベースサーバのＣＰＵによって行われるデータ更新処理の一例を示すフローチャート図である。
【図６】データベースサーバのＣＰＵによって行われる配信テーブル中のレコードの削除処理の一例を示すフローチャート図である。
【図７】各データベースサーバで管理されているテーブルの一例を示す図である。
【図８】データベースリンクを説明するための図である。
【図９】データ更新処理および同期処理について説明するための図である。
【図１０】データベースサーバが顧客マスターテーブルを有し、それらが配信対象テーブルとして相互に設定されている場合の当該顧客マスターテーブルの同期処理に用いられるテーブル構成を示す図である。
【図１１】本発明の第２の実施の形態において、データベースサーバのＣＰＵによって行われるデータ登録処理の一例を示すフローチャート図である。
【図１２】本発明の第２の実施の形態において、データベースサーバのＣＰＵによって行われるデータの更新処理の一例を示すフローチャート図である。
【符号の説明】
【０１０７】
１００，１１０，１２０  拠点
１０１，１１１，１２１  データベースサーバ
１０２，１１２，１２２  情報処理装置
１０３，１１３，１２３  ネットワーク
１０５  広域回線
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  ＨＤＤ
２０５  記録媒体ドライブ
２０６  キーボード
２０７  ポインティングデバイス
２０８  ネットワークＩ／Ｆ
２０９  ビデオＩ／Ｆ
２１０  ディスプレイ装置
２１１  外部機器Ｉ／Ｆ
２１２  システムバス
【図１】
2008158978.tif 000003
【図２】
2008158978.tif 000004
【図３】
2008158978.tif 000005
【図４】
2008158978.tif 000006
【図５】
2008158978.tif 000007
【図６】
2008158978.tif 000008
【図７】
2008158978.tif 000009
【図８】
2008158978.tif 000010
【図９】
2008158978.tif 000011
【図１０】
2008158978.tif 000012
【図１１】
2008158978.tif 000013
【図１２】
2008158978.tif 000014