(57)【要約】【課題】マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを、業務アプリケーションを停止させず且つ高速に確認し得るようにする。【解決手段】マスタ計算機１００は、マスタＤＢ１１０の更新情報１２１とマスタ側のデータ同期情報１３１とでチェックサム演算等を行い、演算結果のデータ同期情報１３１を、更新情報１２１に付加してレプリカ計算機２００へ送信すると共に、新たなマスタ側のデータ同期情報２２２として保存する。レプリカ計算機２００は、受信した更新情報２２１とレプリカ側データ同期情報２３１とで同様の演算を行い、その演算結果と受信した更新情報２２１に付加されていたマスタ側データ同期情報２２２とを比較し、比較結果をマスタ計算機１００へ送信する。マスタ計算機１００は受信した比較結果に基づいてデータの同期が取れているか否かを判定する。【選択図】図１
2008243150.tif 000002
【特許請求の範囲】
【請求項１】
マスタ計算機に備わるマスタデータベースの更新情報をレプリカ計算機に備わるレプリカデータベースに反映することで、前記マスタデータベースと前記レプリカデータベースのデータを一致させるレプリケーションシステムにおいて、
前記マスタ計算機は、マスタ側データ同期情報を記憶するマスタ側データ同期情報記憶手段と、前記レプリカ計算機にマスタデータベースの更新情報を送信する際に、該更新情報と前記マスタ側データ同期情報との演算前または演算後のマスタ側データ同期情報を付加して送信し、前記演算の演算結果を新たなマスタ側データ同期情報として前記マスタ側データ同期情報記憶手段に記憶するマスタ側レプリケーション管理手段を備え、
前記レプリカ計算機は、前記マスタ側データ同期情報の複製であるレプリカ側データ同期情報を記憶するレプリカ側データ同期情報記憶手段と、前記マスタ計算機から受信した更新情報と前記レプリカ側データ同期情報との演算前または演算後のレプリカ側データ同期情報と、受信した更新情報に付加されていたマスタ側のデータ同期情報とを比較すると共に、前記演算の演算結果を新たなレプリカ側データ同期情報として前記レプリカ側データ同期情報記憶手段に記憶するレプリカ側レプリケーション管理手段を備え、
前記比較の比較結果に基づいてデータの同期が取れているか否かを判定することを特徴とするレプリケーションシステム。
【請求項２】
前記比較結果を前記レプリカ計算機から前記マスタ計算機へ送信し、前記マスタ側レプリケーション管理手段は、受信した比較結果が不一致を示す場合にレプリケーション処理を中止することを特徴とする請求項１記載のレプリケーションシステム。
【請求項３】
前記比較結果を前記レプリカ計算機から前記マスタ計算機へ送信し、前記マスタ側レプリケーション管理手段は、受信した比較結果が不一致を示す場合にレプリケーション異常を外部に通報することを特徴とする請求項１記載のレプリケーションシステム。
【請求項４】
前記演算が、更新情報およびデータ同期情報の内容が異なれば異なる演算結果が得られ、且つ、演算結果のビット数がデータ同期情報のビット数と同じになる種類の演算であることを特徴とする請求項１記載のレプリケーションシステム。
【請求項５】
前記演算が、チェックサム演算であることを特徴とする請求項１記載のレプリケーションシステム。
【請求項６】
マスタ計算機に備わるマスタデータベースの更新情報をレプリカ計算機に備わるレプリカデータベースに反映することで、前記マスタデータベースと前記レプリカデータベースのデータを一致させるレプリケーションシステムにおけるデータ同期確認方法であって、
データの同期が取れている場合には互いに値が一致するデータ同期情報を前記マスタ計算機と前記レプリカ計算機のそれぞれの記憶装置に記憶し、
前記マスタ計算機は、前記レプリカ計算機にマスタデータベースの更新情報を送信する際に、該更新情報と自計算機で記憶するマスタ側のデータ同期情報との演算前または演算後のマスタ側データ同期情報を付加して送信すると共に、演算の結果を新たなマスタ側のデータ同期情報として記憶し、
前記レプリカ計算機は、受信した更新情報と自計算機で記憶するレプリカ側のデータ同期情報との演算前または演算後のレプリカ側データ同期情報と、受信した更新情報に付加されていたマスタ側のデータ同期情報とを比較すると共に、演算の結果を新たなレプリカ側のデータ同期情報として記憶し、
前記比較結果に基づいてデータの同期が取れているか否かを判定することを特徴とするデータ同期確認方法。
【請求項７】
レプリカ計算機に備わるレプリカデータベースと自計算機に備わるマスタデータベースとでデータの同期を取るために、前記マスタデータベースの更新情報を前記レプリカ計算機へ送信するマスタ計算機において、
マスタ側データ同期情報を保持するデータ同期情報記憶手段と、前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したマスタ側データ同期情報との演算を行い、その演算結果を新たなマスタ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記更新情報に前記演算前または前記演算後のマスタ側データ同期情報を付加してレプリカ側計算機へ送信し、前記送信したマスタ側データ同期情報とレプリカ側データ同期情報との比較を行った比較結果を前記レプリカ計算機から受信し、該受信した比較結果に基づいてデータの同期が取れているかどうかを判定するレプリケーション管理手段とを備えることを特徴とするマスタ計算機。
【請求項８】
マスタ計算機に備わるマスタデータベースの複製であるレプリカデータベースを備え、前記マスタデータベースの更新情報を前記マスタ計算機から受信して前記レプリカデータベースに反映するレプリカ計算機において、
マスタ側データ同期情報の複製であるレプリカ側データ同期情報を保持するデータ同期情報演算手段と、前記マスタ計算機から受信した前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したレプリカ側データ同期情報との演算を行い、その演算結果を新たなレプリカ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記演算前または前記演算後の前記レプリカ側データ同期情報と前記更新情報に付加されて前記マスタ計算機から送信されてきた前記マスタ側データ同期情報とを比較し、その比較結果を前記マスタ計算機へ送信すると共にその比較結果に基づいて前記更新情報の前記レプリカデータベースへの反映の可否を制御するレプリケーション管理手段とを備えることを特徴とするレプリカ計算機。
【請求項９】
レプリカ計算機に備わるレプリカデータベースと自計算機に備わるマスタデータベースとでデータの同期を取るために、前記マスタデータベースの更新情報を前記レプリカ計算機へ送信するマスタ計算機であって、マスタ側データ同期情報を保持するデータ同期情報記憶手段を備えたマスタ計算機を、前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したマスタ側データ同期情報との演算を行い、その演算結果を新たなマスタ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記更新情報に前記演算前または前記演算後のマスタ側データ同期情報を付加してレプリカ側計算機へ送信し、前記送信したマスタ側データ同期情報とレプリカ側データ同期情報との比較を行った比較結果を前記レプリカ計算機から受信し、該受信した比較結果に基づいてデータの同期が取れているかどうかを判定するレプリケーション管理手段として機能させるためのプログラム。
【請求項１０】
マスタ計算機に備わるマスタデータベースの複製であるレプリカデータベースを備え、前記マスタデータベースの更新情報を前記マスタ計算機から受信して前記レプリカデータベースに反映するレプリカ計算機であって、マスタ側データ同期情報の複製であるレプリカ側データ同期情報を保持するデータ同期情報演算手段を備えたレプリカ計算機を、前記マスタ計算機から受信した前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したレプリカ側データ同期情報との演算を行い、その演算結果を新たなレプリカ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記演算前または前記演算後の前記レプリカ側データ同期情報と前記更新情報に付加されて前記マスタ計算機から送信されてきた前記マスタ側データ同期情報とを比較し、その比較結果を前記マスタ計算機へ送信すると共にその比較結果に基づいて前記更新情報の前記レプリカデータベースへの反映の可否を制御するレプリケーション管理手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機のデータベースを更新したときに、別の計算機に設けた複製のデータベースも同じように更新するレプリケーションシステムに関する。
【背景技術】
【０００２】
障害対策や処理の分散化を目的として、計算機に備わるデータベース（以下、ＤＢとも記す）とは別にその複製のＤＢを別の計算機に備え、双方のＤＢを同じように更新するレプリケーションシステムが提案ないし実用化されている（例えば特許文献１参照）。本明細書では、複製元のＤＢをマスタＤＢ、マスタＤＢを備える計算機をマスタ計算機、複製先のＤＢをレプリカＤＢ、レプリカＤＢを備える計算機をレプリカ計算機と呼ぶ。
【０００３】
レプリケーションシステムでは、マスタ計算機でマスタＤＢを更新したとき、その更新情報を所定のタイミングでレプリカ計算機へ送信し、レプリカ計算機でその更新情報に基づいてマスタＤＢと同じ更新をレプリカＤＢに行うことで、マスタＤＢとレプリカＤＢのデータ内容を一致させる。データの内容が双方のＤＢで一致している状態を、データの同期が取れていると言う。ここで、更新情報をマスタ計算機からレプリカ計算機へ送信するタイミングとしては、マスタ計算機で更新が行われる都度や、予め指定した時間間隔毎などの幾つかの設定方法がある。また、一般的にマスタＤＢの更新とレプリカＤＢの更新とは非同期で実行される。
【０００４】
従って、マスタＤＢの更新とレプリカＤＢの更新とは時間的なズレがあり、システム全体でみるとデータの同期が一時的に取れていない状態になる。このような状態が発生するにもかかわらずレプリケーションシステムが賞用されている背景には、マスタ計算機とレプリカ計算機との間をつなぐネットワークの障害や伝送速度の遅さの影響を受けずにマスタ計算機側でＤＢ処理を進めることができることや、レプリカＤＢを利用する業務アプリケーションの種類によっては、多少の更新遅れは問題にならないことなどが挙げられる。
【０００５】
しかしながら、マスタＤＢとレプリカＤＢとの間に生じる一時的なデータ不整合は、更新情報の反映の遅れに起因するものに過ぎないため、マスタＤＢで行われた更新のすべてがレプリカＤＢに正しく反映された後には、双方のＤＢは完全にデータの同期が取れていなければならない。若しその状態でもデータの同期が取れていなければ、レプリカＤＢがマスタＤＢの複製でなくなっているので、レプリケーション機能を停止し、何らかの対処を行う必要がある。
【０００６】
マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを確認する従来の方法としては、マスタＤＢを使用する業務アプリケーションおよびレプリカＤＢを使用する業務アプリケーションを一旦すべて停止させて、マスタＤＢとレプリカＤＢの静止点を確立し、マスタＤＢで行われた更新のすべての更新情報がレプリカＤＢに反映されるのを待ち合わせた後、マスタＤＢとレプリカＤＢに記憶されている全てのデータを比較する方法がある。
【０００７】
【特許文献１】特開２０００−４７９１８号公報
【特許文献２】特開２００５−３４６１９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
マスタＤＢとレプリカＤＢとでデータの同期が常に取れるよう保証できれば、データの同期が取れているかどうかを確認する処理はそもそも不要になるが、現実的にはそのような保証は極めて困難である。
【０００９】
例えば、特許文献２に記載されたチェックサムを用いてデータの正当性をチェックする技術を特許文献１における更新情報に適用し、更新情報にそのチェックサムを付加してマスタ計算機からレプリカ計算機へ送信し、レプリカ計算機において、受信した更新情報から計算したチェックサムと受信したチェックサムとを比較し、一致した場合に限ってレプリカＤＢに反映することが考えられる。しかし、この方法では、通信途上で破壊された更新情報に基づくレプリカＤＢの更新によるデータ不整合は防止できるが、通信途上で更新情報が紛失するなど、更新情報の欠落によるデータの不整合は防止できない。
【００１０】
従って、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを確認する処理はレプリケーションシステムでは必須になる。しかしながら、上述した従来の方法では、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを確認する毎に、マスタＤＢおよびレプリカＤＢを使用するすべての業務アプリケーションを一時的に停止する必要があり、業務に与える影響が大きいという課題がある。
【００１１】
また、マスタＤＢとレプリカＤＢに記憶されている全てのデータを比較する方法では、データの同期が取れているかどうかを確認するまでに、非常に長い時間を必要とするという課題がある。
【００１２】
本発明の目的は、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを、それらのＤＢを使用する業務アプリケーションを停止させず且つ高速に確認し得るようにすることにある。
【課題を解決するための手段】
【００１３】
本発明の第１のレプリケーションシステムは、マスタ計算機に備わるマスタデータベースの更新情報をレプリカ計算機に備わるレプリカデータベースに反映することで、前記マスタデータベースと前記レプリカデータベースのデータを一致させるレプリケーションシステムにおいて、前記マスタ計算機は、マスタ側データ同期情報を記憶するマスタ側データ同期情報記憶手段と、前記レプリカ計算機にマスタデータベースの更新情報を送信する際に、該更新情報と前記マスタ側データ同期情報との演算前または演算後のマスタ側データ同期情報を付加して送信し、前記演算の演算結果を新たなマスタ側データ同期情報として前記マスタ側データ同期情報記憶手段に記憶するマスタ側レプリケーション管理手段を備え、前記レプリカ計算機は、前記マスタ側データ同期情報の複製であるレプリカ側データ同期情報を記憶するレプリカ側データ同期情報記憶手段と、前記マスタ計算機から受信した更新情報と前記レプリカ側データ同期情報との演算前または演算後のレプリカ側データ同期情報と、受信した更新情報に付加されていたマスタ側のデータ同期情報とを比較すると共に、前記演算の演算結果を新たなレプリカ側データ同期情報として前記レプリカ側データ同期情報記憶手段に記憶するレプリカ側レプリケーション管理手段を備え、前記比較の比較結果に基づいてデータの同期が取れているか否かを判定することを特徴とする。
【００１４】
本発明の第２のレプリケーションシステムは、第１のレプリケーションシステムにおいて、前記比較結果を前記レプリカ計算機から前記マスタ計算機へ送信し、前記マスタ側レプリケーション管理手段は、受信した比較結果が不一致を示す場合にレプリケーション処理を中止することを特徴とする。
【００１５】
本発明の第３のレプリケーションシステムは、第１のレプリケーションシステムにおいて、前記比較結果を前記レプリカ計算機から前記マスタ計算機へ送信し、前記マスタ側レプリケーション管理手段は、受信した比較結果が不一致を示す場合にレプリケーション異常を外部に通報することを特徴とする。
【００１６】
本発明の第４のレプリケーションシステムは、第１のレプリケーションシステムにおいて、前記演算が、更新情報およびデータ同期情報の内容が異なれば異なる演算結果が得られ、且つ、演算結果のビット数がデータ同期情報のビット数と同じになる種類の演算であることを特徴とする。
【００１７】
本発明の第５のレプリケーションシステムは、第１のレプリケーションシステムにおいて、前記演算が、チェックサム演算であることを特徴とする。
【００１８】
本発明のデータ同期確認方法は、マスタ計算機に備わるマスタデータベースの更新情報をレプリカ計算機に備わるレプリカデータベースに反映することで、前記マスタデータベースと前記レプリカデータベースのデータを一致させるレプリケーションシステムにおけるデータ同期確認方法であって、データの同期が取れている場合には互いに値が一致するデータ同期情報を前記マスタ計算機と前記レプリカ計算機のそれぞれの記憶装置に記憶し、前記マスタ計算機は、前記レプリカ計算機にマスタデータベースの更新情報を送信する際に、該更新情報と自計算機で記憶するマスタ側のデータ同期情報との演算前または演算後のマスタ側データ同期情報を付加して送信すると共に、演算の結果を新たなマスタ側のデータ同期情報として記憶し、前記レプリカ計算機は、受信した更新情報と自計算機で記憶するレプリカ側のデータ同期情報との演算前または演算後のレプリカ側データ同期情報と、受信した更新情報に付加されていたマスタ側のデータ同期情報とを比較すると共に、演算の結果を新たなレプリカ側のデータ同期情報として記憶し、前記比較結果に基づいてデータの同期が取れているか否かを判定することを特徴とする。
【００１９】
本発明のマスタ計算機は、レプリカ計算機に備わるレプリカデータベースと自計算機に備わるマスタデータベースとでデータの同期を取るために、前記マスタデータベースの更新情報を前記レプリカ計算機へ送信するマスタ計算機において、マスタ側データ同期情報を保持するデータ同期情報記憶手段と、前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したマスタ側データ同期情報との演算を行い、その演算結果を新たなマスタ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記更新情報に前記演算前または前記演算後のマスタ側データ同期情報を付加してレプリカ側計算機へ送信し、前記送信したマスタ側データ同期情報とレプリカ側データ同期情報との比較を行った比較結果を前記レプリカ計算機から受信し、該受信した比較結果に基づいてデータの同期が取れているかどうかを判定するレプリケーション管理手段とを備えることを特徴とする。
【００２０】
本発明のレプリカ計算機は、マスタ計算機に備わるマスタデータベースの複製であるレプリカデータベースを備え、前記マスタデータベースの更新情報を前記マスタ計算機から受信して前記レプリカデータベースに反映するレプリカ計算機において、マスタ側データ同期情報の複製であるレプリカ側データ同期情報を保持するデータ同期情報演算手段と、前記マスタ計算機から受信した前記マスタデータベースの更新情報と前記データ同期情報記憶手段から読み出したレプリカ側データ同期情報との演算を行い、その演算結果を新たなレプリカ側データ同期情報として前記データ同期情報記憶手段に記憶すると共に、前記演算前または前記演算後の前記レプリカ側データ同期情報と前記更新情報に付加されて前記マスタ計算機から送信されてきた前記マスタ側データ同期情報とを比較し、その比較結果を前記マスタ計算機へ送信すると共にその比較結果に基づいて前記更新情報の前記レプリカデータベースへの反映の可否を制御するレプリケーション管理手段とを備えることを特徴とする。
【００２１】
『作用』
マスタ計算機が、マスタＤＢで更新が行われる毎にその更新情報とマスタ側データ同期情報とのチェックサム演算などの所定の演算を行い、その演算結果を新たなマスタ側データ同期情報として保存すると共に更新情報に付加してレプリカ計算機へ送信し、レプリカ計算機が、受信した更新情報とレプリカ側データ同期情報とのチェックサム演算などの所定の演算を行い、その演算結果を新たなレプリカ側データ同期情報として作成すれば、この作成した新たなレプリカ側データ同期情報は、マスタＤＢとレプリカＤＢとでデータの同期が取れている限り、受信した更新情報に付加されているマスタ側データ同期情報と一致する。
【００２２】
しかし、例えば通信途上で更新情報が紛失する等の何らかの障害によって、マスタＤＢで行われた更新の更新情報がレプリカＤＢに反映されなかった事象が過去に発生していた場合、マスタ側データ同期情報だけが更新されてレプリカ側データ同期情報は更新されないため、マスタ側データ同期情報とレプリカ側データ同期情報とで値が異なる。
【００２３】
このため、業務アプリケーションを一時的に停止し、マスタＤＢで行われた更新のすべてがレプリカＤＢに反映されるまで待たなくても、同じ更新情報による演算後のマスタ側データ同期情報とレプリカ側データ同期情報とを比較するだけで、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを確認することができる。同様の理由で、同じ更新情報による演算前のマスタ側データ同期情報とレプリカ側データ同期情報とを比較しても、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを確認することができる。これによって、以下のような効果が得られる。
【発明の効果】
【００２４】
本発明によれば、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかを、それらのＤＢを使用する業務アプリケーションを停止させず且つ高速に確認することができる。
【発明を実施するための最良の形態】
【００２５】
『第１の実施の形態』
図１を参照すると、本発明の第１の実施の形態にかかるレプリケーションシステムは、マスタ計算機１００とレプリカ計算機２００とで構成され、双方の計算機は通信路３００を通じて相互に通信可能に接続されている。
【００２６】
マスタ計算機１００は、マスタ表１１１を記憶するマスタＤＢ１１０と、マスタ表１１１の更新情報１２１を記憶する更新情報記憶部１２０と、マスタ側のデータ同期情報１３１を記憶するデータ同期情報記憶部１３０と、マスタＤＢ１１０のデータベース管理システム（ＤＢＭＳ）１４０と、マスタ表１１１を参照および更新して所定の業務処理を遂行する業務アプリケーション１５０と、マスタ側のレプリケーションを管理するレプリケーション管理部１６０と、コンソール１７０とを備えている。また、レプリケーション管理部１６０は、マスタＤＢ１１０の更新情報を抽出する更新情報抽出手段１６１と、更新情報とデータ同期情報との演算を行うデータ同期情報演算手段１６２と、レプリカ計算機２００との間で通信路３００を通じて更新情報、データ同期情報および比較結果などを送受信する転送手段１６３と、レプリケーション異常時に異常メッセージをコンソール１７０へ出力する通報手段１６４とを備えている。
【００２７】
レプリカ計算機２００は、レプリカ表２１１を記憶するレプリカＤＢ２１０と、マスタ計算機１００から受信した更新情報２２１およびデータ同期情報２２２を記憶する受信情報記憶部２２０と、レプリカ側のデータ同期情報２３１を記憶するデータ同期情報記憶部２３０と、レプリカＤＢ２１０のＤＢＭＳ２４０と、レプリカ表２１１を参照して所定の業務処理を遂行する業務アプリケーション２５０と、レプリカ側のレプリケーションを管理するレプリケーション管理部２６０とを備えている。また、レプリケーション管理部２６０は、更新情報とデータ同期情報との演算を行うデータ同期情報演算手段２６１と、更新情報をレプリカＤＢ２１０へ反映する更新情報反映手段２６２と、マスタ計算機１００との間で通信路３００を通じて更新情報、データ同期情報および比較結果などを送受信する転送手段２６３とを備えている。
【００２８】
次に、このように構成された本実施の形態にかかるレプリケーションシステムの動作について説明する。
【００２９】
マスタＤＢ１１０のマスタ表１１１とレプリカＤＢ２１０のレプリカ表２１１とが完全に一致している状態、すなわちデータの同期が取れている状態においては、マスタ側のデータ同期情報１３１とレプリカ側のデータ同期情報２３１とは同じ値を示している。
【００３０】
マスタ計算機１００で稼動している業務アプリケーション１５０がマスタ表１１１に対する更新要求を発行すると、ＤＢＭＳ１４０はその要求を受信してマスタＤＢ１１０をアクセスし、マスタ表１１１を要求された通りに更新する。ここで、更新には、新たなレコードをマスタ表１１１に追加する処理、マスタ表１１１に存在するレコードの内容を別の内容に変更する処理、マスタ表１１１に存在するレコードを削除する処理などの種類がある。
【００３１】
マスタ計算機１００においてマスタＤＢ１１０のマスタ表１１１が更新されると、レプリケーション管理部１６０の更新情報抽出手段１６１は、その更新を検知し、更新情報１２１を作成して更新情報記憶部１２０に記録する（図２のＳ１０１）。更新情報１２１は、それを受信したレプリカ計算機２００においてマスタ側で行われた更新処理と同じ処理が行えるのに必要十分な情報を含んでいれば、その形式は任意である。
【００３２】
例えば図４（ａ）に示すように、マスタ表１１１にレコードが１件存在している状態４０１において、業務アプリケーション１５０からレコードが追加され、レコードが２件存在している状態４０２になった場合、更新情報抽出手段１６１はマスタ表１１１の変更部分４０３を抽出し、この抽出した変更部分４０３をレプリカＤＢに反映するための更新情報を作成する。
【００３３】
また、本実施の形態では、更新情報１２１を更新情報抽出手段１６１が作成して記録したが、ＤＢＭＳ１４０自体に更新情報の作成機能があれば、その機能を用いても良い。
【００３４】
その後、マスタ計算機１００のデータ同期情報演算手段１６２は、更新情報記憶部１２０から更新情報１２１を読み出すと共に、データ同期情報１３１をデータ同期情報記憶部１３０から読み出し、更新情報１２１とデータ同期情報１３１との演算を行う（Ｓ１０２）。そして、その演算結果を新たなデータ同期情報１３１としてデータ同期情報記憶部１３０に書き戻し（Ｓ１０３）、かつ、更新情報１２１と新たなデータ同期情報１３１との組を転送手段１６３により通信路３００を介してレプリカ計算機２００へ送信する（Ｓ１０４）。
【００３５】
データ同期情報演算手段１６２が行う演算は、演算結果のビット数がデータ同期情報１３１のビット数と同じになり、且つ、更新情報１２１およびデータ同期情報１３１の内容が異なれば、異なる演算結果が得られるような種類の演算が望ましい。一例として、本実施の形態では、チェックサム演算を用いる。
【００３６】
チェックサム演算を用いる場合、データ同期情報１３１は例えば１６ビット長のチェックサムになる。データ同期情報演算手段１６２は、更新情報１２１全体を１６ビット長のｎ個のデータに分割し、これとデータ同期情報１３１とを含めたｎ＋１個の１６ビット長データの１の補数和を求め、求めた補数和の１の補数を新たなチェックサムとする。
【００３７】
レプリカ計算機２００では、マスタ計算機１００から送信された更新情報１２１とデータ同期情報１３１の組をレプリケーション管理部２６０の転送手段２６３が受信し、それぞれ更新情報２２１およびデータ同期情報２２２として受信情報記憶部２２０に記憶する（図３のＳ２０１）。
【００３８】
データ同期情報演算手段２６１は、受信情報記憶部２２０から更新情報２２１およびデータ同期情報２２２の組を読み出すと共に、データ同期情報記憶部２３０からレプリカ側のデータ同期情報２３１を読み出し、更新情報２２１とデータ同期情報２３１との演算を行う（Ｓ２０２）。この演算の種類は、マスタ側のデータ同期情報演算手段１６２と全く同一である。従って、チェックサム演算の場合、更新情報２２１とレプリカ側のデータ同期情報２３１とのチェックサム演算を行う。
【００３９】
次にデータ同期情報演算手段２６１は、受信情報記憶部２２０からマスタ側のデータ同期情報２２２を読み出し、このマスタ側のデータ同期情報２２２と前記演算の結果得られたデータ同期情報２３１とを比較し（Ｓ２０３）、一致するかどうかを判定する（Ｓ２０４）。そして、比較結果が一致の場合（Ｓ２０４ＹＥＳ）、データ同期情報演算手段２６１は、演算の結果得られたデータ同期情報をデータ同期情報記憶部２３０に新たなデータ同期情報２３１として記憶し（Ｓ２０５）、受信情報記憶部２２０から読み出していた更新情報２２１を更新情報反映手段２６２に渡す。更新情報反映手段２６２は、受け取った更新情報２２１に基づいて、マスタ側と同一の更新をレプリカＤＢ２１０のレプリカ表２１１に対して行う（Ｓ２０６）。その後、データ同期情報演算手段２６１は、比較一致を示す比較結果を転送手段２６３により通信路３００を介してマスタ計算機１００へ送信する（Ｓ２０７）。
【００４０】
他方、マスタ側のデータ同期情報２２２とレプリカ側のデータ同期情報２３１とが一致しなかった場合（Ｓ２０４でＮＯ）、ステップＳ２０５およびステップＳ２０６の処理は実施されず、データ同期情報演算手段２６１は、比較不一致を示す比較結果を転送手段２６３により通信路３００を介してマスタ計算機１００へ送信する（Ｓ２０７）。
【００４１】
マスタ計算機１００では、レプリカ計算機２００から送信された比較結果を転送手段１６３が受信し（Ｓ１０５）、比較結果が一致か、不一致かを判別する（Ｓ１０６）。そして、不一致であれば（Ｓ１０６でＮＯ）、その旨が更新情報抽出部１６１、データ同期情報演算手段１６２および通報手段１６４に通知され、更新情報抽出部１６１およびデータ同期情報演算手段１６２は更新情報の抽出およびデータ同期情報の演算といったレプリケーションに必要な処理を中止する（Ｓ１０７）。また、通報手段１６４はコンソール１７０にレプリケーション異常を示すメッセージを表示する（Ｓ１０８）。異常メッセージをコンソール１７０に表示する以外の形態で、レプリケーション異常をユーザに通知するようにしても良い。他方、比較結果が一致を示していれば（Ｓ１０６でＹＥＳ）、レプリケーション処理がその後も同様に継続される。
【００４２】
本実施の形態によれば、以下の（Ａ）〜（Ｄ）の効果が奏される。
【００４３】
（Ａ）データの同期が取れているかどうかを確認する際に、マスタＤＢ１１０およびレプリカＤＢ２１０を使用する業務アプリケーションを停止させる必要がない。また、マスタ側のデータ同期情報とレプリカ側のデータ同期情報とを比較するだけなので、マスタ表１１１とレプリカ表２１１の全データを比較する場合に比べて、データが同期しているか否かを高速に確認することができる。その理由は以下の通りである。
【００４４】
本実施の形態では、データの同期が取れている場合には互いに値が一致するデータ同期情報をマスタ計算機１００とレプリカ計算機２００のそれぞれに保持しておき、マスタ計算機１００からレプリカ計算機２００にマスタＤＢ１１０の更新情報１２１を送信する際に、その更新情報１２１とマスタ側のデータ同期情報１３１との演算結果である新たなマスタ側データ同期情報をあわせて送信し、レプリカ計算機２００において、受信した更新情報とレプリカ側のデータ同期情報２３１との演算結果である新たなレプリカ側データ同期情報と、受信したマスタ側のデータ同期情報とを比較して、その比較結果に基づいてデータの同期が取れているか否かを判定するため、マスタＤＢ１１０の更新情報の全てがレプリカＤＢ２１０に反映されていない状態でも、マスタＤＢ１１０とレプリカＤＢ２１０とでデータの同期が取れているかどうかを確認することができる。従って、データの同期が取れているかどうかを確認する際に、マスタＤＢ１１０およびレプリカＤＢ２１０を使用する業務アプリケーションを停止させる必要がなくなる。また、マスタ側のデータ同期情報とレプリカ側のデータ同期情報とを比較するだけなので、マスタ表１１１とレプリカ表２１１の全データを比較する場合に比べて、データが同期しているか否かを高速に確認することができる。
【００４５】
（Ｂ）レプリケーションシステムの一般的な処理の流れの中に、データ同期情報の演算、保存、送信、比較といった処理を追加することで実現できるため、既存のレプリケーションシステムに容易に適用することができる。
【００４６】
（Ｃ）データ同期情報の演算も特殊な演算でなく、ネットワークデータの送信確認などで一般的に使用されているチェックサム演算を利用できる。
【００４７】
（Ｄ）マスタ計算機からレプリカ計算機へ送信しようとしている更新情報との演算後のマスタ側データ同期情報をその更新情報に付加してマスタ計算機からレプリカ計算機へ送信し、レプリカ計算機において、受信した更新情報との演算後のレプリカ側データ同期情報を前記マスタ側データ同期情報と比較するため、今回送受信された更新情報が通信途上で破壊された場合も比較結果は不一致となり、破壊された更新情報でレプリカＤＢが更新されるのを防止することができる。
【００４８】
『第２の実施の形態』
第１の実施の形態では、マスタＤＢについて更新情報が得られた場合に、当該更新情報との演算後のマスタ側データ同期情報とレプリカ側データ同期情報とを比較していたが、本実施の形態では、演算前のデータ同期情報どうしを比較する。本実施の形態にかかるレプリケーションシステムの構成は、図１に示される第１の実施の形態と同じであり、処理の手順が一部相違する。以下、第１の実施の形態との相違点を中心に説明する。
【００４９】
マスタ計算機１００においてマスタＤＢ１１０のマスタ表１１１が更新されると、レプリケーション管理部１６０の更新情報抽出手段１６１は、その更新を検知し、更新情報１２１を作成して更新情報記憶部１２０に記録する（図５のＳ３０１）。
【００５０】
その後、マスタ計算機１００のデータ同期情報演算手段１６２は、更新情報記憶部１２０から更新情報１２１を読み出すと共に、データ同期情報１３１をデータ同期情報記憶部１３０から読み出し、読み出した更新情報１２１とデータ同期情報１３１の組を転送手段１６３により通信路３００を介してレプリカ計算機２００へ送信する（Ｓ３０２）。そして、前記読み出した更新情報１２１とデータ同期情報１３１との演算を行い（Ｓ３０３）、その演算結果を新たなデータ同期情報１３１としてデータ同期情報記憶部１３０に書き戻す（Ｓ３０４）。
【００５１】
レプリカ計算機２００では、マスタ計算機１００から送信された更新情報１２１とデータ同期情報１３１の組をレプリケーション管理部２６０の転送手段２６３が受信し、それぞれ更新情報２２１およびデータ同期情報２２２として受信情報記憶部２２０に記憶する（図６のＳ４０１）。
【００５２】
データ同期情報演算手段２６１は、受信情報記憶部２２０から更新情報２２１およびデータ同期情報２２２の組を読み出すと共に、データ同期情報記憶部２３０からレプリカ側のデータ同期情報２３１を読み出し、これらの読み出したデータ同期情報２２２とデータ同期情報２３１とを比較し（Ｓ４０２）、一致するかどうかを判定する（Ｓ４０３）。そして、比較結果が一致の場合（Ｓ４０３でＹＥＳ）、データ同期情報演算手段２６１は、更新情報２２１とデータ同期情報２３１との演算を行い（Ｓ４０４）、演算の結果得られたデータ同期情報をデータ同期情報記憶部２３０に新たなデータ同期情報２３１として記憶し（Ｓ４０５）、受信情報記憶部２２０から読み出していた更新情報２２１を更新情報反映手段２６２に渡す。更新情報反映手段２６２は、受け取った更新情報２２１に基づいて、マスタ側と同一の更新をレプリカＤＢ２１０のレプリカ表２１１に対して行う（Ｓ４０６）。その後、データ同期情報演算手段２６１は、比較一致を示す比較結果を転送手段２６３により通信路３００を介してマスタ計算機１００へ送信する（Ｓ４０７）。
【００５３】
他方、マスタ側のデータ同期情報２２２とレプリカ側のデータ同期情報２３１とが一致しなかった場合（Ｓ４０３でＮＯ）、ステップＳ４０４〜Ｓ４０６の処理は実施されず、データ同期情報演算手段２６１は、比較不一致を示す比較結果を転送手段２６３により通信路３００を介してマスタ計算機１００へ送信する（Ｓ４０７）。
【００５４】
マスタ計算機１００では、レプリカ計算機２００から送信された比較結果を転送手段１６３が受信し（Ｓ３０５）、比較結果が一致か、不一致かを判別する（Ｓ３０６）。そして、不一致であれば（Ｓ３０６でＮＯ）、その旨が更新情報抽出手段１６１、データ同期情報演算手段１６２および通報手段１８０に通知され、更新情報抽出手段１６１およびデータ同期情報演算手段１６２は更新情報の抽出およびデータ同期情報の演算といったレプリケーションに必要な処理を中止し（Ｓ３０７）、通報手段１６４はコンソール１７０にレプリケーション異常を示すメッセージを表示する（Ｓ３０８）。他方、比較結果が一致を示していれば（Ｓ３０６でＹＥＳ）、レプリケーション処理がその後も同様に継続される。
【００５５】
本実施の形態によれば、第１の実施の形態と同様に前記（Ａ）〜（Ｃ）の効果が得られると同時に、次の（Ｅ）の効果を得ることができる。
【００５６】
（Ｅ）マスタ計算機からレプリカ計算機へ送信しようとしている更新情報との演算前のマスタ側データ同期情報をその更新情報に付加してマスタ計算機からレプリカ計算機へ送信し、レプリカ計算機において、受信した更新情報との演算前のレプリカ側データ同期情報を前記マスタ側データ同期情報と比較するため、今回送受信された更新情報の通信途上での破壊の有無の影響を受けずに、マスタＤＢとレプリカＤＢとでデータの同期が取れているかどうかの確認が可能となる。
【００５７】
『その他の実施の形態』
以上の各実施の形態では、データ同期情報演算手段で行う演算として、チェックサム演算を用いたが、更新情報およびデータ同期情報の内容が異なれば、異なる演算結果が得られ、且つ、演算結果のビット数がデータ同期情報のビット数と同じになる演算であれば、チェックサム演算以外の種類の演算でも良い。例えば、更新情報をデータ同期情報と同じビット長のｎ個のデータに分割し、このｎ個のデータとデータ同期情報とを含めたｎ＋１個のデータの論理和、論理積、排他的論理和などの論理演算結果を求める種類の演算も、利用は可能である。
【００５８】
また、本発明のマスタ計算機およびレプリカ計算機におけるレプリケーションに関する機能は、ハードウェア的に実現することは勿論、プログラムで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態におけるマスタ計算機におけるレプリケーション管理部あるいはレプリカ計算機におけるレプリケーション管理部として機能させる。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施の形態のブロック図である。
【図２】本発明の第１の実施の形態におけるマスタ計算機のレプリケーション管理部の処理例を示すフローチャートである。
【図３】本発明の第１の実施の形態におけるレプリカ計算機のレプリケーション管理部の処理例を示すフローチャートである。
【図４】本発明の第１の実施の形態における更新情報の説明図である。
【図５】本発明の第２の実施の形態におけるマスタ計算機のレプリケーション管理部の処理例を示すフローチャートである。
【図６】本発明の第２の実施の形態におけるレプリカ計算機のレプリケーション管理部の処理例を示すフローチャートである。
【符号の説明】
【００６０】
１００…マスタ計算機
１１０…マスタデータベース
１１１…マスタ表
１２０…更新情報記憶部
１２１…更新情報
１３０…データ同期情報記憶部
１３１…データ同期情報
１４０…データベース管理システム（ＤＢＭＳ）
１５０…業務アプリケーション
１６０…レプリケーション管理部
１６１…更新情報抽出手段
１６２…データ同期情報演算手段
１６３…転送手段
１６４…通報手段
１７０…コンソール
２００…レプリカ計算機
２１０…レプリカデータベース
２１１…レプリカ表
２２０…受信情報記憶部
２２１…更新情報
２２２…データ同期情報
２３０…データ同期情報記憶部
２３１…データ同期情報
２４０…データベース管理システム（ＤＢＭＳ）
２５０…業務アプリケーション
２６０…レプリケーション管理部
２６１…データ同期情報演算手段
２６２…更新情報反映手段
２６３…転送手段
３００…通信路
【図１】
2008243150.tif 000003
【図２】
2008243150.tif 000004
【図３】
2008243150.tif 000005
【図４】
2008243150.tif 000006
【図５】
2008243150.tif 000007
【図６】
2008243150.tif 000008