(57)【要約】【課題】レプリケーションが容易にでき、マスタＤＢとレプリカＤＢの食い違いを自動的に修復し、レプリカＤＢの信頼性を高めることができるようにする【解決手段】マスタＤＢ１０３の複数の複製であるレプリカＤＢ１０７を作成するレプリケーション機能を搭載しているコンピュータ２がレプリカＤＢ１０７を作成するための更新情報を配信する配信処理において、配信対象の表に一意に種別できるキーがない場合にも、アドレス情報を添付して配信することにより、レプリカＤＢ１０７側のレコードを特定し、レプリケーションを可能とし、マスタＤＢ１０３とレプリカＤＢ１０７間のレコード内容に食い違いが発生した場合に、自動的にマスタＤＢ１０３の全データを一括して再配信することにより、レプリカＤＢ１０７の信頼性を向上させる。【選択図】図１ 
2005293323.tif 000002
【特許請求の範囲】
【請求項１】
マスタＤＢのアドレスを決定するアドレス情報決定手段と、
全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信手段と、
前記アドレス情報を添付して更新された差分情報を配信する差分配信手段と、
ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出手段と、
前記差分情報の配信を一時的に停止する差分配信停止手段と、
前記差分情報の配信を再開する差分配信再開手段と
を備えることを特徴とする異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項２】
前記アドレス情報決定手段は、前記マスタＤＢが一意のキーをもたない場合に、レコードの格納位置や読み出し順からアドレスマップを作成する
ことを特徴とする請求項１に記載の異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項３】
前記一括配信手段は、前記アドレスマップにより決定された前記アドレス情報を添付して、前記マスタＤＢからの全レコードを前記レプリカＤＢへ配信する
ことを特徴とする請求項２に記載の異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項４】
前記レプリカＤＢでは、データを特定するキーが存在しなくても前記マスタＤＢの複製を作成することができるように、事前に前記アドレス情報が重複を許さないひとつの列として定義され、前記アドレス情報もレコードの一部として反映される
ことを特徴とする請求項１乃至３のいずれかに記載の異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項５】
前記差分配信手段は、前記マスタＤＢへの更新を即時に前記レプリカＤＢへ反映させる際には、前記アドレスマップを元に前記アドレス情報を添付して、前記レプリカＤＢへ配信する
ことを特徴とする請求項１乃至４のいずれかに記載の異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項６】
前記障害検出手段は、前記レプリカＤＢの状態を監視し、反映時のエラーを検出する
ことを特徴とする請求項１乃至５のいずれかに記載の異種ＲＤＢＭＳ間での差分配信レコード反映システム。
【請求項７】
マスタＤＢのアドレスを決定するアドレス情報決定ステップと、
全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信ステップと、
前記アドレス情報を添付して更新された差分情報を配信する差分配信ステップと、
ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出ステップと、
前記差分情報の配信を一時的に停止する差分配信停止ステップと、
前記差分情報の配信を再開する差分配信再開ステップと
を備えることを特徴とする異種ＲＤＢＭＳ間での差分配信レコード反映方法。
【請求項８】
マスタＤＢのアドレスを決定するアドレス情報決定ステップと、
全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信ステップと、
前記アドレス情報を添付して更新された差分情報を配信する差分配信ステップと、
ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出ステップと、
前記差分情報の配信を一時的に停止する差分配信停止ステップと、
前記差分情報の配信を再開する差分配信再開ステップと
をコンピュータに実行させることを特徴とする異種ＲＤＢＭＳ間での差分配信レコード反映プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異種ＲＤＢＭＳ間での差分配信レコード反映システムに関し、特に、レプリケーション機能を有する異種ＲＤＢＭＳ間での差分配信レコード反映システムに関するものである。
【背景技術】
【０００２】
従来のレプリケーションシステムの一例が、特許文献１に記載されている。この従来のレプリケーションシステムは、判断・抽出機能部、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文変換加工機能部、ＳＱＬ文ローディング機能部等から構成されている。このような構成を有する従来のレプリケーションシステムは次のように動作する。すなわち、データベース管理システムにてＲＤＢＭＳの内部機構により物理アドレスに対応する一意の疑似列をもち、この疑似列をキーとしてユーザ定義テーブルと一時テーブル、更新ログテーブルからレコードの更新結果の差を抽出し、抽出したデータをＳＱＬ文に変更加工後、ＳＱＬ文をローディングすることにより、データベースの整合性を保つ仕組みである。
【特許文献１】特開２０００−１３２４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記背景技術には、次のような問題点があった。
第１の問題点は、差分を抽出するために各種テーブルを保持することで、ユーザが使用する実際のデータ量以上のデータ容量を必要とする点である。その理由は、更新毎にマスタＤＢと同様のデータを保持する一次テーブルを使用して差分を抽出して、レプリケーションするためである。
第２の問題点は、差分レコードの作成のために処理時間がかかる点である。その理由は、更新レコードの作成のために、毎回各テーブル間での相違をアドレス情報を元に抽出するため、抽出処理時間がかかるためである。
本発明はこのような状況に鑑みてなされたものであり、簡単にレプリケーションすることを可能にし、マスタＤＢとレプリカＤＢの食い違いを自動的に修復し、レプリカＤＢの信頼性を高めることができるようにするものである。
【課題を解決するための手段】
【０００４】
請求項１に記載の異種ＲＤＢＭＳ間での差分配信レコード反映システムは、マスタＤＢのアドレスを決定するアドレス情報決定手段と、全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信手段と、前記アドレス情報を添付して更新された差分情報を配信する差分配信手段と、ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出手段と、前記差分情報の配信を一時的に停止する差分配信停止手段と、前記差分情報の配信を再開する差分配信再開手段とを備えることを特徴とする。
また、前記アドレス情報決定手段は、前記マスタＤＢが一意のキーをもたない場合に、レコードの格納位置や読み出し順からアドレスマップを作成するようにすることができる。
また、前記一括配信手段は、前記アドレスマップにより決定された前記アドレス情報を添付して、前記マスタＤＢからの全レコードを前記レプリカＤＢへ配信するようにすることができる。
また、前記レプリカＤＢでは、データを特定するキーが存在しなくても前記マスタＤＢの複製を作成することができるように、事前に前記アドレス情報が重複を許さないひとつの列として定義され、前記アドレス情報もレコードの一部として反映されるようにすることができる。
また、前記差分配信手段は、前記マスタＤＢへの更新を即時に前記レプリカＤＢへ反映させる際には、前記アドレスマップを元に前記アドレス情報を添付して、前記レプリカＤＢへ配信するようにすることができる。
また、前記障害検出手段は、前記レプリカＤＢの状態を監視し、反映時のエラーを検出するようにすることができる。
請求項７に記載の異種ＲＤＢＭＳ間での差分配信レコード反映方法は、マスタＤＢのアドレスを決定するアドレス情報決定ステップと、全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信ステップと、前記アドレス情報を添付して更新された差分情報を配信する差分配信ステップと、ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出ステップと、前記差分情報の配信を一時的に停止する差分配信停止ステップと、前記差分情報の配信を再開する差分配信再開ステップとを備えることを特徴とする。
請求項８に記載の異種ＲＤＢＭＳ間での差分配信レコード反映プログラムは、マスタＤＢのアドレスを決定するアドレス情報決定ステップと、全レコードに前記アドレスを示すアドレス情報を添付して配信する一括配信ステップと、前記アドレス情報を添付して更新された差分情報を配信する差分配信ステップと、ネットワーク上にあるマスタＤＢの複製であるレプリカＤＢにおいて、反映時の異常を検出する障害検出ステップと、前記差分情報の配信を一時的に停止する差分配信停止ステップと、前記差分情報の配信を再開する差分配信再開ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【０００５】
本発明の異種ＲＤＢＭＳ間での差分配信レコード反映システムは、以上のように構成され、動作するので、次のような効果を奏する。第１の効果は、レコードを一意に決定するキーが存在しない既存のマスタＤＢでも、定義等の変更なしで、簡単にレプリケーションすることが可能である点である。これによりマスタＤＢの既存の業務プログラムへ影響もなく、レプリカＤＢをもつことでシステム可用性の向上が見込まれる。その理由は、マスタＤＢのレコードを特定する一意のアドレス情報を、レプリカＤＢにも列として追加し、本システムにてレプリカＤＢにアドレス情報を追加することで、レコードを特定可能としているためである。また、アドレスマップを使用することで、管理用の情報も少なく、読み出し順をキー順にすることでマップ上の検索時間も短縮でき、処理時間も向上できる。
第２の効果は、マスタＤＢとレプリカＤＢ側にて食い違いが発生すると、自動的に検知し修復するため、レプリカＤＢの信頼性が向上することである。その理由は、レプリケーションシステムにおけるレプリカＤＢでのマスタＤＢとの食い違いは、該当のレコードだけではなく、レプリカＤＢ全体の信頼性をダウンさせるものである。その場合、該当レコードの修復だけであると、他のレコードでも同様にエラーになる可能性もあり、早急に全レコードを再配信させる必要がある。但し全レコードの再配信は、レプリカＤＢ参照側の業務を停止させることになるので、業務の形態によってその要求はさまざまである。よって、事前に全レコードを再配信する場合のエラー情報をユーザ側が自由に定義し、エラー情報管理、プロセス管理をすることで、ユーザの要望に添って自動的に復旧するという機能を実現している。
【発明を実施するための最良の形態】
【０００６】
図１は、本発明の一実施の形態の構成例を示すブロック図である。同図に示すように、本実施の形態は、コンピュータ１とコンピュータ２乃至コンピュータｍ（ｍは任意の自然数）とから構成され、コンピュータ１は、マスタＤＢ（データベース）１０３と、アドレスマップ１０４と、一時ファイル１０５と、更新ログ蓄積ファイル１０６とから構成、プロセス（１）１０１乃至プロセス（ｎ（ｎは任意の自然数））１０２がマスタＤＢに対して更新要求を実施している。コンピュータ２は、レプリカＤＢ１０７を備えている。コンピュータｍは、レプリカＤＢ１０８を備えている。
【０００７】
本実施の形態は、ネットワーク上に異なるリレーショナルデータベース管理システム（以下ＲＤＢＭＳ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）と称す）配下のデータベースであるマスタＤＢ１０３の複数の複製であるレプリカＤＢ１０７を作成するレプリケーション機能を搭載しているコンピュータ２がレプリカＤＢ１０７を作成するための更新情報を配信する配信処理において、配信対象の表に一意に種別できるキーがない場合にも、アドレス情報を添付して配信することにより、レプリカＤＢ１０７側のレコードを特定し、レプリケーションを可能とし、マスタＤＢ１０３とレプリカＤＢ１０７間のレコード内容に食い違いが発生した場合に、自動的にマスタＤＢ１０３の全データを一括して再配信することにより、レプリカＤＢ１０７の信頼性を向上させるようにするものである。
【０００８】
上述したように、図１の例では、プロセス（１）１０１からマスタＤＢ１０３に対して更新要求を実施している。この場合に、該当のマスタＤＢ１０３は一意のキーが存在していないので、差分データとアドレス情報をコンピュータ２のレプリカＤＢ１０７に配信する。レプリカＤＢ１０７にてレコードを特定にするためには、添付されたアドレス情報を使用して反映処理を行う。
【０００９】
コンピュータ２が反映処理を行う際に何らかのエラーを検出すると、配信結果としてマスタＤＢ１０３側へエラーを返却する。この際に、このエラーが再配信と定義されたエラーであれば、差分配信の反映を中断し、全データのアドレス情報とレコードを一括して再配信する。このようにして、一意のキーが存在しなくとも差分配信を可能とし、レプリカＤＢ１０７の不整合を自動的に検出し、修復することで複製側のデータベース（レプリカＤＢ１０７）の信頼性を向上させることができる。
【００１０】
図１を参照すると、本発明の異種ＲＤＢＭＳ間での差分配信レコード反映システムの一実施の形態は、マスタＤＢ１０３のアドレスを決定するアドレス情報決定手段１１１と、全レコードにアドレス情報を添付して配信する一括配信手段１１３と、アドレス情報を添付して更新された差分情報を配信する差分配信手段１１５と、ネットワーク上にあるマスタＤＢ１０３の複製であるレプリカＤＢ１０７にて、反映時の異常を検出する障害検出手段１１６と、差分配信を一時的に停止する差分配信停止手段１１７と、差分配信を再開する差分配信再開手段１１９を含む。
【００１１】
これらの手段はそれぞれ概略次のように動作する。アドレス情報決定手段１１１は、マスタＤＢ１０３が一意のキーをもたない場合に、レコードの格納位置や読み出し順からアドレスマップ１０４を作成する。一括配信手段１１３は、アドレスマップ１０４により決定されたアドレス情報を添付して、マスタＤＢ１０３からの全レコードをレプリカＤＢ１０７へ配信する。レプリカＤＢ１０７では、事前にアドレス情報を重複を許さないひとつの列として定義しておき、アドレス情報もレコードの一部として反映される。その結果、データを特定するキーが存在しなくても、マスタＤＢ１０３の複製が作成できる。
【００１２】
差分配信手段１１５は、レプリケーションシステムにおいて、マスタＤＢ１０３への更新を即時にレプリカＤＢ１０７へ反映させる際には、アドレスマップ１０４を元にアドレス情報を添付して、レプリカＤＢ１０７へ配信する。障害検出手段１１６は、レプリカＤＢ１０７の状態を監視し、反映時のエラーを検出する。差分配信停止手段１１７は、定義に基づきマスタＤＢ１０３を使用中のプログラムでの即時の差分配信を停止させ、一括配信手段１１３において、アドレス情報と全レコードを一時ファイル１０５に登録する。差分配信反映再開手段１１９は、マスタＤＢ１０３の更新を、更新データを更新ログ蓄積ファイル１０６へ格納するように変更して再開し、レプリカＤＢ１０７への全レコードの配信処理が完了すると、更新ログ蓄積ファイル１０６からの配信を完了させた後、マスタＤＢ１０３の更新を即時に変更して、元の運用に戻す。
【００１３】
次に、図２、図３、および図４のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図２に示すように、レコードを一意に決定するための重複を許さないキーが存在しないマスタＤＢ定義２１２に対して、ネットワーク上の異なるＲＤＢＭＳに複製のＤＢを作成する場合、レプリカＤＢ定義２１３にあらかじめアドレス情報２１４をひとつの重複も許さない列として定義する（ステップ２０２）。また、全レコードを一括配信する際の、マスタＤＢ１０３側の時の読み出し順序、および全レコード再配信となるエラーステータス２２３を決定し、システム共有空間２１１に作成し、定義情報として登録しておく（ステップ２０３）。読み出し順序は、ある特定のキー順か物理的な格納位置順かが選択可能である。
【００１４】
アドレス情報決定手段１１１は、ユーザが指定する条件にてマスタＤＢ１０３を読み出し、その読み出し順によりアドレスマップ１０４を作成する（ステップ２０４，２０５）。アドレスマップ１０４が物理順であればアドレス番号２１６とレコード相対位置２１７の対応表２１５を、アドレスマップ１０４がキー順であればキー値２１９とアドレス番号２２０とレコード相対位置２２１の対応表２１８をシステム共有空間２１１に作成し登録しておく。一括配信手段１１３は、レプリカＤＢ１０７を作成する上で必要なレコード内容にアドレス番号２１６、２２０を各レコードに追加してレプリカＤＢ１０７へ配信する（ステップ２０６）。
【００１５】
図３に示すように、差分配信定義を実施したマスタＤＢ１０３が特定のプログラムから更新されると、ＤＢ情報からアドレス情報決定手段１１１にて作成された各アドレスマップ１０４を開く。そして、更新命令の種別とアドレスマップ１０４からアドレス情報を決定する。まず命令が挿入であれば、アドレスマップ１０４に登録されていないので、アドレスマップ１０４上の（最大番号＋１）をアドレス番号とし、アドレスマップ１０４に登録する。命令が更新であれば、キー順であればキー値と相対位置から、物理順であれば相対位置からアドレス番号を検索して、アドレス番号を決定する。削除も更新と同様にアドレス番号を検索するが、アドレス番号が決定した後、アドレスマップ１０４上の該当のデータを削除する。アドレスマップ１０４から決定されたアドレス情報と命令種別に応じた差分レコードが更新ログ蓄積ファイル１０６に登録される（ステップ３０３）。該当プロセスで静止点確立時には、更新情報の確定をうけて更新ログ蓄積ファイル１０６からレプリカＤＢ１０７へ、差分データを配信する（ステップ３０５）。
【００１６】
レプリカＤＢ１０７へ配信する際に、レプリカＤＢ１０７側での反映結果がエラーであれば（ステップ３０６のＹＥＳ）、返却されたエラーステータスが、エラー管理表２２２に登録されているかを検索する。
登録されていれば（ステップ３０７のＹＥＳ）、差分配信停止手段１１７を起動する（ステップ３０８）。返却されたエラーステータスが未登録であれば（ステップ３０７のＮＯ）、図４のステップ３１９に進み、更新処理を継続する。例えば、挿入の命令にてレコードを反映時に、すでに同じアドレス番号をもつレコードが存在した場合や、更新や削除の命令にて同一のアドレス番号をもつレコードが存在しない場合などが、差分配信停止手段１１７が起動される場合である。
【００１７】
差分配信停止手段１１７は、同一のＤＢを使用中の他のプロセスがあれば（ステップ３０９のＹＥＳ）、静止点を待ち合わせし（ステップ３１０）、すべての同期が確保できたら、一括配信手段１１３を起動する（図４のステップ３１１）。
一括配信手段１１３は、全レコードを対象にアドレス情報決定手段１１１を実行し（ステップ３１２）、アドレスの再度振りなおし、アドレスマップ１０４を再作成する（ステップ３１３）。
【００１８】
次に、マスタＤＢ１０３のアドレス番号付きの全レコードの一時ファイルへの複写を実施する（ステップ３１４）。複写が完了すれば、マスタＤＢ１０３側にプロセスがある場合（ステップＳ３２４のＹＥＳ）、直ちに同期を取ったプロセスに対して、待ち合わせの解除を通知する。待ち合わせの解除通知を受け取ったプロセスでは、差分反映処理を更新ログ蓄積ファイル１０６に蓄積だけして配信しないモードに変更して、そのまま更新処理を継続する（ステップ３１９）。一方、マスタＤＢ１０３側にプロセスがない場合（ステップ３２４のＮＯ）、ステップ３１７に進む。
【００１９】
また、ステップ３１４においてマスタＤＢ１０３の一時ファイルへの複写が完了した後、レプリカＤＢ１０７へ一括反映するために、レプリカＤＢ１０７を占有する警告メッセージを通知し（ステップ３１５）、一時ファイルを入力データとして、全レコードを再配信する（ステップ３２０）。全レコードの再配信が完了した後は、マスタＤＢ１０３を使用中のプロセスに対して、差分配信を更新ログ蓄積ファイル１０６に貯めておかず、即時に配信するモードに変更するように指示する。また再配信が反映が完了した旨を通知し、レプリカＤＢ１０７を開放する（ステップ３２１）。その後、レプリカＤＢ１０７では、更新ログ蓄積ファイル１０６に蓄積されていた更新ログが配信される（ステップ３２２）ので、これを反映させる（ステップ３２３）。これにより、修復処理は完了し、レプリカＤＢ１０７はマスタＤＢ１０３の完全な複写となる。
【００２０】
ステップ３２１においてレプリカＤＢ１０７が解放された後、ステップ３１７に進み、マスタ側１０３にプロセスがある場合（ステップ３１７のＹＥＳ）、即時モードに変更する（ステップ３１８）。その後、ステップ３１９に進む。マスタ側にプロセスがない場合（ステップ３１７のＮＯ）、ステップ３１９に進む。ステップ３１９においては、修復処理を完了し、更新処理を継続する。
【００２１】
次に、具体例を用いて本実施の形態の動作を説明する。図５に示すように、あるネットワーク上のマスタＤＢ１０３に各データ４０２乃至４０４が記憶されている場合、レプリカＤＢ１０７には特定の列を抽出した形式とアドレス情報を付け、読み出し順がマスタＤＢ１０３の列５のキー順として差分配信定義が実施されている。一括ロードでは、マスタＤＢ１０３上の各レコードの列５の順に読み出し、各レコードに対応するアドレス情報をアドレスマップ１０４に登録してマップ４２２〜４２４を作成する。次に、レプリカＤＢ１０７に全レコードを配信するが、アドレスマップ順に登録される。その後、何らかのエラーが発生した場合には、エラー管理表２２２のエラー情報のステータスと同一かどうかがチェックされ、再配信される。
【００２２】
なお、上記実施の形態の構成および動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施の形態の構成例を示すブロック図である。
【図２】図１の実施の形態の全体の動作を説明するためのフローチャートである。
【図３】図１の実施の形態の全体の動作を説明するためのフローチャートである。
【図４】図１の実施の形態の全体の動作を説明するためのフローチャートである。
【図５】本実施の形態の具体的な動作を説明するための図である。
【符号の説明】
【００２４】
１，２  コンピュータ
１０１  プロセス（１）
１０２  プロセス（ｎ）
１０３  マスタＤＢ
１０４，３０２  アドレスマップ
１０５  一時ファイル
１０６，３０４  更新ログ蓄積ファイル
１０７，１０８  レプリカＤＢ
１１１  アドレス情報決定手段
１１３  一括配信手段
１１５  差分配信手段
１１６  障害検出手段
１１７  差分配信停止手段
１１９  差分配信反映再開手段
２１１  システム共有空間
２１５，２１８  対応表
２２２  エラー管理表
【図１】
2005293323.tif 000003
【図２】
2005293323.tif 000004
【図３】
2005293323.tif 000005
【図４】
2005293323.tif 000006
【図５】
2005293323.tif 000007