(57)【特許請求の範囲】
【請求項１】
更新により追加されるレコードがデータ変換前に格納される更新領域と、更新領域に格納されたレコードがデータ変換後に格納される参照領域とを有し、参照領域に移管されたレコードは更新領域から削除される第一のデータベースを備え、
前記第一のデータベースの更新領域及び参照領域に対応する更新領域及び参照領域を有し、前記第一のデータベースと同期をとる第二のデータベースに、
接続されているデータ管理装置であって、
前記第二のデータベースが前記第一のデータベースと完全同期をとる必要があるか否かを判定し、完全同期をとる必要がある場合に、前記第一のデータベースと前記第二のデータベースの更新領域においてレコードの差異が存在するか否かを判定し、更新領域においてレコードの差異が存在する場合に、前記第一のデータベースの更新領域から差分のレコードを取得する差異判定部と、
前記差異判定部により取得されたレコードを前記第二のデータベースに対して出力する出力部とを有することを特徴とするデータ管理装置。
【請求項２】
前記差異判定部は、
前記第一のデータベースと前記第二のデータベースの更新領域におけるレコードの差異を判定するとともに、前記第一のデータベースと前記第二のデータベースの参照領域においてレコードの差異が存在するか否かを判定し、参照領域においてレコードの差異が存在する場合に、前記第一のデータベースの参照領域から差分のレコードを取得することを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記差異判定部は、
前記第二のデータベースが前記第一のデータベースと完全同期をとる必要がない場合に、前記第一のデータベースと前記第二のデータベースの参照領域においてレコードの差異が存在するか否かを判定し、参照領域においてレコードの差異が存在する場合に、前記第一のデータベースの参照領域から差分のレコードを取得することを特徴とする請求項１に記載のデータ管理装置。
【請求項４】
前記差異判定部は、
前記第二のデータベースが前記第一のデータベースと完全同期をとる必要がない場合に、前記第一のデータベースの更新領域に格納されているレコードがデータ変換後に参照領域に移管された後に、前記第一のデータベースの参照領域から当該移管後のレコードを取得することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
前記データ管理装置は、更に、
前記第一のデータベースの更新領域及び参照領域に格納されている総レコード数と、前記第一のデータベースの更新領域に格納されているレコード数と、前記第一のデータベースの参照領域に格納されているレコード数を通知する第一のデータベース状態通知部と、
前記第二のデータベースの更新領域及び参照領域に格納されている総レコード数と、前記第二のデータベースに格納されている更新領域のレコード数と、前記第二のデータベースの参照領域に格納されているレコード数を通知する第二のデータベース状態通知部とを有し、
前記差異判定部は、
前記第一のデータベース状態通知部からの通知内容と前記第二のデータベース状態通知部からの通知内容とに基づき、前記第一のデータベースと前記第二のデータベースにおけるレコードの差異を判定することを特徴とする請求項１に記載のデータ管理装置。
【請求項６】
前記データ管理装置は、更に、
前記差異判定部により取得された差分のレコードのデータ量が、前記第二のデータベースの処理単位のデータ量以上である場合に、前記差異判定部により取得された差分のレコードを前記第二のデータベースの処理単位のデータに分割し、処理単位のデータごとに前記第二のデータベースに対して出力する差分分割部を有することを特徴とする請求項１に記載のデータ管理装置。
【請求項７】
前記差分分割部は、
前記第二のデータベースに対して処理単位のデータを出力する度に、一定期間出力を休止した後に、後続のデータを出力することを特徴とする請求項６に記載のデータ管理装置。
【請求項８】
更新により追加されるレコードがデータ変換前に格納される更新領域と、更新領域に格納されたレコードがデータ変換後に格納される参照領域とを有し、参照領域に移管されたレコードは更新領域から削除される第一のデータベースと、
前記第一のデータベースの更新領域及び参照領域に対応する更新領域及び参照領域を有し、前記第一のデータベースと同期をとる第二のデータベースとを、
管理するデータ管理方法であって、
前記第二のデータベースが前記第一のデータベースと完全同期をとる必要があるか否かを判定し、完全同期をとる必要がある場合に、前記第一のデータベースと前記第二のデータベースの更新領域においてレコードの差異が存在するか否かを判定し、更新領域においてレコードの差異が存在する場合に、前記第一のデータベースの更新領域から差分のレコードを取得する差異判定ステップと、
前記差異判定ステップにより取得されたレコードを前記第二のデータベースに対して出力する出力ステップとを有することを特徴とするデータ管理方法。
【請求項９】
更新により追加されるレコードがデータ変換前に格納される更新領域と、更新領域に格納されたレコードがデータ変換後に格納される参照領域とを有し、参照領域に移管されたレコードは更新領域から削除される第一のデータベースを備え、
前記第一のデータベースの更新領域及び参照領域に対応する更新領域及び参照領域を有し、前記第一のデータベースと同期をとる第二のデータベースに、
接続されているコンピュータに、
前記第一のデータベースと前記第二のデータベースにおけるレコードの差異を判定し、前記第一のデータベースと前記第二のデータベースにおけるレコードの差異が参照領域に格納されているレコードの差異である場合に、前記第一のデータベースの参照領域から差分のレコードを取得する差異判定処理と、
前記差異判定処理により取得されたレコードを前記第二のデータベースに対して出力する出力処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベース間でデータの内容を同一にするデータの同期方法に係り、効率的でかつデータベース利用を妨げないデータ配布を実現するデータベースリプリケーションに関する。
【背景技術】
【０００２】
本発明に係るデータベースは、特開２００１−１０１０４１号公報および特開２００６−４３０４号公報で記される、圧縮処理およびデータ構造の変更等のデータ変換を行う前の更新領域と、データ変換を行った後の更新不可能な参照領域を持つデータベースである。
本発明では上記特徴のデータベースを追記型データベースと呼ぶ。
【０００３】
従来の異なるデータベースの内容を同一にするデータベースリプリケーションにおいて、更新されたレコードをレコード単位で送信することによって、データの内容を一致させていた（例えば、特許文献１）。
また、同期のタイミングはファイルが更新されるタイミングで更新ページを配布する方法も提案されている（例えば、特許文献２）。
【特許文献１】特開２０００−３５９１１号公報
【特許文献２】特開２００２−２７８８２０号公報
【特許文献３】特開２００１−１０１０４１号公報
【特許文献４】特開２００６−４３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の同期法は、特許文献１で示されるように更新されるレコード単位で差分データを送信するため、頻繁にデータ送信が発生しネットワーク負荷や同期処理のオーバヘッドが増えて同期処理の効率が低下するという問題点があった。
また、更新領域はアクセス効率の向上やデータサイズの圧縮等を行う前の状態であるため、配布処理においても参照領域に比べ転送効率が悪いと言う問題があった。
【０００５】
また、１回のロードで蓄積するデータサイズが大きい場合、差分データ量も増加し全ての差分データを特許文献２で示されるようにデータの検索処理を考慮しない区切りで配布すると、全ての差分データの配布が完了するまで連続排他時間もしくは連続高負荷状態が長くなると言う問題があった。
【０００６】
この発明は、このような従来技術の課題に対応することを主な目的としており、異なるデータベース間で同期を取る際、効率的なデータ配布を可能とするデータ管理技術を提供することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ管理装置は、
更新により追加されるレコードがデータ変換前に格納される更新領域と、更新領域に格納されたレコードがデータ変換後に格納される参照領域とを有し、参照領域に移管されたレコードは更新領域から削除される第一のデータベースを備え、
前記第一のデータベースの更新領域及び参照領域に対応する更新領域及び参照領域を有し、前記第一のデータベースと同期をとる第二のデータベースに、
接続されているデータ管理装置であって、
前記第一のデータベースと前記第二のデータベースにおけるレコードの差異を判定し、前記第一のデータベースと前記第二のデータベースにおけるレコードの差異が参照領域に格納されているレコードの差異である場合に、前記第一のデータベースの参照領域から差分のレコードを取得する差異判定部と、
前記差異判定部により取得されたレコードを前記第二のデータベースに対して出力する出力部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、第一のデータベースと第二のデータベースにおけるレコードの差異が参照領域のレコードの差異である場合のみ、差分のレコードとして参照領域のレコードを第二のデータベースに出力するようにしているので、更新領域のレコードは差分レコードとして送信されず、小さな単位の送信が多数発生することなく効率的な同期処理を行うことができる。
さらに、データ変換後のアクセス効率が良い参照領域のレコードのみ送信を行い、更新領域のレコードを複数回の同期に渡り重複して送信することが無いため、差分レコードの配布時間を最小限にすることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本実施の形態に係るデータベースシステムの一例を示す構成図である。
図１において、データ管理装置１は、データを格納するデータベース５、データ処理を行うための一次記憶装置であるメモリ６、データ処理を行う演算装置７を備えるサーバである。
端末装置２は、データ管理装置１に対してデータのロードや検索を要求するユーザの操作端末である。
ネットワーク３は、データ管理装置１と端末装置２をつなぐＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
データベース５は追記型データベースである。
データ管理装置１にはデータを保存するバックアップ装置４が接続されていても良い。
ネットワーク３はＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でも良い。データ管理装置はネットワーク３により複数台接続されている。
図１において、データ管理装置１ａが備えるデータベース５ａはマスタデータベースである。マスタデータベース５ａは、第一のデータベースの例である。
データ管理装置１ｂが備えるデータベース５ｂはレプリカデータベースであり、マスタデータベース５ａのレプリカとなる。レプリカデータベース５ｂは、第二のデータベースの例である。
本実施の形態では、データベースのデータ同期においてデータ管理装置１ａが同期元となり、データ管理装置１ｂは同期先となる。
【００１０】
図７は、本実施の形態の前提となる追記型データベースに格納されるデータの流れを示す図である。
端末装置２は、データ管理装置１に対してデータのロード処理およびデータ検索処理の要求を出す。
データ管理装置１はデータロード処理部２０、データ検索処理部２１、データアクセス制御部２２、データ変換処理部２３、データ格納領域部５からなる。
データ格納領域部５は更新領域１０、参照領域１１からなる。更新領域１０は一時ページセット１２からなり、参照領域１１は主ページセット１３からなる。
【００１１】
追記型データベースでは、新規にロードするデータについては、データの削除・更新や内部構造の変更が可能なように更新領域１０に格納する。そして、更新領域１０のデータが特定の量を超えた場合もしくは特定期間が過ぎた場合、更新領域１０のデータを参照領域１１に移行する。移行の際に、データをまとめて内部構造の変更や圧縮を行うなどして更新不可能とする代わりに、データのアクセス効率の向上やディスクスペースの削減の効果を得る。また、更新領域１０のデータを一度参照領域１１に移行すれば、参照領域のデータは二度と変更されることが無いことが保証される。
【００１２】
図２は、本実施の形態に係るデータ同期制御部を備えるデータ管理装置におけるデータの流れを示す図である。
データ管理装置１ａはデータロード処理部２０、データアクセス制御部２２、データ変換処理部２３、領域監視部２４、領域差分生成部２５、領域差分テーブル２７、領域差分テーブル管理部２９、データ格納領域部５ａからなる。
端末装置２ａはデータ管理装置１ａに接続される。
データ管理装置１ｂはデータ検索処理部２１、データアクセス制御部２２、領域差分配布部２６、データ格納領域部５ｂからなる。
データ格納領域部５ａ、５ｂは更新領域１０、参照領域１１からなる。更新領域１０は一時ページセット１２からなり、参照領域１１は主ページセット１３からなる。
つまり、二つのデータ管理装置１ａ及び１ｂが備えるデータ格納領域部５ａ、５ｂは、それぞれ、更新により追加されるレコードがデータ変換前に一時ページとして格納される更新領域１０と、更新領域１０に格納されたレコードがデータ変換後に主ページとして格納される参照領域１１とを有し、参照領域１１に移管された一時ページは更新領域１０から削除される。そして、一時ページから主ページへの変換は、データ変換処理部２３により行われる。
なお、ページとレコードの関係は、所定の複数個のレコードの集合がページである。つまり、ページとは複数個のレコードを一括して管理するための単位である。
【００１３】
検索するデータについては、更新領域１０と参照領域１１それぞれに格納されるデータを同時に取得することで全ての格納されるデータを検索する。
【００１４】
端末装置２ａは主にデータロード処理を行うために用いられ、端末装置２ｂは主にデータ検索処理を行うために用いられる。データ格納領域部５ａは通常マスタデータベースであり、データ格納領域部５ｂは通常レプリカデータベースである。
【００１５】
本実施の形態では、データ管理装置１ａにおいてデータロード処理により更新された領域を、データ管理装置１ｂに配布することによりデータの同期を行う例を示す。
データ管理装置１ａにおいてデータ検索処理部２１、領域差分配布部２６を備えても良い。データ管理装置１ｂにおいてデータロード処理部２０、データ変換処理部２３、領域監視部２４、領域差分生成部２５、領域差分テーブル２７を備えてもよい。
【００１６】
図２において、データロード処理部２０は、端末装置２ａからの指示に基づいて、新規なデータをロードする処理を行う。
データアクセス制御部２２は、データ格納領域部５に対するデータアクセスを行う。
データ変換処理部２３は、一時ページから主ページへのデータ変換を行う。データ変換内容は、前述の通り、データの内部構造の変更や圧縮である。
【００１７】
領域監視部２４は、データアクセス制御部２２への問合せにより、データ格納領域部５ａ（第一のデータベース）の更新領域１０及び参照領域１１に格納されている総レコード数と、更新領域１０に格納されている一時ページ数（レコード数）と、参照領域１１に格納されている主ページ数（レコード数）の情報を得て、この総レコード数と一時ページ数と主ページ数の情報を領域差分生成部２５に通知する。領域監視部２４は、第一のデータベース状態通知部の例である。
【００１８】
領域差分生成部２５は、データ格納領域部５ａ（第一のデータベース）とデータ格納領域部５ｂ（第二のデータベース）におけるレコードの差異を判定し、データ格納領域部５ａとデータ格納領域部５ｂにおけるレコードの差異が参照領域１１に格納されているレコードの差異である場合に、データ格納領域部５ａの参照領域１１から差分のレコードを取得し、取得した差分のレコードをデータ管理装置１ｂの領域差分配布部２６に差分データとして出力する。また、領域差分生成部２５は、レコードの差異が更新領域１０に格納されている一時ページの差異である場合に、更新領域１０に格納されている一時ページがデータ変換後に参照領域１１に移管された後に、参照領域１１から当該移管後の主ページを取得し、領域差分配布部２６に出力する。
また、領域差分生成部２５は、データ格納領域部５ｂがデータ格納領域部５ａと完全同期をとる必要があるか否かを判定し、完全同期をとる必要がある場合に、データ格納領域部５ａとデータ格納領域部５ｂの更新領域においてレコードの差異が存在するか否かを判定し、更新領域においてレコードの差異が存在する場合に、データ格納領域部５ａの更新領域から差分のレコードを取得し、取得した一時ページを差分データとして領域差分配布部２６に出力する。
領域差分生成部２５は、差異判定部と出力部の例である。
【００１９】
領域差分配布部２６は、領域差分生成部２５より差分データ（一時ページ又は主ページ）を受信し、受信した差分データをデータアクセス制御部２２に渡して、データ格納領域部５ｂの更新領域１０又は参照領域１１に差分データを反映させる。
また、データ検索処理部２１は、端末装置２ｂからの検索指示をデータアクセス制御部２２に通知するとともに、データアクセス制御部２２により検索されたデータを端末装置２ｂに渡す。
【００２０】
領域差分テーブル管理部２９は、データ格納領域部５ｂ（第二のデータベースの）の更新領域１０及び参照領域１１に格納されている総レコード数と、データ格納領域部５ｂの更新領域１０の一時ページ数（レコード数）と、データ格納領域部５ｂの参照領域１１に格納されている主ページ数（レコード数）を格納している領域差分テーブル２７を管理し、データ格納領域部５ａとデータ格納領域部５ｂ間で同期を取る際に、領域差分生成部２５に、データ格納領域部５ｂの総レコード数、一時ページ数、主ページ数を通知する。領域差分テーブル管理部２９は、第二のデータベース状態通知部の例である。
【００２１】
図３は、領域差分テーブル２７の構造を示す図である。
領域差分テーブル２７は、データベース名３０、一時ページ数３１、主ページ数３２、レコード数３３からなるレコードのリストからなる。
データベース名３０は同期の対象となるレプリカデータベースの名前を示し、一時ページ数３１はレプリカデータベースの更新領域１０を構成する一時ページ１２の数を示し、主ページ数３２はレプリカデータベースの参照領域１１を構成する主ページ１３の数を示し、レコード数３３はレプリカデータベースのデータ格納領域部に格納されるレコードの総数（更新領域にあるレコードと参照領域にあるレコードの総数）を示す。
【００２２】
また、図２において、新規にロードするデータは、端末装置２ａよりデータ管理装置１ａに渡され、データアクセス制御部２２を介してデータ格納領域部５ａの更新領域１０に格納する。
そして、更新領域１０のデータが特定の量を超えた場合もしくは特定期間が過ぎた場合、データ変換処理部２３により更新領域１０のデータを参照領域１１に移行する。移行の際に、データをまとめて内部構造の変更や圧縮を行う。
【００２３】
データ同期制御部８はユーザの操作により起動しても良いし、一定間隔の時間でスケジュールされたプログラムにより起動しても良いし、データロード処理部２０の終了後に起動しても良いし、データ変換処理部２３の終了後に起動しても良い。
データ同期制御部８によりデータ格納領域部５ａに格納さているデータとデータ格納領域部５ｂに格納されているデータの差分を生成し、配布することでデータ格納領域部５ａと５ｂのデータの同期を取る。
検索するデータについては、データ格納領域部５ｂを構成する更新領域１０と参照領域１１それぞれに格納されるデータを同時に取得することで全ての格納されるデータを検索する。
【００２４】
次に動作について説明する。
図４は、データ同期制御部８の動作を説明するためのフローチャートである。
図２に示すデータ同期制御部８において、領域監視部２４がデータアクセス制御部２２に問い合わせることによりデータ格納領域部５ａに格納されている領域情報を取得するとともに、領域差分生成部２５に出力し、領域差分生成部２５が領域情報を得る（Ｓ１１）。領域情報とは、データ格納領域部５ａの総レコード数と一時ページ数と主ページ数が示された情報である。
次に、領域差分生成部２５が、領域差分テーブル管理部２９から領域差分テーブル２７の領域差分情報を得る（Ｓ１２）。領域差分情報とは、領域差分テーブル２７に格納されている、データ格納領域部５ｂの総レコード数と一時ページ数と主ページ数が示された情報である。
次に、領域差分生成部２５は、領域情報と領域差分情報を比較し、レコード数が同じであるか否かを判断する（Ｓ１３）（差異判定ステップ）。レコード数が同じである場合は、データ格納領域部５ａとデータ格納領域部５ｂとの間でデータが一致しているため、領域差分生成部２５は処理を終了する。
同じでない場合は、領域差分生成部２５は、Ｓ１４に進み、完全同期を行うモードでデータ同期制御部８が起動されたかをチェックする（Ｓ１４）（差異判定ステップ）。
完全同期を行うモードで起動されている場合は、領域差分生成部２５はＳ１５に進み、そうでない場合はＳ１６に進む。
次に、完全同期モードの場合は、領域差分生成部２５は、データアクセス制御部２２に問い合わせて、データ格納領域部５ａに格納される更新領域１０を構成する一時ページ１２のレコード全てを得て差分データとする（Ｓ１５）（差異判定ステップ）。
次に、領域差分生成部２５は、領域情報と領域差分情報を比較し、主ページ数が同じであるか否かを判断する（Ｓ１６）（差異判定ステップ）。
領域差分生成部２５は、主ページ数３２が同じである場合はＳ１８に進み、同じでない場合はＳ１７に進む。
主ページ数が同じでない場合は、領域差分生成部２５は、データアクセス制御部２２に問い合わせて、データ格納領域部５ａに格納される参照領域１１を構成する主ページ１３について、領域情報と領域差分情報の主ページ数３２の差のページ数分ページ番号が大きい主ページを得て差分データする（Ｓ１７）（差異判定ステップ）。つまり、領域情報と領域差分情報における主ページ数３２の差と同じページ数の主ページを新しい順にデータ格納領域部５ａから取得することで、データ格納領域部５ｂに未格納の主ページを取得する。
次に、領域差分生成部２５は、差分データをデータ管理装置１ａから送信し、データ管理装置１ｂの領域差分配布部２６が差分データを受信する（Ｓ１８）（出力ステップ）。
送受信の方法はネットワーク経由でパイプを使っても良いしソケットを使っても良いし共有ディスクを経由しても良い。
次に、データ管理装置１ｂでは、領域差分配布部２６が、受信した差分データをデータアクセス制御部２２に問い合わせてデータ格納領域部５ｂに格納する（Ｓ１９）。
最後に、領域差分生成部２５が、反映済みの一時ページ数、主ページ数、レコード数で領域差分テーブルを更新する（Ｓ２０）。
【００２５】
しばしばＳ１１からＳ１７の間、データ格納領域部５ａのアクセスの排他制御を行い、データロード処理部２０の動作をエラーとするかもしくは待ち状態とすることがある。
また、Ｓ１９の処理の間、データ格納領域部５ｂのアクセスの排他制御を行い、データ検索処理部２１の動作をエラーとするかもしくは待ち状態とすることがある。
【００２６】
以上のように、マスタデータベース側において更新領域のデータが参照領域に追加されるまで更新領域のデータを差分データとしないようにしているので、小さな単位の送信が多数発生することなく効率的な同期処理を行うことができる。
さらに、データ圧縮等を行った後のアクセス効率が良いデータのみ送信を行い、更新領域のデータを複数回の同期に渡り重複して送信することが無いため、差分データの配布時間を最小限にすることができる。
また、転送効率よりも全ての追加データを対象とする完全な同期を優先させる場合には、更新領域のデータも配布可能としている。
【００２７】
以上のように、本実施の形態では、データベースのデータ格納領域として、データの追加を許可する更新領域とデータの参照だけを許可する参照領域をもち、更新領域のデータは参照領域に追加され、参照領域へ追加されたデータは更新領域から削除されるデータ格納手段を備えたデータ管理装置において、領域のデータの変化を監視する領域監視手段と、領域の差分部分を抜き出す領域差分生成手段と、領域の差分情報を格納する領域差分テーブルを備えたデータ同期制御手段と、差分データを別のデータベースに反映させる領域差分配布手段を備えたデータ管理装置について説明した。
【００２８】
また、前記データ同期制御管理手段は、前記領域差分監視手段により更新領域のデータが参照領域に追加されたことを識別し、領域差分生成手段が参照領域のみから差分データを抜き出すデータ管理装置について説明した。
【００２９】
また、前記データ同期制御管理手段は、前記領域差分監視手段により領域の更新を識別し、領域差分生成手段が更新領域と参照領域から差分データを抜き出すデータ管理装置について説明した。
【００３０】
実施の形態２．
以上の実施の形態１では、差分データをある程度まとまってから配布し転送効率を向上するようにしたものであるが、次に差分データが大量となった場合に適切な切れ目で分割して配布する実施の形態を示す。
【００３１】
図５は、このような場合のデータの流れを示す図である。
データ管理装置１ａは、データロード処理部２０、データアクセス制御部２２、データ変換処理部２３、領域監視部２４、領域差分生成部２５、領域差分テーブル２７、差分分割部２８、領域差分テーブル管理部２９、データ格納領域部５ａからなる。
端末装置２ａは、データ管理装置１ａに接続される。
データ管理装置１ｂは、データ検索処理部２１、データアクセス制御部２２、領域差分配布部２６、データ格納領域部５ｂからなる。
データ格納領域部５ａ、５ｂは更新領域１０、参照領域１１からなる。更新領域１０は一時ページセット１２からなり、参照領域１１は主ページセット１３からなる。
【００３２】
図５では、図２と比較して、データ管理装置１ａにおいて差分分割部２８が追加されている。
差分分割部２８は、領域差分生成部２５（差異判定部）により取得された差分データのデータ量が、データ格納領域部５ｂ（第二のデータベース）の処理単位のデータ量以上である場合に、領域差分生成部２５により取得された差分データをデータ格納領域部５ｂの処理単位のデータに分割し、処理単位のデータごとにデータ格納領域部５ｂに対して出力する。
また、後述するように、差分分割部２８は、データ格納領域部５ｂに対して処理単位のデータを出力する度に、一定期間出力を休止した後に、後続のデータを出力する。
【００３３】
本実施の形態では、データ管理装置１ａにおいてデータロード処理により更新された領域を、データ管理装置１ｂに配布することによりデータの同期を行う例を示す。データ管理装置１ａにおいてデータ検索処理部２１、領域差分配布部２６を備えても良い。データ管理装置１ｂにおいてデータロード処理部２０、データ変換処理部２３、領域監視部２４、領域差分生成部２５、領域差分テーブル２７、差分分割部２８を備えてもよい。
【００３４】
端末装置２ａは主にデータロード処理を行うために用いられ、端末装置２ｂは主にデータ検索処理を行うために用いられる。データ格納領域部５ａは通常マスタデータベースであり、データ格納領域部５ｂは通常レプリカデータベースである。
【００３５】
図５において、新規にロードするデータは、端末装置２ａよりデータ管理装置１ａに渡され、データアクセス制御部２２を介してデータ格納領域部５ａの更新領域１０に格納する。そして、更新領域１０のデータが特定の量を超えた場合もしくは特定期間が過ぎた場合、データ変換処理部２３により更新領域１０のデータを参照領域１１に移行する。移行の際に、データをまとめて内部構造の変更や圧縮を行う。
【００３６】
データ同期制御部８はユーザの操作により起動しても良いし、一定間隔の時間でスケジュールされたプログラムにより起動しても良いし、データロード処理部２０の終了後に起動しても良いし、データ変換処理部２３の終了後に起動しても良い。データ同期制御部８によりデータ格納領域部５ａに格納さているデータとデータ格納領域部５ｂに格納されているデータの差分を生成し、配布することでデータ格納領域部５ａと５ｂのデータの同期を取る。
検索するデータについては、データ格納領域部５ｂを構成する更新領域１０と参照領域１１それぞれに格納されるデータを同時に取得することで全ての格納されるデータを検索する。
【００３７】
次に動作について説明する。
図６はデータ同期制御部８の動作を説明するためのフローチャートである。
図６に示すＳ１１〜Ｓ１７の処理は、図４に示すＳ１１〜Ｓ１７と同様の処理である。
【００３８】
図６において、領域監視部２４がデータアクセス制御部２２に問い合わせることによりデータ格納領域部５ａに格納されている領域情報を取得するとともに、領域差分生成部２５に出力し、領域差分生成部２５が領域情報を得る（Ｓ１１）。領域情報とは、データ格納領域部５ａの総レコード数と一時ページ数と主ページ数が示された情報である。
次に、領域差分生成部２５が、領域差分テーブル管理部２９から領域差分テーブル２７の領域差分情報を得る（Ｓ１２）。領域差分情報とは、領域差分テーブル２７に格納されている、データ格納領域部５ｂの総レコード数と一時ページ数と主ページ数が示された情報である。
次に、領域差分生成部２５は、領域情報と領域差分情報を比較し、レコード数が同じであるか否かを判断する（Ｓ１３）（差異判定ステップ）。レコード数が同じである場合は、領域差分生成部２５はＳ２０へ進む（Ｓ１３）。
同じでない場合は、領域差分生成部２５は、Ｓ１４に進み、完全同期を行うモードでデータ同期制御部８が起動されたかをチェックする（Ｓ１４）（差異判定ステップ）。
完全同期を行うモードで起動されている場合は、領域差分生成部２５はＳ１５に進み、そうでない場合はＳ１６に進む。
次に、完全同期モードの場合は、領域差分生成部２５は、データアクセス制御部２２に問い合わせて、データ格納領域部５ａに格納される更新領域１０を構成する一時ページ１２のレコード全てを得て差分データとする（Ｓ１５）（差異判定ステップ）。
次に、領域差分生成部２５は、領域情報と領域差分情報を比較し、主ページ数が同じであるか否かを判断する（Ｓ１６）（差異判定ステップ）。
領域差分生成部２５は、主ページ数３２が同じである場合はＳ１８に進み、同じでない場合はＳ１７に進む。
主ページ数が同じでない場合は、領域差分生成部２５は、データアクセス制御部２２に問い合わせて、データ格納領域部５ａに格納される参照領域１１を構成する主ページ１３について、領域情報と領域差分情報の主ページ数３２の差のページ数分ページ番号が大きい主ページを得て差分データする（Ｓ１７）（差異判定ステップ）。つまり、領域情報と領域差分情報における主ページ数３２の差と同じページ数の主ページを新しい順にデータ格納領域部５ａから取得することで、データ格納領域部５ｂに未格納の主ページを取得する。
そして、領域差分生成部２５は、取得した差分データを差分分割部２８に出力する。
次に、差分分割部２８が、差分データについて未送信のデータが残っているかを調べ、残っていない場合はＳ２０へ進む（Ｓ２１）。
未送信の差分データが残っている場合は、差分分割部２８は、残っている差分データの中でページ番号が最も小さいページ（差分データの中で最も古いページ）を１ページ分（つまり、データ格納領域部５ｂにおける処理単位のデータ）出力し、データ管理装置１ｂの領域差分配布部２６で受信する（Ｓ２２）。
送受信の方法はネットワーク経由でパイプを使っても良いしソケットを使っても良いし共有ディスクを経由しても良い。
データ管理装置１ｂで受信した１ページ分の差分データを領域差分配布部２６がデータアクセス制御部２２に問い合わせてデータ格納領域部５ｂに格納する（Ｓ２３）。
次に、差分分割部２８は、他のプロセスが動作できるように一定時間スリープした後、Ｓ２１に戻る（Ｓ２４）。
また、差分分割部２８が、全ての差分データを送信した場合は、領域差分生成部２５が、領域差分テーブルを更新する（Ｓ２０）。
【００３９】
しばしばＳ１１からＳ１７の間、データ格納領域部５ａのアクセスの排他制御を行い、データロード処理部２０の動作をエラーとするかもしくは待ち状態とすることがある。また、Ｓ２０からＳ２２の処理の間、データ格納領域部５ｂのアクセスの排他制御を行い、データ検索処理部２１の動作をエラーとするかもしくは待ち状態とすることがある。
Ｓ２３でスリープする時間は、一瞬でも良いし同期先の負荷状況に応じて変更しても良い。
【００４０】
以上のように、データの配布の区切りを参照領域の主ページの区切りにあわせることで、データが不整合となることなくかつレコード単位で配布するよりも効率良く同期を行うことが可能である。
追記型データベースの主ページおよび一時ページは、シェアドナッシングの処理単位としているため、１回のロードで蓄積するデータサイズが大きく差分データ量が増加した場合も、全ての差分データの配布が完了するまでの間に、連続的に排他すること無く配布の区切れで同期先での検索が可能となる。
【００４１】
このように、本実施の形態では、抜き出した差分データを分割する差分分割手段を有し、データ同期制御管理手段において、前記領域差分生成手段が抜き出した差分データについて、前記差分分割手段がデータベース処理に必要なデータの塊に分割するデータ管理装置について説明した。
【００４２】
また、前記データ同期制御管理手段において、前記領域差分生成手段が抜き出した差分データについて、前記差分分割手段がデータベース処理に必要なデータの塊に分割したデータを断続的に同期先データベースに反映するデータ管理装置について説明した。
【００４３】
なお、実施の形態１及び２において説明したデータ管理装置１は、図１に示すように、演算装置７、メモリ６及びデータベース５を有する計算機装置である。
演算装置７は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）である。
演算装置７は、図示していないが、バスを介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、磁気ディスク装置と接続され、これらのハードウェアデバイスを制御する。更に、演算装置７は、表示装置、キーボード、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置（ＣＤＤ）、プリンタ装置、スキャナ装置等と接続していてもよい。また、磁気ディスク装置の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
メモリ６は、例えばＲＡＭである。
また、データベース５は、例えば、磁気ディスク装置により構成される。
ＲＡＭ、ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置の記憶媒体は、記憶装置あるいは記憶部の一例である。
通信ボード、キーボード、スキャナ装置、ＦＤＤなどは、入力部、入力装置の一例である。
また、通信ボード、表示装置、プリンタ装置などは、出力部、出力装置の一例である。
【００４４】
通信ボードは、図１に示すように、ネットワークに接続されている。例えば、通信ボードは、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００４５】
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群が記憶されている。プログラム群のプログラムは、演算装置７、オペレーティングシステム、ウィンドウシステムにより実行される。
【００４６】
上記プログラム群には、以上の説明において「〜部」、「〜手段」として説明した機能を実行するプログラムが記憶されている。プログラムは、演算装置７により読み出され実行される。
ファイル群には、以上の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の抽出結果」等として説明した情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介して演算装置７によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・抽出のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以上で説明したフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭのメモリ、ＦＤＤのフレキシブルディスク、ＣＤＤのコンパクトディスク、磁気ディスク装置の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バスや信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００４７】
また、以上の説明において「〜部」、「〜手段」として説明したものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明したものは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムは演算装置７により読み出され、演算装置７により実行される。すなわち、プログラムは、以上の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、以上の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【図面の簡単な説明】
【００４８】
【図１】実施の形態１、２に係るデータベースシステムの構成例を示す図。
【図２】実施の形態１に係るデータ管理装置の構成例を示す図。
【図３】実施の形態１、２に係る領域差分テーブルの例を示す図。
【図４】実施の形態１に係るデータ管理装置の動作例を示すフローチャート図。
【図５】実施の形態２に係るデータ管理装置の構成例を示す図。
【図６】実施の形態２に係るデータ管理装置の動作例を示すフローチャート図。
【図７】追記型データベースを説明する図。
【符号の説明】
【００４９】
１  データ管理装置、２  端末装置、３  ネットワーク、４  バックアップ装置、５  データ格納領域部、６  メモリ、７  演算装置、８  データ同期制御部、１０  更新領域、１１  参照領域、１２  一時ページ、１３  主ページ、２０  データロード処理部、２１  データ検索処理部、２２  データアクセス制御部、２３  データ変換処理部、２４  領域監視部、２５  領域差分生成部、２６  領域差分配布部、２７  領域差分テーブル、２８  差分分割部、２９  領域差分テーブル管理部。
【図１】
0004718351.tif 000002
【図２】
0004718351.tif 000003
【図３】
0004718351.tif 000004
【図４】
0004718351.tif 000005
【図５】
0004718351.tif 000006
【図６】
0004718351.tif 000007
【図７】
0004718351.tif 000008