JP2008158978A - データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム - Google Patents

データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム Download PDF

Info

Publication number
JP2008158978A
JP2008158978A JP2006350072A JP2006350072A JP2008158978A JP 2008158978 A JP2008158978 A JP 2008158978A JP 2006350072 A JP2006350072 A JP 2006350072A JP 2006350072 A JP2006350072 A JP 2006350072A JP 2008158978 A JP2008158978 A JP 2008158978A
Authority
JP
Japan
Prior art keywords
database
update
information
server
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006350072A
Other languages
English (en)
Inventor
Kazuhiko Iwamoto
和彦 岩本
Katsukazu Matsuura
克和 松浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon IT Solutions Inc filed Critical Canon IT Solutions Inc
Priority to JP2006350072A priority Critical patent/JP2008158978A/ja
Publication of JP2008158978A publication Critical patent/JP2008158978A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のデータベースが対等の関係にある場合に、データの更新処理を的確に行うことが可能なデータベース同期システムを提供する。
【解決手段】データベースサーバAは、情報処理装置からデータの更新要求を受けた場合に、顧客マスターテーブルを更新するとともに更新情報を配信テーブルに登録する。配信テーブル中に未配信のデータがあった場合に、更新情報の他のデータベースサーバBへの配信情報をデータベースサーバ毎に記録する配信管理テーブルの前記配信情報を未配信と示す情報に変更する。データベースサーバBは、サーバAの配信管理テーブルへアクセスし、該配信管理テーブル中のサーバBの配信情報を取得する。取得した配信情報が未配信を示すものであった場合に、サーバAの配信テーブルにアクセスし、未配信の更新情報を取得する。取得した更新情報に基づいてサーバBの顧客マスターテーブルを更新する。
【選択図】図9

Description

本発明は、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラムに関する。
データベースサーバの負荷分散を目的として、複数のデータベースサーバで同じデータを管理、運用するケースが増えている。また、地理的に離れた複数の拠点を有する企業などは、複数の拠点毎にデータベースサーバを配置して、ネットワークにかかる負荷についても軽減するような形で運用することが一般的になっている。
このときに必要となってくるのが、それぞれのデータベースサーバで管理されているデータについての同期を取ることである。アクセスするデータベースサーバによって得られるデータに違いが生じてしまうことがないように、データベースサーバの管理責任者には、各データベース間の同期処理を的確に行うことが求められる。
通常、夜間にバッチ処理等でデータベース間の同期を取る処理が行われ、サーバ間のデータ転送(マスタデータ、トランザクションデータ等)は、FTPの利用、メッセージキュー(MQ)の利用、又はネットワークファイルシステム(UNIX(登録商標)のNFSなど)の利用によるテキストファイル(固定長、CSVファイル)での送受信が一般的である。
複数の地理的に離れた拠点間でのデータベースの管理については、例えば特許文献1に開示されているような技術がある。
特開2004−164401号公報
上記特許文献1で開示されている技術は、各拠点でのデータベースがMASTERとSLAVEの関係にあり、データの更新がMASTER側のみでSLAVEに対してはクライアントからのデータ更新要求が行われない場合には有効である。しかし、各拠点のデータベースが対等の関係でそれぞれのデータベースに対してデータの更新要求が発生するような場合には適用することができない。
そこで、本発明は、複数のデータベースが対等の関係にある場合に、データの更新処理を的確に行うことが可能なデータベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラムを提供することを目的とする。
上記目的を達成するために、本発明のデータベース同期システムは、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システムであって、 一のデータベースサーバは、第1のデータベースと、該第1のデータベースへの更新情報を記録する第2のデータベースと、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースと、クライアント装置からデータの更新要求を受けた場合に、前記第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新手段と、前記第2のデータベース中に未配信のデータがあった場合に、前記第3のデータベースの配信情報を未配信と示す情報に変更する変更手段と、を備え、他のデータベースサーバは、前記第1のデータベースと同一のデータを管理する第4のデータベースと、前記第3のデータベースへアクセスし、該第3のデータベース中の前記他のデータベースサーバの配信情報を取得する第1の取得手段と、該第1の取得手段で取得した配信情報が未配信を示すものであった場合に、前記第2のデータベースにアクセスし、未配信の更新情報を取得する第2の取得手段と、該第2の取得手段で取得した更新情報に基づいて前記第4のデータベースを更新する第2の更新手段と、を備えることを特徴とする。
本発明のデータベース同期方法は、複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期方法であって、一のデータベースサーバ側で、クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新ステップと、前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、を実行し、他のデータベースサーバ側で、前記第3のデータベースへアクセスし、該第3のデータベース中の前記他のデータベースサーバの配信情報を取得する第1の取得ステップと、該第1の取得ステップで取得した配信情報が未配信を示すものであった場合に、前記第2のデータベースにアクセスし、未配信の更新情報を取得する第2の取得ステップと、該第2の取得ステップで取得した更新情報に基づいて前記第1のデータベースと同一のデータを管理する第4のデータベースを更新する第2の更新ステップと、を実行することを特徴とする。
本発明のデータベースサーバは、第1のデータベースと、該第1のデータベースへの更新情報を記録する第2のデータベースと、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースと、クライアント装置からデータの更新要求を受けた場合に、前記第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新手段と、前記第2のデータベース中に未配信のデータがあった場合に、前記第3のデータベースの配信情報を未配信と示す情報に変更する変更手段と、他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得手段と、該第1の取得手段で取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得手段と、該第2の取得手段で取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新手段と、を備えることを特徴とする。
本発明のデータベースサーバの制御方法は、クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新ステップと、前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得ステップと、該第1の取得ステップで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得ステップと、該第2の取得ステップで取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新ステップと、を備えることを特徴とする。
本発明のプログラムは、クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新モジュールと、前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更モジュールと、他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得モジュールと、該第1の取得モジュールで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得モジュールと、該第2の取得モジュールで取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新モジュールと、をコンピュータに実行させることを特徴とする。
本発明によれば、対等の関係にある複数のデータベースの同期処理を的確に行うことが可能となる。
以下、本発明の実施の形態を図を参照して説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態であるデータベース同期システムのシステム構成例を示す図である。
図1において、拠点A100、拠点B110、拠点C120は地理的に異なった位置にあり、拠点A100にデータベースサーバA101、拠点B110にデータベースサーバB111、拠点C120にデータベースC121がそれぞれ配置されている。データベースサーバA101、データベースサーバB111、データベースサーバC121は、広域回線105を介して互いに接続されている。
拠点A100のデータベースサーバA101には、LAN等のネットワーク103を介して情報処理装置102−1,102−2(以下、情報処理装置102という)が接続されている。拠点B110のデータベースサーバB111には、LAN等のネットワーク113を介して情報処理装置112−1,112−2(以下、情報処理装置112という)が接続されている。拠点C120のデータベースサーバB121には、LAN等のネットワーク123を介して情報処理装置122−1,122−2(以下、情報処理装置122という)が接続されている。
データベースサーバ101,111,121は、それぞれ顧客マスタや売り上げマスタなどのデータベースのテーブル(以下、単に、「テーブル」という)の他、それぞれのテーブルへの更新情報を蓄積するためにテーブル毎に用意された配信テーブル(図7参照)を備えている。また、データベースサーバ101,111,121は、それぞれの配信テーブルに登録されているレコード(更新情報)が他のデータベースサーバに対して配信されたか否か(同期処理が行われたか否か)を管理するための配信管理テーブル(図7参照)を備えている。
情報処理装置102,112,122は、それぞれ同一の拠点に設置されているデータベースサーバにアクセスし、必要なデータを取得するとともに、データベースサーバが管理しているテーブルへのデータの新規登録、データの変更、データの削除といった更新指示をユーザの指示に基づいて行う。
各拠点に設置されているデータベースサーバでは同一のテーブルが管理されており、それぞれのテーブルへの更新情報を他拠点のデータベースサーバに対して略リアルタイムで配信する。これにより、各拠点のデータベースサーバが管理している、例えば顧客マスタや売り上げマスタ等のテーブル中のレコードが同一になるよう同期を取っている。実際には、一定時間毎に未配信のデータがあればそのデータを配信することになるが、その時間間隔を短くすることで略リアルタイムに配信することを可能にしている。
次に、図2を参照して、データベースサーバ101、111及び121のハードウェア構成について説明する。図2は、図1のデータベースサーバ101,111,121のハードウェア構成の一例を示す図である。
データベースサーバ101,111,121は、図2に示すように、CPU201、RAM202、ROM203、HDD204、記録媒体ドライブ205、キーボード206、ポインティングデバイス207、ネットワークI/F208、ビデオI/F209、ディスプレイ装置210、および外部機器I/F211を備える。これらのハードウェアは、システムバス212を介して互いに接続されている。
CPU201は、RAM202やROM203に格納されているプログラムやデータを用いて、サーバ全体の制御を行うとともに、本サーバが行う後述する図3〜図6の各処理を実行する。
RAM202は、HDD(ハードディスクドライブ)204からロードされたプログラムやデータを一時的に記憶するためのエリアを有するとともに、CPU201が各種処理を行うために使用するワークエリアを有する。
ROM203は、コンピュータのブートプログラムやBIOS等の各種プログラムを記憶している。HDD204は、OS(オペレーティングシステム)や、データベースサーバ101,111,121が行う各処理をCPU201に実行させるためのプログラムやデータ等の各種データを保存している。これらの各種データは、必要に応じてCPU201の制御によりRAM202に読み出され実行されることになる。
記録媒体ドライブ205は、CD−ROM、CD−R/RW、DVD―ROM、DVD−R/RW、DVD−RAM等のドライブとして機能する。
キーボード206およびポインティングデバイス207は、各種の指示をCPU201に対して入力することができる入力部として機能する。
ネットワークI/F208は、ネットワークに接続するためのものであり、このネットワークI/F210を介してネットワーク上の他の機器との間でデータ通信を行うことが可能である。
ビデオI/F(インタフェース)209には、ディスプレイ装置210が接続される。ディスプレイ装置210はCRTや液晶表示器等で構成されており、ビデオI/F209を介して送られた信号に基づいて、文字や画像等の情報を表示画面上に表示する機能を有する。
外部機器I/F211は、周辺機器を接続するためのポートであり、この外部機器I/F211を介して周辺機器との間でデータの送受信を行うことが可能である。外部機器I/F211は、SCSI、USB、IEEE1394等の各種インタフェースで構成することができ、通常、複数の外部機器I/Fを有する。なお、周辺機器との接続形態は有線/無線を問わない。
ここで、本実施の形態の処理を詳述する前に、データベースリンクについて簡単に触れておく。本実施の形態におけるデータベースサーバでそれぞれ管理している配信テーブルや配信管理テーブル(図7、図9、図10参照)は、それぞれデータベースリンクの設定がされている。データベースリンクは、例えば米国オラクル社が提供しているデータベースで実現されているものである。
図8は、データベースリンクを説明するための図である。
図8において、データベースサーバ1及びデータベースサーバ2は、それぞれテーブルA、テーブルB、テーブルC、及びテーブルDを有している。
データベースサーバ2のテーブルA、テーブルCは、それぞれデータベースサーバ1のテーブルA、テーブルCとのデータベースリンクが設定されている。又同様に、データベースサーバ1のテーブルB、テーブルDは、それぞれデータベースサーバ1のテーブルB、テーブルDとのデータベースリンクが設定されている。
データベースサーバ1のテーブルB及びテーブルD、並びにデータベースサーバ2のテーブルA及びテーブルCは実際には実体がなく、そのテーブルへのアクセスが行われた場合にはリンク設定されている他のデータベースが管理しているテーブルに対してアクセス制御するようになっている。
ここで、データベースサーバ2のテーブルAに対しての情報処理装置からアクセスする場合を例に挙げて説明する。
まず、情報処理装置からは例えばSQLなどデータベース操作言語によってデータベースサーバ2上のテーブルAへの操作要求がなされる(図中(X))。その操作要求を受け取ったデータベースサーバ2のCPUは、自サーバのテーブルAとデータベースリンク設定がされているデータベースサーバ1に対して操作要求を転送することになる。
このような手法で、情報処理装置からデータベースサーバ2のテーブルAの操作命令をすることで、実際にはデータベースサーバ1のテーブルAに対して操作処理が行われることになる。以上がデータベースリンクの概要である。
次に、図7を参照して、各データベースサーバで管理されているテーブルについて説明する。
各データベースサーバは、顧客マスタや売り上げマスタ等のテーブルを管理している。また、それぞれのテーブルについて配信対象のデータベースサーバが設定されている。配信対象のデータベースサーバとは、他拠点のデータベースサーバのうち、当該データベースサーバで管理しているテーブルと同様のテーブルを備えているデータベースサーバであって、当該テーブルの同期を取る必要があるデータベースサーバのことをいう。
それぞれのテーブルには、レコードを一意に識別するための主キーとその他データ項目が設定されているレコードが記録され管理されている。
データベースサーバで管理されているテーブルのうち、配信対象のデータベースサーバが1つでも設定されているテーブルそれぞれについて、配信テーブルが設定されている。
配信テーブルには、その配信テーブルに対応するテーブルの各データ項目のほか、「配信先」項目、「更新方法」項目、「更新時刻」項目、「配信区分」項目等がある。
配信管理テーブルには、対応するテーブルに対して行われた更新処理の履歴情報が管理されることになる。そして、その更新情報を配信するデータベースサーバが複数あった場合にはそれぞれについてレコードを作成することになる。
また、配信管理テーブルには、それぞれの配信テーブルで管理されているレコードについて、配送先、テーブル毎に配信データがある/ないの情報が管理されている。
図10は、図1のデータベースサーバ101,111,121が顧客マスターテーブルを有し、それらが配信対象テーブルとして相互に設定されている場合の当該顧客マスターテーブルの同期処理に用いられるテーブル構成を示す図である。
図10に示すように、データベースサーバ101,111,121は、それぞれ顧客マスターテーブルを有している。そして、それぞれ顧客マスタの配信テーブルと、配信管理テーブルとが設定されている。他拠点のデータベースサーバの配信テーブルおよび配信管理テーブルには、上述したデータベースリンク設定によりアクセス可能になっている。各データベースサーバは、他拠点のデータベースサーバにアクセスする場合にはこのデータベースリンクの機能を用いてアクセスすることになる。
図3は、情報処理装置からテーブルの更新(レコードの追加、レコードの変更、レコードの削除等)要求を受けた場合に、データベースサーバ101,111,121のCPU201によって行われるテーブルの更新処理の詳細を示すフローチャート図である。本処理は、それぞれのデータベースサーバのHDD204に格納されているプログラムによる制御に基づいて行われることになる。
まず、データベースサーバのCPU201は、常時、情報処理装置からのテーブルの更新要求を受け付けるために更新要求の待ち状態にある(ステップS301)。
CPU201は、情報処理装置からの更新要求を受けたと判断した場合には(ステップS302でYES)、情報処理装置から指定されたデータベースに対して指定された更新処理を行うことになる(ステップS303)。
その後、CPU201は、変更指定されたデータベースが他の拠点のデータベースサーバでも管理されているかを判断する。他の拠点のデータベースサーバでも管理されているデータベースであれば、他拠点への配信対象のデータベースと判断することになる(ステップS304)。
他拠点への配信対象のデータベースに対しての更新処理が行われたと判断した場合には(ステップS304でYES)、当該データベースの配信テーブルに更新情報を追加する(ステップS305)。そして、更新情報として追加したレコードの「配信区分」を「未配信」と設定する(ステップS306)。
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで(S307でYESと判断するまで)行うことになる。
以上が情報処理装置からデータベースの更新(追加、変更、削除)要求を受けた場合に、データベースサーバ101,111,121のCPU201によって行われるデータベースの更新処理である。
図4は、データベースサーバ101,111,121のCPU201によって行われる配信管理テーブルの更新処理の一例を示すフローチャート図である。本処理はそれぞれのデータベースサーバのHDD204に格納されているプログラムによる制御に基づいて行われることになる。
まず、CPU201は前回の本処理を行ってから所定の時間が経過したか判断する(ステップS401)。所定時間経過していないと判断した場合には(ステップS401でNO)、所定時間が経過するまで待つこととなる(ステップS401の判断処理を繰り返す)。
所定時間が経過したと判断した場合には(ステップS401でYES)、データベースサーバで管理している他拠点のデータベースサーバに対しての配信テーブルのそれぞれをチェックする(ステップS402)。そして、CPU201は、「未配信」データを有する配信テーブルがあった場合は(ステップS403でYES)、未配信となっているデータの配信先を確認し(ステップS404)、配信管理テーブル中の当該宛先に対しての当該配信テーブルに関連するデータベースの配信管理情報を示すレコードの「配信管理区分」情報を「未配信あり」とする(ステップS405)。「配信管理区分」が「未配信あり」となっているレコードは、当該レコードで配信管理をしている配信テーブルには他拠点のデータベースサーバに未だ配信されていない配信すべきデータ(「配信区分」が「未配信」となっているデータ)が存在していることを示している。配信テーブルに「配信区分」が「未配信」となっているレコードがない(全ての配信すべきデータの配信(同期処理)を終えている)場合には、当該配信テーブルの配信管理をしているレコードの配信管理区分は「未配信なし」となる。
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで(S406でYESと判断するまで)行うことになる。
以上が配信管理テーブルの更新処理である。
図5は、データベースサーバ101,111,121のCPU201によって行われるデータ更新処理のフローチャート図である。ここでの処理は、自サーバで管理しているデータベースに対して、他拠点に設置されているデータベースサーバで変更されたデータと同様の変更処理を行い同期を取る処理について説明する。
ここでは、データベースサーバ101で管理されているテーブル(例えば顧客マスタテーブル)のあるレコードデータが変更され、その変更をデータベースサーバ111で管理しているテーブル(例えば顧客マスタテーブル)に対して反映させることにより同期を取る処理について説明する。
まず、データベースサーバ111のCPU201は、前回の本処理を行ってから所定の時間が経過したかを判断する(ステップS501)。経過したと判断した場合には(ステップS601でYES)、他のデータベースサーバ(この場合はデータベースサーバ101と121)で管理されている自サーバ向けの配信管理テーブルのチェックを行う(ステップS502)。
そして、自サーバ向けの配信管理テーブル中のレコードを参照して、「未配信あり」となっているレコードがあるかを確認することで、「未配信」のレコードを有する配信テーブルがあるかを確認する(ステップS503)。「未配信」データを有する配信テーブルがあると判断した場合には(ステップS503でYES)、未配信データを有する他拠点のデータベースサーバ(この場合はデータベースサーバ101)が管理する配信テーブルにアクセスする(ステップS504)。そして、当該配信テーブル中のレコードから、自サーバ(データベースサーバ111)向けで且つ配信区分が「未配信」のレコードのデータを当該配信テーブルから取得する(1レコードずつ)(ステップS505)。
そして、自サーバ(データベースサーバ111)の当該テーブルに対応する配信テーブル中にステップS505で取得したレコードと同一のレコードに対する更新情報で、更新時刻情報が新しいものがあるかをチェックする(ステップS506)。更新時刻が新しいものがあった場合には(ステップS506でYES)、ステップS505で取得したレコードの配信区分を「配信済み」に変更する指示を、配信管理テーブルを管理しているデータベースサーバ(データベースサーバ101)に対して行い(ステップS514)、ステップS511に移行する。
ステップS506でNOと判断した場合には、ステップS505で取得したレコードの配信区分を「配信中」に変更する指示を、配信管理テーブルを管理しているデータベースサーバ(データベースサーバ101)に対して行う(ステップS507)。
次に、ステップS508では、データベースサーバ111のCPU201は、ステップS505で取得したデータ(具体的には更新情報データ及び更新内容データ)に基づいて、自サーバ(データベースサーバ111)で管理している該当テーブルの更新処理を行う。そして、更新処理に成功した場合には(ステップS509でYES)、ステップS504からステップS509までの処理をステップS511でNOと判断するまで行うこととなる。
そして、全ての未配信データについての更新処理が終了したら(ステップS511でNOと判断)、データベースサーバ101で管理している配信テーブルで管理しているレコードのうち、配信先がデータベースサーバ111で配信区分が「配信中」になっているレコードの配信区分を「配信済み」に変更するようデータベースサーバ101に指示を行う(ステップS512)。
もし、ステップS509でステップS508の処理が失敗したと判断した場合には(ステップS509でNO)、それまでに本処理で行ったデータベースのテーブルに対しての変更処理をキャンセルして全て元の状態に戻すことになる(ステップS510)。
以上の処理を、データベースサーバを操作するユーザの入力部を介した本処理を終了するという指示を受ける(ステップS513でYESと判断する)まで継続することになる。
なお、本処理の説明では、一定時間間隔で他のデータベースサーバで管理している配信管理テーブルに対してアクセスするようにしているが、例えば、情報処理装置からデータベースサーバ中のテーブルで管理しているデータに対する参照要求があった場合、更新要求があったタイミングで本処理を実行することも勿論可能である。
図6は、データベースサーバ101,111,121のCPU201によって行われる配信テーブル中のレコードの削除処理の一例を示すフローチャート図である。この処理は、通常夜間バッチ処理等で行われることになる。
まず、データベースサーバのCPU201は、配信テーブル中のレコードデータの削除を行うタイミングになったかどうかを判断する(ステップS601)。
データ削除を行うタイミングになったと判断した場合には(ステップS601でYES)、自サーバで管理している全ての配信テーブルを確認し、配信区分が「配信済み」となっておりレコードデータがあるかを判断する(ステップS602)。
配信区分が「配信済み」となっているレコードデータがあると判断した場合には(ステップS602でYES)、「配信済み」のレコードをそれぞれの配信管理テーブルから削除する(ステップS603)。
以上の処理を、データベースサーバを操作するユーザによる入力部を介した本処理を終了するという指示を受ける(ステップS604でYESと判断する)まで継続することになる。
以上が配信済みレコードの削除処理である。
最後に、図9を参照して、本実施の形態のデータ更新処理および同期処理について簡単に説明する。ここでは、データベースサーバAが有する顧客マスターテーブルに対して更新処理がなされた場合の処理を説明する。この図では、この処理に必要なテーブルのみを記載している。
まず、更新データの配信元となるデータベースサーバAは、情報処理装置から顧客マスタの更新要求を受けた場合には、当該更新要求に従って顧客マスタのレコードを更新するとともに、その変更内容を配信テーブルに対しても登録する。その際には、配信テーブルには配信先のデータベースサーバのデータ、更新方法データ、及び配信区分(未配信/配信済み 初期値は未配信)が登録される。
そして、定期的に配信テーブルを監視して、顧客マスタ配信テーブルに未配信のレコードがあった場合には、配信管理テーブルで管理している当該配信先に対する顧客マスタの配信管理レコードを「未配信ありに」、未配信のレコードがなかった場合には「配信済み」に設定する。また、定期的に配信テーブル中の配信済みのレコードを削除する処理を行う。
一方、配信先であるデータベースサーバBでは、定期的にデータベースサーバAで管理している配信管理テーブルにアクセスし、データベースサーバB向けの顧客マスタの配信管理レコードが「未配信」であるかをチェックする。「未配信」であった場合には、データベースサーバAが管理している配信テーブルにアクセスし、未配信レコードを取得し、そのレコードで示されている更新をデータベースサーバB自体が管理している顧客管理テーブルに反映させる。そして、反映が終了したらデータベースサーバAが管理している配信テーブルの未配信データを配信済みに変更する。
この処理を行うことで、データベースサーバAとデータベースサーバBとのそれぞれで管理されている顧客マスタの同期処理が行われることになる。
上記のような構成を採ることにより、対等の関係にある複数のデータベースの同期処理を的確に行うことが可能となる。また、1つの拠点に対してアクセスが集中しないため、データベースサーバおよびネットワークの負荷を軽減することができる。
[第2の実施の形態]
次に、図11および図12を参照して、本発明の第2の実施の形態を説明する。
本実施の形態では、データベースの更新時刻の指定を行い、その時刻に達した際にデータベースの更新処理を行うデータベースの同期処理について説明する。本実施の形態においては、各データベースサーバは配信テーブル及び配信管理テーブルを他のデータベースサーバ向けのものだけではなく、自データベースサーバ向けのものも有している。
まず、図11を参照して、本実施形態におけるデータの登録処理の詳細について説明する。
図11は、データベースサーバのCPU201によって行われるデータ登録処理のフローチャート図である。本処理は既に説明した図3の処理と類似するので、同様の処理については同一の符号を付与している。
まず、図3のステップS301、ステップS302の処理と同様の処理を行う。ステップS302でYESと判断した場合には、CPU201はデータ更新の時間が指定されているかを判断する(ステップS1101)。本実施の形態では、データを更新する時刻を指定することが可能で、各データベースサーバは当該時刻に達した場合にデータの更新処理を行うことになる。データの更新時刻が設定されていない場合や、過去の時刻が設定された場合には、更新要求があると、直ちにデータベースの更新処理を行うことになる。
ステップS1101でNOと判断した場合には、図3の処理と同様に、指定されたテーブルに対してユーザからの要求どおりの更新処理を行う(ステップS303)。
ステップS1101でYESと判断した場合には、CPU201は自サーバ向けの配信テーブルに更新情報を示すレコードを追加する(ステップS1102)。その際には、更新の指定時刻も合わせて登録されることになる。
ステップS303若しくはステップS1102の処理が終了した場合には、図3での処理と同様に、ステップS304からステップS306の処理を行う。なお、ステップS305で追加されるレコードについては、更新時刻の指定があった場合には、他のデータベースサーバへの配信テーブルにも勿論その時刻を設定することになる。
そして上記処理を、データベースサーバを操作するユーザによる入力部を介して、本処理の終了指示を受けるまで(S307でYESと判断するまで)行うことになる。
なお、上記の説明では、更新時刻を全データベースサーバで同じ時間にすることを前提にしているが、各データベースサーバの更新時刻を異ならせても勿論かまわない。その際には、それぞれのデータベースサーバにおける更新時刻をユーザの入力部を介した時刻設定命令等に基づいて設定することになる。更新時刻を異ならせる構成をとることで、例えば人事情報など、データの内容の実際の更新時刻前にその更新内容が必要となる一部の部署(人事部等)のみがアクセスできるデータベースを用意しておき、実際の更新時刻よりも先にそのデータベースの更新のみを行い、その後人事異動が行われる時刻(実際の更新時刻)に全社向けのデータベースを更新することにより同期を取るなどということも可能になる。
次に、図12を参照して、本実施の形態におけるデータの更新処理について説明する。
図12は、データベースサーバのCPU201によって行われるデータの更新処理のフローチャート図である。本処理は既に説明した図5の処理と類似するので、同様の処理については同一の符号を付与している。
まず、CPU201は、図5のステップS501からS505の処理と同様の処理を行う。
そして、ステップS505で取得したレコードの更新時刻が未来の時刻かどうかを判断する(ステップS1201)。未来の時刻であると判断した場合には(ステップS1201でYES)、未だ更新時刻に達していないのでステップS511に処理を進める。
ステップS1201でNOと判断した場合には、自サーバの配信テーブル(他のデータベースサーバ及び自データベースサーバ向け)をチェックして、ステップS505で取得したレコードの更新時刻よりも新しい、同一のレコードに対する更新情報のレコードがあるかをチェックする(ステップS1202)。この際には、更新時刻が新しくても未来の時刻のものについては未だ更新時刻に達していないので比較の対象とはしない。
そして、ステップS1202でYESと判断した場合には図5のステップS506でYESと判断した場合と、NOと判断した場合には図5のステップS506でNOと判断した場合と同様の処理を行うことになる。
上記のような構成を採ることにより、レコードの更新時刻に達していない更新情報にもとづくテーブルの修正が行われることがない。よって、指定された時刻に達した場合に更新処理を行うことが可能になる。
なお、本発明は、上記実施の形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
本発明の第1の実施の形態であるデータベース同期システムのシステム構成例を示す図である。 データベースサーバのハードウェア構成の一例を示すブロック図である。 情報処理装置からテーブルの更新要求を受けた場合に、データベースサーバのCPUによって行われるテーブルの更新処理の一例を示すフローチャート図である。 データベースサーバのCPUによって行われる配信管理テーブルの更新処理の一例を示すフローチャート図である。 データベースサーバのCPUによって行われるデータ更新処理の一例を示すフローチャート図である。 データベースサーバのCPUによって行われる配信テーブル中のレコードの削除処理の一例を示すフローチャート図である。 各データベースサーバで管理されているテーブルの一例を示す図である。 データベースリンクを説明するための図である。 データ更新処理および同期処理について説明するための図である。 データベースサーバが顧客マスターテーブルを有し、それらが配信対象テーブルとして相互に設定されている場合の当該顧客マスターテーブルの同期処理に用いられるテーブル構成を示す図である。 本発明の第2の実施の形態において、データベースサーバのCPUによって行われるデータ登録処理の一例を示すフローチャート図である。 本発明の第2の実施の形態において、データベースサーバのCPUによって行われるデータの更新処理の一例を示すフローチャート図である。
符号の説明
100,110,120 拠点
101,111,121 データベースサーバ
102,112,122 情報処理装置
103,113,123 ネットワーク
105 広域回線
201 CPU
202 RAM
203 ROM
204 HDD
205 記録媒体ドライブ
206 キーボード
207 ポインティングデバイス
208 ネットワークI/F
209 ビデオI/F
210 ディスプレイ装置
211 外部機器I/F
212 システムバス

Claims (11)

  1. 複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期システムであって、
    一のデータベースサーバは、第1のデータベースと、
    該第1のデータベースへの更新情報を記録する第2のデータベースと、
    前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースと、
    クライアント装置からデータの更新要求を受けた場合に、前記第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新手段と、
    前記第2のデータベース中に未配信のデータがあった場合に、前記第3のデータベースの配信情報を未配信と示す情報に変更する変更手段と、を備え、
    他のデータベースサーバは、前記第1のデータベースと同一のデータを管理する第4のデータベースと、
    前記第3のデータベースへアクセスし、該第3のデータベース中の前記他のデータベースサーバの配信情報を取得する第1の取得手段と、
    該第1の取得手段で取得した配信情報が未配信を示すものであった場合に、前記第2のデータベースにアクセスし、未配信の更新情報を取得する第2の取得手段と、
    該第2の取得手段で取得した更新情報に基づいて前記第4のデータベースを更新する第2の更新手段と、を備える
    ことを特徴とするデータベース同期システム。
  2. 前記一のデータベースサーバは、前記第1のデータベースが複数の場合に、該複数の第1のデータベースのそれぞれについての更新情報を記録する複数の前記第2のデータベースを備える、
    ことを特徴とする請求項1に記載のデータベース同期システム。
  3. 前記他のデータベースサーバは、前記第4のデータベースの更新情報を記録する第5のデータベースと、
    前記第2の取得手段で取得した更新情報が示すレコードと同一のレコードに対しての更新情報が前記第5のデータベースにあった場合に、更新情報の新旧を判断する第1の判断手段と、を備え、
    前記第2の更新手段は、前記第1の判断手段で前記第2の取得手段で取得した更新情報が新しいと判断した場合に、該第2の取得手段で取得した更新情報に基づいて前記第4のデータベースを更新する、
    ことを特徴とする請求項1又は2に記載のデータベース同期システム。
  4. 前記一のデータベースサーバは、データの更新時刻を指定する指定手段と、
    該指定手段による更新時刻の指定があった場合に、自己のサーバ向けの更新情報を記録する第6のデータベースと、
    更新情報が示すレコードと同一のレコードに対しての更新情報が前記第6のデータベースにあった場合に、該更新情報の新旧を判断する第2の判断手段と、
    該第2の判断手段で更新情報が新しいと判断した場合に、該更新情報に基づいて前記第1のデータベースを更新する第3の更新手段と、を備える
    ことを特徴とする請求項1〜3のいずれか一項に記載のデータベース同期システム。
  5. 複数のデータベースサーバで管理されているデータの同期処理を行うデータベース同期方法であって、
    一のデータベースサーバ側で、クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新ステップと、
    前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、を実行し、
    他のデータベースサーバ側で、前記第3のデータベースへアクセスし、該第3のデータベース中の前記他のデータベースサーバの配信情報を取得する第1の取得ステップと、
    該第1の取得ステップで取得した配信情報が未配信を示すものであった場合に、前記第2のデータベースにアクセスし、未配信の更新情報を取得する第2の取得ステップと、
    該第2の取得ステップで取得した更新情報に基づいて前記第1のデータベースと同一のデータを管理する第4のデータベースを更新する第2の更新ステップと、を実行する、
    ことを特徴とするデータベース同期方法。
  6. 第1のデータベースと、
    該第1のデータベースへの更新情報を記録する第2のデータベースと、
    前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースと、
    クライアント装置からデータの更新要求を受けた場合に、前記第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新手段と、
    前記第2のデータベース中に未配信のデータがあった場合に、前記第3のデータベースの配信情報を未配信と示す情報に変更する変更手段と、
    他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得手段と、 該第1の取得手段で取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得手段と、
    該第2の取得手段で取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新手段と、を備える
    ことを特徴とするデータベースサーバ。
  7. 前記第1のデータベースが複数の場合に、該複数の第1のデータベースのそれぞれについての更新情報を記録する複数の前記第2のデータベースを備える、
    ことを特徴とする請求項6に記載のデータベースサーバ。
  8. 前記第2の取得手段で取得した更新情報が示すレコードと同一のレコードに対しての更新情報が前記第2のデータベースにあった場合に、更新情報の新旧を判断する第1の判断手段を備え、
    前記第2の更新手段は、前記第1の判断手段で前記第2の取得手段で取得した更新情報が新しいと判断した場合に、該第2の取得手段で取得した更新情報に基づいて前記第1のデータベースを更新する、
    ことを特徴とする請求項6又は7に記載のデータベースサーバ。
  9. データの更新時刻を指定する指定手段と、
    該指定手段による更新時刻の指定があった場合に、自己のサーバ向けの更新情報を記録する第6のデータベースと、
    更新情報が示すレコードと同一のレコードに対しての更新情報が前記第6のデータベースにあった場合に、該更新情報の新旧を判断する第2の判断手段と、
    該第2の判断手段で更新情報が新しいと判断した場合に、該更新情報に基づいて前記第1のデータベースを更新する第3の更新手段と、を備える
    ことを特徴とする請求項6〜8のいずれか一項に記載のデータベースサーバ。
  10. クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新ステップと、
    前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更ステップと、
    他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得ステップと、
    該第1の取得ステップで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得ステップと、
    該第2の取得ステップで取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新ステップと、を備える
    ことを特徴とするデータベースサーバの制御方法。
  11. クライアント装置からデータの更新要求を受けた場合に、第1のデータベースを更新するとともに更新情報を第2のデータベースに登録する第1の更新モジュールと、
    前記第2のデータベース中に未配信のデータがあった場合に、前記更新情報の他のデータベースサーバへの配信情報をデータベースサーバ毎に記録する第3のデータベースの前記配信情報を未配信と示す情報に変更する変更モジュールと、
    他のデータベースサーバへアクセスし、自己の配信情報を取得する第1の取得モジュールと、
    該第1の取得モジュールで取得した配信情報が未配信を示すものであった場合に、他のデータベースサーバにアクセスし、未配信の更新情報を取得する第2の取得モジュールと、
    該第2の取得モジュールで取得した更新情報に基づいて前記第1のデータベースを更新する第2の更新モジュールと、をコンピュータに実行させる、
    ことを特徴とするプログラム。
JP2006350072A 2006-12-26 2006-12-26 データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム Pending JP2008158978A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006350072A JP2008158978A (ja) 2006-12-26 2006-12-26 データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006350072A JP2008158978A (ja) 2006-12-26 2006-12-26 データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2008158978A true JP2008158978A (ja) 2008-07-10

Family

ID=39659786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006350072A Pending JP2008158978A (ja) 2006-12-26 2006-12-26 データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2008158978A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123660A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 情報管理システムとそのデータ更新操作方法
JP2016194826A (ja) * 2015-03-31 2016-11-17 富士通株式会社 データベースの処理制御方法、処理制御プロラム及びデータベースサーバ
JP2017182161A (ja) * 2016-03-28 2017-10-05 富士通株式会社 データベース処理プログラム、データベース処理装置及びデータベース処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123660A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 情報管理システムとそのデータ更新操作方法
JP2016194826A (ja) * 2015-03-31 2016-11-17 富士通株式会社 データベースの処理制御方法、処理制御プロラム及びデータベースサーバ
JP2017182161A (ja) * 2016-03-28 2017-10-05 富士通株式会社 データベース処理プログラム、データベース処理装置及びデータベース処理方法

Similar Documents

Publication Publication Date Title
US7958210B2 (en) Update management method and update management unit
US7469260B2 (en) File storage service system, file management device, file management method, ID denotative NAS server and file reading method
US7107323B2 (en) System and method of file distribution for a computer system in which partial files are arranged according to various allocation rules
JP4187302B2 (ja) リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体
US7406487B1 (en) Method and system for performing periodic replication using a log
US9361390B2 (en) Web content management
US20080195827A1 (en) Storage control device for storage virtualization system
JP2011076487A (ja) 計算機、及びデータベース管理プログラム
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
JP5077430B2 (ja) 管理装置および管理装置のプログラム
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
CN101272313A (zh) 进行文件级的虚拟化的中间装置
US20200104404A1 (en) Seamless migration of distributed systems
JP2013037450A (ja) データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム
JP2011150458A (ja) 情報処理装置、情報処理システム、データ・アーカイブ方法およびデータ削除方法
JP2008158978A (ja) データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム
JP5040629B2 (ja) データ移行プログラム、データ移行方法およびデータ移行装置
US20040193655A1 (en) Journal obtaining-distributing apparatus, journal obtaining-distributing method, and program used to direct computer to use method thereof
KR20070010156A (ko) 데이터 저장 시스템, 컬러 및 컬러 경계 유지 방법 및 컴퓨터 판독 가능한 프로그램을 기록한 기록 매체
JP2007193408A (ja) 文書管理システムにおけるディスク運用制御方法
CN113495739A (zh) 信息处理装置、信息处理方法和系统、计算机可读介质
JP2009301352A (ja) テスト装置およびテスト方法
JPH09265424A (ja) 分散ファイルの同期システムと方法
JPH06290098A (ja) 分散データベース処理方法
US11768813B1 (en) Data migration framework