(57)【要約】【課題】マスターデータベースに対する更新頻度の変化があった場合でも、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレをできるだけ抑制できる装置としてコンピュータを機能させるレプリケーションプログラムと、そのような装置を含んだデータベースシステムとを、提供する。【解決手段】レプリケーションプログラム１２２ａ，メッセージスプーラ１２２ｂ，及び、バッチファイルスプーラ１２２ｃを実行したホストコンピュータ１２は、ストレージ装置１１内のマスターデータベース１１１についてなされた更新の頻度が高いときには、一定期間差分データを溜め込んでおいたバッチファイルを纏めてサブシステム２０へ送信し、マスターデータベース１１１についてなされた更新の頻度が低いときには、差分データが一つ生成されるたびに、その差分データをメッセージとしてサブシステム２０へ送信する。【選択図】図１
2006318020.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段，
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段，
前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段
として機能させる
ことを特徴とするレプリケーションプログラム。
【請求項２】
前記送信制御手段は、前記レプリカデータベースを更新するためのシステムに対して異なる２以上の通信手段を介して前記通信装置が接続されている場合において、前記ファイルを当該システムへ送信するときには、通信負荷の軽い方の通信手段を介して前記ファイルを当該システムへ送信する
ことを特徴とする請求項１記載のレプリケーションプログラム。
【請求項３】
前記送信制御手段は、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っているか否かを判断する処理を、その処理と同じ処理をその直前に行った後から所定の一定期間が経過した以後に、実行する
ことを特徴とする請求項１又は２記載のレプリケーションプログラム。
【請求項４】
マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、
前記メインシステムは、
前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得部，
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部，
前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、そのファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部
を備え、
前記サブシステムは、
前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する
ことを特徴とするデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスターデータベースのレプリカを管理するための装置としてコンピュータを動作させるためのレプリケーションプログラムと、マスターデータベース及びレプリカデータベースを含むデータベースシステムとに、関する。
【背景技術】
【０００２】
周知のように、多くの場合、業務情報は、マスターデータベースにおいて統合的に管理されている。但し、このようなマスターデータベースに対し、任意の業務情報を取得しようとする従業者から多数のアクセスがあると、通信回線に掛かる負荷の増大やアクセス速度の低下が生じて、マスターデータベースについて本来行うべき管理（マスターデータの更新や修正）が行えなくなってしまう。このような問題を解消するため、近年では、マスターデータベースの複製物（レプリカ）を幾つか用意することが、提案されている。このようにレプリカデータベースを用意することにより、従業者に対してはレプリカデータベースにのみアクセスさせ、マスターデータベースにおいては本来行うべき管理だけが行われるようにすることができる。
【０００３】
なお、レプリカデータベースの内容は、マスターデータベースの内容と同じになっていないと、業務に支障を来す。このため、マスターデータベースとレプリカデータベースとを含むデータベースシステムは、マスターデータベースの内容の更新時にその更新内容をレプリカデータベースにも反映する仕組みを、備えている。
【０００４】
その更新内容を反映する仕組みとしては、更新するための情報を使ってマスターデータベースの内容とレプリカデータベースの内容とを同時に更新する『同期方式』というものがあるが、更新処理の実行性能が低下する欠点がある。このため、更新するための情報を使ってマスターデータベースの内容を一旦更新した後で更新後のマスターデータベースの内容をレプリカデータベースに反映する『非同期方式』が採られていることが多い。
【０００５】
その非同期方式においては、更新後のマスターデータベースの内容をコピーしてレプリカデータベースに上書きする『全部反映』という方法もあるが、マスターデータベースのデータ量が膨大である場合には、更新処理に非常に時間が掛かることとなる。このため、通常は、マスターデータベースの更新前後の差分のデータを用いて、レプリカデータベースにおける更新すべきレコードだけの内容を更新する『差分反映』という方法が、採られている。
【０００６】
そして、その差分反映という方法には、より具体的には、逐次配布方式と一括配布方式とがある。このうち、逐次配布方式は、マスターデータベースの一つのレコードについて更新が行われるたびに、差分データがマスターデータベース側のシステムからレプリカデータベース側のシステムへ送信されて、レプリカデータベースにおける対応する一つのレコードが直ちに更新されるというものである。一方、一括配布方式は、マスターデータベースにおいて更新されたレコードが所定量に到達したときに、その所定量の差分データがマスターデータベース側からレプリカデータベース側へ一括して送信され、レプリカデータベースにおける対応する各レコードが一括して更新されるというものである。
【特許文献１】特開平０７−１２１４２３号公報
【特許文献２】特開２００３−０９９２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述した逐次配布方式によると、マスターデータベースの一つのレコードについて更新があるごとに、レプリカデータベースのレコードが一つずつ更新される。このため、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレ（タイムラグ）が小さくて済むという利点がある。しかしながら、送り側から受け側へデータを送信する際には、要求信号と応答信号の遣り取りが行われるため、短期間に大量のレコードを更新するような利用状況においては、要求信号と応答信号が頻発して通信手段（ネットワーク）の混雑が発生する。然も、ネットワークでは、単位時間当たりに送信できるデータ量が決まっているため、場合によっては、遅配が生ずることとなる。このため、このような利用状況が多発するデータベースシステムにおいては、この逐次配布方式は、採用しにくいという欠点がある。
【０００８】
その一方、前述した一括配布方式によると、マスターデータベースの所定量のレコードについて行われた更新を、レプリカデータベースにおいて一度に行えるという利点がある。しかしながら、差分データは、所定量溜め込まれた後でレプリカデータベース側のシステムへ送信されるため、長期間に少量のレコードを更新するような利用状況においては、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレ（タイムラグ）が大きくなってしまうという欠点がある。
【０００９】
そして、従来のデータベースシステムでは、逐次配布方式と一括配布方式の何れか一方しか採用されなかったため、利用状況の変化に対応することができなかった。利用状況が変化したときには、データベースシステムの管理者が、マスターデータベースの内容とレプリカデータベースの内容との整合を取るための作業を、営業時間外において或いはシステムを強制的に停止させて、行わねばならないこともある。
【００１０】
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、マスターデータベースに対する更新頻度の変化があった場合でも、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレをできるだけ抑制させることにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために発明されたレプリケーションプログラムは、コンピュータを、マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段，前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段，前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段として機能させることを、特徴としている。
【００１２】
このように構成されると、このレプリケーションプログラムを実行したコンピュータは、マスターデータベースについてなされた更新の頻度が高いときには、一定期間溜め込んでおいた差分データを纏めてレプリカデータベース側のシステムへ送信し、マスターデータベースについてなされた更新の頻度が低いときには、差分データが一つ生成されるたびに、その差分データをレプリカデータベース側のシステムへ送信する。
【００１３】
換言すると、本発明のレプリケーションプログラムを実行したコンピュータによれば、マスターデータベースについてなされた更新の頻度が高いときには、一括配布方式でレプリカデータベースが更新され、マスターデータベースについてなされた更新の頻度が低いときには、逐次配布方式でレプリカデータベースが更新されることとなる。
【００１４】
この結果、長期間に少量のレコードを更新するような利用状況においては、マスターデータベースの一つのレコードについて更新があるごとにレプリカデータベースのレコードが一つずつ更新されることによって、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが低下されることとなる。また、短期間に大量のレコードを更新するような利用状況においては、マスターデータベースの所定量のレコードについて行われた更新がレプリカデータベースにおける対応するレコードについて一度に行われることによって、要求信号と応答信号の頻発による遅配が抑えられるので、やはり、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが低下されることとなる。
【００１５】
また、上記の課題を解決するために発明されたデータベースシステムは、マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、前記メインシステムは、前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得部，前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部，前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、そのファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部を備え、前記サブシステムは、前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行することを、特徴としている。
【００１６】
従って、このデータベースシステムに含まれるメインシステムは、前述した本発明のレプリケーションプログラムを実行したコンピュータと同等の装置として機能させることができ、一方、サブシステムは、前述した本発明のレプリケーションプログラムを実行したコンピュータからの差分データ又はファイルに基づいてレプリカデータベースを更新する装置と同等の装置として機能させることができることとなる。
【発明の効果】
【００１７】
以上に説明したように、本発明によれば、マスターデータベースに対する更新頻度の変化があった場合でも、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが抑制されることとなる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面に基づいて、本発明を実施するための一つの形態について、説明する。
【００１９】
まず、本実施形態のデータベースシステムの構成について、説明する。
【００２０】
図１は、本実施形態のデータベースシステムの構成図である。このデータベースシステムは、一つのメインシステム１０と少なくとも一つのサブシステム２０とからなる。メインシステム１０とサブシステム２０は、何れも、ストレージ装置１１，２１とホストコンピュータ１２，２２とを含んでおり、それらシステム１０，２０のホストコンピュータ１２，２２は、ＬＡＮ［Local Area Network］及びＳＡＮ［Storage Area Network］を介して互いに接続されている。
【００２１】
ストレージ装置１１，２１は、データやプログラムを保存しておくための記憶装置であり、図示していないが、複数枚の磁気ディスク又は複数の磁気テープを読み書き自在に搭載したドライブ機器，及び、このドライブ機器とホストコンピュータ１２，２２との間のデータの遣り取りを制御するための通信インターフェースポートを、内蔵している。
【００２２】
なお、本データベースシステムにおいては、各システム１０，２０のストレージ装置１１，２１は、主にデータベースを記録しておくための装置として利用される。メインシステム１０のストレージ装置１１のドライブ機器内には、このデータベースシステムを業務に利用する業者がその業務に係る情報を検索可能に格納したマスターデータベース１１１が、記録されている。一方、サブシステム２０のストレージ装置２１のドライブ機器内には、メインシステム１０のマスターデータベース１１１のレプリカとして使用されるデータベース２１１が、記録されている。
【００２３】
ホストコンピュータ１２，２２は、何れも、前述したストレージ装置１１，２１内に記録されるデータやプログラムの管理に使用される装置である。これらホストコンピュータ１２，２２は、一般に市販されているパーソナルコンピュータであり、液晶ディスプレイ等の表示装置と、キーボードやマウス等の入力装置と、これら装置に接続された本体とを、備えている。
【００２４】
その本体は、図示していないが、ストレージ装置１１，１２との間のデータの遣り取りを制御するための通信インターフェースポートを備えており、その通信インターフェースポートは、ストレージ装置１１，２１の通信インターフェースポートに対して所定のケーブル（例えば、ＳＣＳＩケーブルやファイバチャネルケーブル）を介して接続されている。
【００２５】
また、この本体は、図示していないが、ＬＡＮ及びＳＡＮを介して接続された他のコンピュータとの間のデータの遣り取りを制御するための通信インターフェースポートを備えており、その通信インターフェースポートは、ＬＡＮ内のルータ等の中継装置，及び、ＳＡＮ内のファイバチャネルスイッチ等の中継装置のそれぞれに対し、所定のケーブルにて接続されている。
【００２６】
さらに、この本体は、図示していないが、前述した各通信インターフェースポートの他、ＣＰＵ［Central Processing Unit］，ＤＲＡＭ［Dynamic Random Access Memory］，ＣＤＤ［Compact Disk Drive］，ＤＶＤＤ［Digital Versatile Disk Drive］，及び、ＨＤＤ［Hard Disk Drive］等のハードウエアを、内蔵している。
【００２７】
なお、メインシステム１０のホストコンピュータ１２とサブシステム２０のホストコンピュータ２２とは、ソフトウエア構成が異なっている。そこで、以下では、ソフトウエア構成について、各システム１０，２０毎に順に説明する。
【００２８】
メインシステム１０のホストコンピュータ１２のＨＤＤには、図示せぬオペレーティングシステムプログラム，データベースプログラム１２１，データベース管理ソフトウエア１２２が、インストールされている。このうち、データベースプログラム１２１は、ストレージ装置１１内のマスターデータベース１１１におけるレコードの検索を行うためのプログラムである。一方、データベース管理ソフトウエア１２２は、ストレージ装置１１内のマスターデータベース１１１のレコードの管理（追加、修正、削除）を行うためのプログラムである。
【００２９】
さらに、データベース管理ソフトウエア１２２は、マスターデータベース１１１内の幾つかのレコードについて内容の更新が行われたときに、その更新された各レコードについての更新前後の差分データを履歴として更新ログファイルに保存する機能を実現するプログラムを、含んでいる。
【００３０】
また、このデータベース管理ソフトウエア１２２は、レプリケーションプログラム１２２ａ，メッセージスプールプログラム（スプーラ）１２２ｂ，及び、バッチファイルスプールプログラム（スプーラ）１２２ｃを、含んでいる。なお、これらプログラム１２２ａ〜１２２ｃは、このデータベース管理ソフトウエア１２２のアドインプログラムであっても良い。
【００３１】
レプリケーションプログラム１２２ａは、メインシステム１０内のマスターデータベース１１１についての更新内容をサブシステム２０内のレプリカデータベース２１１に反映するための情報を生成するためのプログラムである。このレプリケーションプログラム１２２ａに従って図示せぬＣＰＵが実行する処理の内容については、後述する。
【００３２】
メッセージスプーラ１２２ｂは、マスターデータベース１１１内のレコードについて更新がなされたときに生成される差分データを、メッセージとしてサブシステム２０のホストコンピュータ２２へ送信するためのプログラムである。このメッセージスプーラ１２２ｂに従った図示せぬＣＰＵは、図示せぬＤＲＡＭ上に構築したメッセージキュー内にメッセージが登録されている場合において、サブシステム２０のホストコンピュータ２２が受信可能なときに、そのメッセージキュー内のメッセージを登録順に送信するという処理を、行う。
【００３３】
バッチファイルスプーラ１２２ｃは、マスターデータベース１１１内のレコードについて更新がなされたときに生成される差分データを所定数格納したバッチファイルを、サブシステム２０のホストコンピュータ２２へ送信するためのプログラムである。このバッチファイルスプーラ１２２ｃに従った図示せぬＣＰＵは、図示せぬＤＲＡＭ上に構築したバッチファイルキュー内にバッチファイルが登録されている場合において、サブシステム２０のホストコンピュータ２２が受信可能なときに、そのバッチファイルキュー内のバッチファイルを登録順に送信するという処理を、行う。
【００３４】
一方、サブシステム２０のホストコンピュータ２２のＨＤＤには、図示せぬオペレーティングシステムプログラム，データベースプログラム２２１，メッセージキュー管理プログラム２２２，バッチファイルキュー管理プログラム２２３，及び、更新反映プログラム２２４が、インストールされている。このうち、データベースプログラム２２１は、ストレージ装置２１内のレプリカデータベース２１１におけるレコードの検索を行うためのプログラムである。
【００３５】
また、メッセージキュー管理プログラム２２２は、メインシステム１０のホストコンピュータ１２から送られてきたメッセージを、サブシステム２０の図示せぬＤＲＡＭ上に構築したメッセージキュー内に登録するためのプログラムである。
【００３６】
また、バッチファイルキュー管理プログラム２２３は、メインシステム１０のホストコンピュータ１２から送られてきたバッチファイルを、サブシステム２０の図示せぬＤＲＡＭ上に構築したバッチファイルキュー内に登録するためのプログラムである。
【００３７】
さらに、更新反映プログラム２２４は、サブシステム２０の図示せぬＤＲＡＭ上のメッセージキュー及びバッチファイルキューに登録されているメッセージ及びバッチファイルに基づいて、ストレージ装置２１内のレプリカデータベース２１１を更新するためのプログラムである。なお、この更新反映プログラム２２４に従って図示せぬＣＰＵが実行する処理の内容については、後述する。
【００３８】
次に、前述したように構成されるデータベースシステムにおいて実行される処理のうち、本発明に係る処理の内容について、説明する。
【００３９】
まず、メインシステム１０において実行される処理について説明する。
【００４０】
メインシステム１０のホストコンピュータ１２においては、データベース管理ソフトウエア１２２が起動されると、メッセージスプーラ１２２ｂ，及び、バッチファイルスプーラ１２２ｃも起動され、各スプーラ１２２ｂ，１２２ｃが常駐するようになる。また、レプリケーションプログラム１２２ａも起動される。図２及び図３は、このレプリケーションプログラム１２２ａに従って図示せぬＣＰＵが実行する処理の流れを示す図である。
【００４１】
この処理の開始後、ホストコンピュータ１２（の図示せぬＣＰＵ）は、差分データの配布についての動作モードとして逐次配布モードと一括配布モードの何れが初期設定されているかを、判別する（Ｓ１００１）。なお、逐次配布モードは、メッセージスプーラ１２２ｂを通じて差分データをサブシステム２０へ送信する動作モードであり、一括配布モードは、バッチファイルスプーラ１２２ｃを通じて差分データをサブシステム２０へ送信する動作モードである。ホストコンピュータ１２は、データベース管理ソフトウエアを構成する設定ファイルにおいて、初期の動作を何れの動作モードで開始するかを規定する情報を、記憶しており、ホストコンピュータ１２は、このレプリケーションプログラム１２２ａの起動後、その設定ファイルからその情報を読み取ることによって、初期設定の動作モードを判別する。
【００４２】
そして、ホストコンピュータ１２は、逐次配布モードが初期設定されていた場合（Ｓ１００１；逐次配布）、逐次配布処理を実行する（Ｓ１０１１〜Ｓ１０１５）。
【００４３】
その逐次配布処理を具体的に説明すると、まず、ホストコンピュータ１２は、前述した更新ログファイルに定期的にアクセスする処理をこの処理と並行して実行しており、その更新ログファイルから一件の未処理の差分データが取得できるようになるまで（差分データが更新ログファイルに保存されるまで）、待機する（Ｓ１０１１；ＮＯ）。そして、前述した更新ログファイルから一件分の差分データを取得すると（Ｓ１０１１；ＹＥＳ）、ホストコンピュータ１２は、その差分データを、メッセージとして、図示せぬＤＲＡＭ上のメッセージキューに出力する（Ｓ１０１２）。
【００４４】
その後、ホストコンピュータ１２は、前述した更新ログファイルを参照することによって、その時点から過去の一定期間内におけるマスターデータベース１１１についての更新件数（差分データ数）を取得し（Ｓ１０１３）、その一定期間内の更新件数が所定の上限値を超えているか否かを判別する（Ｓ１０１４）。
【００４５】
そして、その一定期間内の更新件数が所定の上限値を超えていなかった場合（Ｓ１０１４；ＮＯ）、ホストコンピュータ１２は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う（Ｓ１０１１；ＮＯ）。一方、その一定期間内の更新件数が所定の上限値を超えていた場合（Ｓ１０１４；ＹＥＳ）、ホストコンピュータ１２は、動作モードが切り替えられてから所定時間が経過しているか否かを判別する（Ｓ１０１５）。
【００４６】
そして、動作モードが切り替えられてから所定時間が経過していなかった場合（Ｓ１０１５；ＮＯ）、ホストコンピュータ１２は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う（Ｓ１０１１；ＮＯ）。一方、動作モードが切り替えられてから所定時間が経過していた場合（Ｓ１０１５；ＹＥＳ）、ホストコンピュータ１２は、この逐次配布処理から離脱する。
【００４７】
なお、ステップＳ１０１１は、前述したデータ取得手段に相当し、このステップＳ１０１１を実行するホストコンピュータ１２の図示せぬＣＰＵは、前述したデータ取得部に相当している。また、ステップＳ１０１３乃至Ｓ１０１５は、前述した更新頻度判別手段に相当し、これらステップＳ１０１３乃至Ｓ１０１５を実行するホストコンピュータ１２の図示せぬＣＰＵは、前述した更新頻度判別部に相当している。また、ステップＳ１０１２並びにメッセージスプーラ１２２ｂは、前述した送信制御手段に相当し、これらステップＳ１０１２並びにメッセージスプーラ１２２ｂを実行するホストコンピュータ１２の図示せぬＣＰＵは、前述した送信制御部に相当している。
【００４８】
そして、逐次配布処理から離脱した後、ホストコンピュータ１２は、動作切替メッセージをメッセージキューに出力し（Ｓ１００２）、動作モードを一括配布モードへ移行して、一括配布処理を実行する（Ｓ１０２１〜Ｓ１０３５）。
【００４９】
また、ホストコンピュータ１２は、一括配布モードが初期設定されていた場合（Ｓ１００１；一括配布）にも、動作切替メッセージをメッセージキューに出力し（Ｓ１００２）、動作モードを一括配布モードへ移行して、一括配布処理を実行する（Ｓ１０２１〜Ｓ１０３５）。
【００５０】
その一括配布処理を具体的に説明すると、まず、ホストコンピュータ１２は、図示せぬＤＲＡＭに新規のバッチファイルを開く処理を行い（Ｓ１０２１）、その後、前述した更新ログファイルから一件分の差分データが取得できるようになるまで、待機する（Ｓ１０２２；ＮＯ）。
【００５１】
そして、前述した更新ログファイルに一件分の差分データを取得すると（Ｓ１０２２；ＹＥＳ）、ホストコンピュータ１２は、その差分データを、図示せぬＤＲＡＭに生成しておいたバッチファイルに追加記録し（Ｓ１０２３）、そのバッチファイルに記録されている差分データの件数が所定の上限値に到達しているか否かを、判別する（Ｓ１０２４）。
【００５２】
そして、図示せぬＤＲＡＭ上のバッチファイルに記録されている差分データの件数が所定の上限値に到達していた場合（Ｓ１０２４；ＹＥＳ）、ホストコンピュータ１２は、そのバッチファイルを閉じて（Ｓ１０２５）、通信負荷測定処理を実行する（Ｓ１０２６）。なお、その通信負荷処理は、ＬＡＮ上の単位時間当たりにＬＡＮ上を流れるデータ量，及び、ＳＡＮ上の単位時間当たりにＳＡＮ上を流れるデータ量を、回線負荷量として取得する処理となっている。具体的には、ホストコンピュータ１２は、ＬＡＮ上を流れるパケット等の履歴を記録するコンピュータに対し、単位時間当たりのデータ量を通知するよう要求して取得する処理，及び、ＳＡＮ上を流れるデータの履歴を記録するコンピュータに対し、ＳＡＮ上の単位時間当たりのデータ量（回線負荷量）を通知するよう要求して取得する処理を、行う。
【００５３】
続いて、ホストコンピュータ１２は、通信経路をＬＡＮとＳＡＮの何れかに決定する処理を行う（Ｓ１０２７）。具体的には、ホストコンピュータ１２は、ＬＡＮとＳＡＮとについて取得した回線負荷量を比較して、回線負荷量の低い方のネットワークを、バッチファイルの送信経路として決定する。
【００５４】
その後、ホストコンピュータ１２は、差分データの件数が所定の上限値に到達することによって閉じられた当該バッチファイルを、決定した送信経路を定義する情報に対応付けて、バッチファイルキューに出力し（Ｓ１０２８）、再度、新規バッチファイルを開く処理を行う（Ｓ１０２１）。
【００５５】
一方、図示せぬＤＲＡＭ上のバッチファイルに記録されている差分データの件数が所定の上限値に到達していた場合（Ｓ１０２５；ＮＯ）、ホストコンピュータ１２は、その時点から過去の一定期間内におけるマスターデータベース１１１についての更新件数（差分データ数）を取得し（Ｓ１０２９）、その一定期間内の更新件数が所定の上限値未満であるか否かを判別する（Ｓ１０３０）。
【００５６】
そして、その一定期間内の更新件数が所定の上限値を超えていた場合（Ｓ１０３０；ＮＯ）、ホストコンピュータ１２は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う（Ｓ１０２２；ＮＯ）。一方、その一定期間内の更新件数が所定の上限値未満であった場合（Ｓ１０３０；ＹＥＳ）、ホストコンピュータ１２は、動作モードが切り替えられてから所定時間が経過しているか否かを判別する（Ｓ１０３１）。
【００５７】
そして、動作モードが切り替えられてから所定時間が経過していなかった場合（Ｓ１０３１；ＮＯ）、ホストコンピュータ１２は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う（Ｓ１０２２；ＮＯ）。一方、動作モードが切り替えられてから所定時間が経過していた場合（Ｓ１０３１；ＹＥＳ）、ホストコンピュータ１２は、図示せぬＤＲＡＭ上のバッチファイルの末尾に動作切替メッセージを追加する処理を行い（Ｓ１０３２）、そのバッチファイルを閉じる（Ｓ１０３３）。
【００５８】
続いて、ホストコンピュータ１２は、この時点でバッチファイルキュー内の末尾に登録されているバッチファイルに対応付けられている送信経路定義情報を読み出し（Ｓ１０３４）、この送信経路定義情報と同じ送信経路情報を当該バッチファイルに対応付けて、当該バッチファイルをバッチファイルキューに出力する（Ｓ１０３５）。そして、この出力後、ホストコンピュータ１２は、この一括配布処理から離脱して、逐次配布処理を開始する（Ｓ１０１１〜Ｓ１０１５）。
【００５９】
なお、ステップＳ１０２２は、前述したデータ取得手段に相当し、このステップＳ１０２２を実行するホストコンピュータ１２の図示せぬＣＰＵは、前述したデータ取得部に相当している。また、ステップＳ１０２９乃至Ｓ１０３１は、前述した更新頻度判別手段に相当し、これらステップＳ１０２９乃至Ｓ１０３１を実行するホストコンピュータ１２の図示せぬＣＰＵは、前述した更新頻度判別部に相当している。また、ステップＳ１０２３乃至Ｓ１０２８並びにバッチファイルスプーラ１２２ｃは、前述した送信制御手段に相当し、これらステップＳ１０２３乃至Ｓ１０２８並びにバッチファイルスプーラ１２２ｃを実行するホストコンピュータ１２の図示せぬＣＰＵは、前述した送信制御部に相当している。
【００６０】
次に、サブシステム２０において実行される処理について説明する。
【００６１】
サブシステム２０のホストコンピュータ２２においては、主電源が投入されると、メッセージキュー管理プログラム２２２，及び、バッチファイルキュー管理プログラム２２３が起動され、メッセージキュー管理プロセス及びバッチファイルキュー管理プロセスが常駐するようになる。また、更新反映プログラム２２４も起動される。図４及び図５は、この更新反映プログラム２２４に従って図示せぬＣＰＵが実行する処理の流れを示す図である。
【００６２】
この処理の開始後、ホストコンピュータ２２（の図示せぬＣＰＵ）は、逐次取得処理を実行する（Ｓ２０１１〜Ｓ２０１３）。
【００６３】
その逐次取得処理を具体的に説明すると、まず、ホストコンピュータ２２は、図示せぬＤＲＡＭ上に生成されているメッセージキューに定期的にアクセスする処理をこの処理と並行して実行しており、そのメッセージキューから一件分のメッセージが読み込めるようになるまで、待機する（Ｓ２０１１；ＮＯ）。
【００６４】
そして、メッセージキューからメッセージを一件読み込むと（Ｓ２０１１；ＹＥＳ）、ホストコンピュータ２２は、そのメッセージが差分データであるか否かを、判別する（Ｓ２０１２）。
【００６５】
そして、そのメッセージが差分データであった場合（Ｓ２０１２）、ホストコンピュータ２２は、当該差分データをレプリカデータベース２１１に反映する処理を実行し（Ｓ２０１３）、再度、メッセージキューから次の一件分のメッセージが読み込めるようになるまで待機する（Ｓ２０１１；ＮＯ）。
【００６６】
一方、メッセージキューから読み込んだメッセージが差分データでなかった場合（Ｓ２０１２；ＮＯ）、ホストコンピュータ２２は、一括取得処理を実行する（Ｓ２０２１〜２０３０）。
【００６７】
一括取得処理を具体的に説明すると、まず、ホストコンピュータ２２は、図示せぬＤＲＡＭ上に生成されているバッチファイルキューに定期的にアクセスする処理をこの処理と並行して実行しており、そのバッチファイルキューからバッチファイルが一部読み込めるようになるまで待機する（Ｓ２０２１；ＮＯ）。
【００６８】
そして、バッチファイルキューからバッチファイルを一部読み込むと（Ｓ２０２１；ＹＥＳ）、ホストコンピュータ２２は、当該バッチファイルを開き（Ｓ２０２２）、当該バッチファイルのレコードの有無を判別する（Ｓ２０２３）。
【００６９】
そして、当該バッチファイルにレコードが無ければ（Ｓ２０２３；ＹＥＳ）、ホストコンピュータ２２は、当該バッチファイルを閉じて（Ｓ２０２４）、当該バッチファイルをバッチファイルキューから削除する処理を行って（Ｓ２０２５）、再度、バッチファイルキューからバッチファイルが一部読み込めるようになるまで待機する（Ｓ２０２１；ＮＯ）。
【００７０】
一方、当該バッチファイルにレコードが有れば（Ｓ２０２３；ＮＯ）、ホストコンピュータ２２は、当該バッチファイルからレコードを一件読み出し（Ｓ２０２６）、当該レコードが差分データであるか否かを判別する（Ｓ２０２７）。
【００７１】
そして、当該レコードが差分データであれば（Ｓ２０２７；ＹＥＳ）、ホストコンピュータ２２は、当該差分データをレプリカデータベース２１１に反映する処理を実行し（Ｓ２０２８）、再度、当該バッチファイルのレコードの有無を判別する（Ｓ２０２３）。
【００７２】
一方、当該レコードが差分データでなければ（Ｓ２０２７；ＮＯ）、ホストコンピュータ２２は、当該バッチファイルを閉じて（Ｓ２０２９）、当該バッチファイルをバッチファイルキューから削除する処理を行い（Ｓ２０３０）、逐次取得処理を実行する（Ｓ２０１１〜Ｓ２０１３）。
【００７３】
次に、本実施形態のデータベースシステムの作用及び効果について説明する。
【００７４】
まず、メインシステム１０のホストコンピュータ１２が起動されたときにおいて、動作モードの初期設定が、逐次配布モードであった場合には、差分データを一件取得するたびにメッセージキューにその差分データを出力する処理が行われる（Ｓ１００１；逐次配布，Ｓ１０１１〜Ｓ１０１３，Ｓ１０１４；ＮＯ）。このとき、差分データは、メッセージスプーラ１２２ｂとメッセージキュー管理プログラム２２２に基づくプロセスとにより、サブシステム２０のホストコンピュータ２２のメッセージキューに送られ、レプリカデータベース２１１の更新に利用される（Ｓ２０１１，Ｓ２０１２；ＹＥＳ，Ｓ２０１３）。
【００７５】
そして、メインシステム１０のホストコンピュータ１２は、逐次配布モードで動作している最中に（Ｓ１００１；逐次配布，Ｓ１０１１〜Ｓ１０１３，Ｓ１０１４；ＮＯ）、更新頻度（一定期間での差分データの発生件数）が所定上限値を超えたと判断すると、メッセージスプーラ１２２ｂとメッセージキュー管理プログラム２２２に基づくプロセスとを通じて、動作切替メッセージを、サブシステム２０のホストコンピュータのメッセージキューに出力し（Ｓ１０１４；ＹＥＳ，Ｓ１０１５；ＹＥＳ，Ｓ１００２）、一括配布モードへ移行する。その後、メインシステム１０のホストコンピュータ１２は、バッチファイルの生成を開始し（Ｓ１０２１〜Ｓ１０２３，Ｓ１０２４；ＮＯ，Ｓ１０２９，Ｓ１０３０；ＮＯ）、バッチファイル内の件数が上限値に到達するたびにバッチファイルキューにバッチファイルを出力する処理を行う（Ｓ１０２１〜Ｓ１０２３，Ｓ１０２４；ＹＥＳ，Ｓ１０２５〜Ｓ１０２８）。このとき、バッチファイルは、バッチファイルスプーラ１２２ｃとバッチファイルキュー管理プログラム２２３に基づくプロセスとにより、サブシステム２０のホストコンピュータ２２のメッセージキューに送られ、レプリカデータベース２１１の更新に利用される（Ｓ２０２１〜Ｓ２０２６，Ｓ２０２７；ＹＥＳ，Ｓ２０２８）。
【００７６】
一方、サブシステム２０のホストコンピュータ２２は、メインシステム１０のホストコンピュータ１２が一括配布モードに移行した後も、レプリカデータベース２１１のレコードを一件ずつ更新する処理を継続し（Ｓ２０１１，Ｓ２０１２；ＹＥＳ，Ｓ２０１３）、メッセージキューに溜まっている全ての差分データについてこの更新処理を終えてから、動作切替メッセージを検出して（Ｓ２０１２；ＮＯ）、バッチファイルを用いたレプリカデータベース２１１の更新処理（一括取得処理）の実行を開始する（Ｓ２０２１，Ｓ２０２２，Ｓ２０２３；ＮＯ，Ｓ２０２６，Ｓ２０２７；ＹＥＳ，Ｓ２０２８）。
【００７７】
そして、メインシステム１０のホストコンピュータ１２は、一括配布モードで動作している最中に（Ｓ１０２１〜Ｓ１０２９，Ｓ１０３０；ＮＯ）、更新頻度（一定期間での差分データの発生件数）が所定上限値に満たないと判断すると、その時点で開いているバッチファイルの末尾に動作切替メッセージを組み込み、そのバッチファイルを、バッチファイルスプーラ１２２ｃとバッチファイルキュー管理プログラム２２３に基づくプロセスとを通じて、サブシステム２０のホストコンピュータのメッセージキューに出力し（Ｓ１０３０；ＹＥＳ，Ｓ１０３１；ＹＥＳ，Ｓ１０３２〜Ｓ１０３５）、逐次配布モードへ移行する。その後、メインシステム１０のホストコンピュータ１２は、差分データを一件取得するたびにメッセージキューにその差分データを出力する処理を、再開する（Ｓ１００１；逐次配布，Ｓ１０１１〜Ｓ１０１３，Ｓ１０１４；ＮＯ）。
【００７８】
一方、サブシステム２０のホストコンピュータ２２は、メインシステム１０のホストコンピュータ１２が逐次配布モードに移行した後も、バッチファイル内の差分データでレプリカデータベース２１１を更新する処理を継続し（Ｓ２０２１，Ｓ２０２２，Ｓ２０２３；ＮＯ，Ｓ２０２６，Ｓ２０２７；ＹＥＳ，Ｓ２０２８）、バッチファイルキューに溜まっている全てのバッチファイルについてレプリカデータベース２１１の更新処理を終えから、最後のバッチファイルの末尾にある動作切替メッセージを検出して（Ｓ２０２７；ＮＯ，Ｓ２０２９，Ｓ２０３０）、一つの差分データごとにレプリカデータベース２１１を更新する処理（逐次取得処理）の実行を、再開する（Ｓ２０１１，Ｓ２０１２；ＹＥＳ，Ｓ２０１３）。
【００７９】
このように、レプリケーションプログラム１２２ａを実行したホストコンピュータ１２は、マスターデータベース１１１についてなされた更新の頻度が高いときには、一定期間溜め込んでおいた差分データを纏めてサブシステム２０へ送信し、マスターデータベース１１１についてなされた更新の頻度が低いときには、差分データが一つ生成されるたびに、その差分データをサブシステム２０へ送信する。
【００８０】
換言すると、レプリケーションプログラム１２２ａを実行したホストコンピュータによれば、マスターデータベース１１１についてなされた更新の頻度が高いときには、一括配布方式でレプリカデータベース２１１が更新され、マスターデータベース１１１についてなされた更新の頻度が低いときには、逐次配布方式でレプリカデータベース２１１が更新されることとなる。
【００８１】
この結果、長期間に少量のレコードを更新するような利用状況においては、マスターデータベース１１１の一つのレコードについて更新があるごとにレプリカデータベース２１１のレコードが一つずつ更新されることによって、マスターデータベース１１１の更新とレプリカデータベース２１１の更新との間の時間的なズレが低下することとなる。また、短期間に大量のレコードを更新するような利用状況においては、マスターデータベース１１１の所定量のレコードについて行われた更新がレプリカデータベース２１１における対応するレコードについて一度に行われることによって、データを送信する際の要求信号と応答信号が頻発することによる遅配が抑えられるので、やはり、マスターデータベース１１１の更新とレプリカデータベース２１１の更新との間の時間的なズレが低下されることとなる。
【００８２】
なお、メインシステム１０のホストコンピュータ１２において、動作モードの初期設定が一括配布モードであった場合、起動直後には、動作切替メッセージが、メッセージキューを介してサブシステム２０のホストコンピュータ２２へ送られる（Ｓ１００１；一括配布，Ｓ１００２）。このため、サブシステム２０のホストコンピュータ２２は、図４及び図５の処理の開始後、逐次取得処理を開始するようになってはいるものの、メッセージキュー内の動作切替メッセージを検出して、直ちに、一括取得処理を開始するので、更新反映プログラム２２４がこのように構成されていても問題ない。
【００８３】
また、前述した本実施形態のデータベースシステムにおいては、メインシステム１０は一つのサブシステム２０に接続されている例を説明したが、これに限定されるものではない。すなわち、サブシステム２０（つまり、レプリカデータベース２１１）が複数存在していても構わない。このようにサブシステム２０が複数存在する場合には、メインシステム１０のホストコンピュータ１２は、差分データ又はバッチファイルを各サブシステム２０へ送信することとなる。
【００８４】
また、前述した本実施形態のデータベースシステムにおいては、メインシステム１０とサブシステム２０とがＬＡＮ及びＳＡＮにて接続される例を説明したが、これに限定されるものではない。例えば、ＷＡＮ［Wide Area Network］やＮＡＳ［Network Attached Storage］などの他のプロトコルに従った通信手段によって接続されていても良い。何れにしても、メインシステム１０とサブシステム２０とが複数の通信手段（ネットワーク）を介して接続されていると良い。そして、バッチファイルがメインシステム１０からサブシステム２０へ送信される際には、最も回線負荷の低い通信手段が選択されることが望ましい。こうすれば、バッチファイルを効率よくサブシステム２０へ配布することができることとなる。
【００８５】
（付記１）
コンピュータを、
マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段，
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段，
前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段
として機能させる
ことを特徴とするレプリケーションプログラム。
【００８６】
（付記２）
前記送信制御手段は、前記レプリカデータベースを更新するためのシステムに対して異なる２以上の通信手段を介して前記通信装置が接続されている場合において、前記ファイルを当該システムへ送信するときには、通信負荷の軽い方の通信手段を介して前記ファイルを当該システムへ送信する
ことを特徴とする付記１記載のレプリケーションプログラム。
【００８７】
（付記３）
前記通信手段の一つは、ＬＡＮである
ことを特徴とする付記２記載のレプリケーションプログラム。
【００８８】
（付記４）
前記通信手段の一つは、ＳＡＮである
ことを特徴とする付記２記載のレプリケーションプログラム。
【００８９】
（付記５）
前記送信制御手段は、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っているか否かを判断する処理を、その処理と同じ処理をその直前に行った後から所定の一定期間が経過した以後に、実行する
ことを特徴とする付記１乃至４の何れかに記載のレプリケーションプログラム。
【００９０】
（付記６）
マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、
前記メインシステムは、
前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得部，
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部，
前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、そのファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部
を備え、
前記サブシステムは、
前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する
ことを特徴とするデータベースシステム。
【００９１】
（付記７）
コンピュータを、
マスターデータベースを含むメインシステムから、前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データ，及び、前記マスターデータベースについて一定期間になされた更新の差分データを格納したファイルを、所定の通信装置を介して受信する受信手段，及び、
前記受信手段が前記差分データ及び前記ファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する反映手段
として機能させる
ことを特徴とする更新反映プログラム。
【図面の簡単な説明】
【００９２】
【図１】本実施形態のデータベースシステムの構成図
【図２】レプリケーションプログラムに従ってＣＰＵが実行する処理の流れを示す図
【図３】レプリケーションプログラムに従ってＣＰＵが実行する処理の流れを示す図
【図４】更新反映プログラムに従ってＣＰＵが実行する処理の流れを示す図
【図５】更新反映プログラムに従ってＣＰＵが実行する処理の流れを示す図
【符号の説明】
【００９３】
１０      メインシステム
１１      ストレージ装置
１１１    マスターデータベース
１２      ホストコンピュータ
１２１    データベースプログラム
１２２    データベース管理ソフトウエア
１２２ａ  レプリケーションプログラム
１２２ｂ  メッセージスプーラ
１２２ｃ  バッチファイルスプーラ
２０      サブシステム
２１      ストレージ装置
２１１    レプリカデータベース
２２      ホストコンピュータ
２２１    データベースプログラム
２２２    メッセージキュー管理プログラム
２２３    バッチファイルキュー管理プログラム
２２４    更新反映プログラム
【図１】
2006318020.tif 000003
【図２】
2006318020.tif 000004
【図３】
2006318020.tif 000005
【図４】
2006318020.tif 000006
【図５】
2006318020.tif 000007