(57)【特許請求の範囲】
【請求項１】
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、
前記マスタデータベースのレプリケーション先となるレプリカデータベースと、
前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と、
前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、
前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、
所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部と、
を備え、
前記複数のトランザクションは、
第１トランザクションよりも先に開始され、かつ、前記第１トランザクションよりも後に終了する、第２トランザクションを少なくとも一つ有し、
前記制御部は、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、
データベースシステム。
【請求項２】
前記非同期処理部に対して前記レプリカデータベースのデータ更新の再開を指示する非同期処理開始指示部をさらに備える、請求項１に記載のデータベースシステム。
【請求項３】
前記制御部は、バッチ処理の実行要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部にバッチ処理を実行させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と前記バッチ処理とを行う、請求項２に記載のデータベースシステム。
【請求項４】
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うレプリケーション制御装置であって、
前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と、
前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、
前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マス
タデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、
所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部と、
を備え、
前記複数のトランザクションは、
第１トランザクションよりも先に開始され、かつ、前記第１トランザクションよりも後に終了する、第２トランザクションを少なくとも一つ有し、
前記制御部は、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、
レプリケーション制御装置。
【請求項５】
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う際に、コンピュータによって実行されるレプリケーション方法であって、
（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、
（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番とを対応付けるステップと、
（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うステップと、
（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップと、
を備え、
前記複数のトランザクションは、
第１トランザクションよりも先に開始され、かつ、前記第１トランザクションよりも後に終了する、第２トランザクションを少なくとも一つ有し、
前記ステップ（ｄ）では、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記ステップ（ａ）では、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記ステップ（ｃ）では、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、
レプリケーション方法。
【請求項６】
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、コンピュータに、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を実行させるためのプログラムであって、
前記コンピュータに、
（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、
（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番とを対応付けるステップと、
（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うステップと、
（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップと、
を実行させ、
前記複数のトランザクションは、
第１トランザクションよりも先に開始され、かつ、前記第１トランザクションよりも後に終了する、第２トランザクションを少なくとも一つ有し、
前記ステップ（ｄ）では、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記ステップ（ａ）では、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記ステップ（ｃ）では、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、オンラインで行われる業務処理のデータ（以下、業務データという。）を、データベースを利用して管理するシステムが知られている。このようなシステムでは、業務データを保存するために、マスタデータベースと、バックアップ用のレプリカデータベースとが用いられる場合が多い。例えば、ディスク障害等によりマスタデータベースに障害が発生した場合には、マスタデータベースがシステムから切り離され、レプリカデータベースが新しいマスタデータベースとしてシステムに組み込まれる。これにより、システムを即座に復旧させることができる。通常の運用時には、マスタデータベースにおける業務データの更新内容が、バックアップ用のレプリカデータベースに随時または定期的に反映される。
【０００３】
ところで、データベースを利用して業務データを管理する場合、ある時点でのデータベースの静止点を作りたいという要求がしばしば存在する。例えば、前日の業務データの統計データが必要な場合には、日付が変わるタイミングで、データベースの静止点を作成することが考えられる。この場合、例えば、バッチ処理によって、データベースの上記静止点から前日の業務の統計データを取得することができる。
【０００４】
データベースの静止点を作成する方法は、例えば、特許文献１に開示されている。特許文献１に開示されたシステムでは、オンライン業務処理を一時中断することによってデータベースの更新を停止する。これにより、データベースの静止点を作成することができる。しかしながら、上記の方法では、オンライン業務処理を中断させる必要があるので、システムの可用性が低下する。
【０００５】
一方、特許文献２には、オンライン業務処理を停止させることなくデータベースの静止点を作成することができる方法が開示されている。特許文献２に開示されたシステムでは、データベースは、複数の記憶エリアによって構成されている。このシステムでは、上記複数の記憶エリアのうちの一つに、最新データが記憶され、他の一つに、過去のある時点でのデータが記憶される。このため、特許文献２のシステムでは、静止点を作成するためにデータベースの更新を停止する必要がない。したがって、オンライン業務処理を停止させることなくデータベースの静止点を作成することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−３１４０７１号公報
【特許文献２】特開平１０−１４３４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、複数の業務処理を管理する際には、各業務処理の開始時刻を基準にして、業務データの統計処理を行う場合がある。このような統計処理を行うためには、図１２を用いて後述するように、業務処理の開始時刻を基準にして、データベースの静止点を作成する必要がある。一方、特許文献２に開示されているような従来のシステムでは、データベ
ースの静止点は、データベースの更新時刻を基準にして作成される。このため、上記のような従来のシステムでは、業務処理の開始時刻を基準にしてデータベースの静止点を作成する場合に、以下に説明するような問題が生じる。
【０００８】
図１２は、業務処理の開始時刻を基準にしたデータベースの静止点を、従来のシステムで作成しようとした場合に生じる問題を説明するための図である。図１２では、業務Ａ、業務Ｂおよび業務Ｃの処理（トランザクション）がオンラインで行われる場合について説明する。なお、業務Ａ、業務Ｂおよび業務Ｃは、互いに独立して処理される。
【０００９】
図１２においては、業務Ａ、業務Ｂおよび業務Ｃの処理にかかる時間を、矢印の長さで示している。したがって、図１２の例では、業務Ａの処理時間が最も長く、業務Ｃの処理時間が最も短い。また、図１２の例では、業務Ａの処理は１月１日に開始され、業務Ｂ,Ｃの処理は１月２日に開始されている。業務Ｃの処理は、業務Ｂの処理よりも後に開始されている。業務Ａの処理は、業務Ｂの処理よりも後に完了し、業務Ｂの処理は、業務Ｃの処理よりも後に完了している。したがって、業務Ａ,Ｂ,Ｃを、業務処理の開始時刻に基づいて時系列に並べると、業務Ａ、業務Ｂおよび業務Ｃの順になる。一方、業務Ａ,Ｂ,Ｃを、データベースにおいて業務データが更新された時刻に基づいて時系列に並べると、業務Ｃ、業務Ｂおよび業務Ａの順になる。すなわち、図１２の例では、業務Ａ,Ｂ,Ｃの処理にかかる時間がそれぞれ異なり、業務Ａ,Ｂ,Ｃの処理の開始順と、業務Ａ,Ｂ,Ｃの業務データの更新順が異なっている。
【００１０】
ここで、例えば、１月１日に開始された業務処理の全ての更新内容を反映したデータベースの静止点を取得したいという要求があるとする。この場合、図１２の例では、静止点には、業務Ａの更新内容のみを反映させて、業務Ｂ,Ｃの更新内容は反映させない必要がある。
【００１１】
しかしながら、上述したように、従来のシステムでは、データベースの更新時刻を基準にして静止点が作成される。このため、従来のシステムでは、データベースのある時点でのデータの状態を示した静止点を作成することはできるが、上記の要求を満たした静止点を作成することはできない。具体的には、図１２の例の場合、業務Ｂの更新内容のみを反映させた静止点、または業務Ｂ,Ｃの更新内容のみを反映させた静止点を作成することはできる。しかしながら、業務Ａの更新内容のみを反映させた静止点を作成することはできない。
【００１２】
従来のシステムによって、業務Ａの更新内容のみを反映させた静止点を作成するためには、業務Ａの業務データが更新された後に、業務Ｂ,Ｃの業務データが更新されるように、データベースの更新時期について順序制御を行う必要がある。しかしながら、この場合、業務Ａの処理が完了するまで、業務Ｂ,Ｃの処理を完了させることができないので、システムのスループットが低下する。
【００１３】
本発明の目的の一例は、上記問題を解消し、スループットを低下させることなく、業務処理の開始時刻を基準にしてデータベースの静止点を作成することができる、データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の一側面におけるデータベースシステムは、複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースと、前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と
、前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部とを備える。
【００１５】
また、上記目的を達成するため、本願発明の一側面におけるレプリケーション制御装置は、複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うレプリケーション制御装置である。このレプリケーション装置は、前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と、前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部とを備える。
【００１６】
また、上記目的を達成するため、本発明の一側面におけるレプリケーション方法は、複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うレプリケーション方法である。このレプリケーション方法は、（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番とを対応付けるステップと、（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うステップと、（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップとを備える。
【００１７】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、コンピュータに、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を実行させるためのプログラムである。このプログラムは、前記コンピュータに、（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番とを対応付けるステップと、（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を
行うステップと、（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップとを実行させる。
【発明の効果】
【００１８】
スループットを低下させることなく、業務処理の開始時刻を基準にしてデータベースの静止点を作成することができる、データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の一実施形態にかかるデータベースシステムの概略構成を示すブロック図である。
【図２】図２は、データベースシステムの構成を具体的に示すブロック図である。
【図３】図３は、通番管理部に記憶される通番管理表の一例を示す図である。
【図４】図４は、処理データ格納部に記憶される処理データ格納表の一例を示す図である。
【図５】図５は、データベースシステムの基本動作の一例を示すフロー図である。
【図６】図６は、業務アプリケーションおよび非同期処理制御アプリケーションの処理時間、ならびに、通番採番部による通番の採番タイミングを表した図である。
【図７】図７は、処理データ格納表に格納された処理内容（非同期処理データ）の一例を示す図である。
【図８】図８は、データベースシステムの復旧動作の一例を示すフロー図である。
【図９】図９は、データベースシステムの変形例を示す図である。
【図１０】図１０は、制御部によって処理データ格納表に登録される処理内容の一例を示す図である。
【図１１】図１１は、本発明の実施の形態におけるレプリケーション制御装置を実現するコンピュータの一例を示すブロック図である。
【図１２】図１２は、業務処理の開始時刻を基準にしたデータベースの静止点を、従来のシステムで作成しようとした場合に生じる問題を説明するための図である。
【発明を実施するための形態】
【００２０】
（発明の概要）
本発明は、例えば、オンライン業務処理で使用するデータベース（マスタデータベース）へのデータ更新を、バックアップ用のレプリカデータベースにレプリケーションする際に利用することができる。具体的には、本発明の一例では、各業務の業務データのマスタデータベースへの更新順ではなく、各業務のトランザクション処理単位で決定される通番順に、レプリカデータベースへのレプリケーション処理が実行される。これにより、レプリカデータベースから、業務処理の開始時刻を基準とした静止点を取得することができる。また、本発明の一例では、業務アプリケーションから、レプリケーション処理を停止させることができる。これにより、ユーザが所望する任意のタイミングでレプリケーション処理を停止することができる。その結果、レプリカデータベースから、ユーザが所望する任意の静止点を取得することができる。
【００２１】
（実施の形態）
以下、本発明の実施の形態にかかる、データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラムについて、図１〜図１１を参照しながら説明する。
【００２２】
［システム構成］
図１は、本発明の一実施形態にかかるデータベースシステムの概略構成を示すブロック図である。図１を参照して、本実施形態にかかるデータベースシステム１０は、マスタデ
ータベース（以下、マスタＤＢと記す。）１２、レプリカデータベース（以下、レプリカＤＢと記す。）１４、通番採番部１６、更新ログ生成部１８、非同期処理部２０および制御部２２を備える。
【００２３】
詳細は後述するが、データベースシステム１０では、業務処理（トランザクション）の開始時刻を基準としてレプリケーション処理を実行することができる。これにより、データベースシステム１０は、マスタＤＢ１２において行われるデータ更新とは非同期で、該データ更新をレプリカＤＢ１４に反映させることができる。また、データベースシステム１０は、所定の条件が満たされた場合（例えば、レプリケーション処理の停止要求を受けた場合）に、レプリケーション処理を停止する。したがって、例えば、ユーザがデータベースシステム１０に対して任意のタイミングでレプリケーション処理の停止要求を行うことにより、ユーザが所望する任意の静止点が作成される。以下、データベースシステム１０の各構成要素について説明する。
【００２４】
マスタＤＢ１２は、業務データを格納している。本実施形態では、例えば、複数（本実施形態では３つ）の業務アプリケーション４０ａ,４０ｂ,４０ｃによって、マスタＤＢ１２の業務データが参照および更新される。業務アプリケーション４０ａ,４０ｂ,４０ｃは、例えばユーザアプリケーションであり、ユーザが実施した業務イベントごとのトランザクションを実行する。本実施形態では、業務アプリケーション４０ａ,４０ｂ,４０ｃは、オンラインで発生する業務イベントのイベントメッセージを受けて、トランザクションを実行する。業務アプリケーション４０ａ,４０ｂ,４０ｃは、並列に動作する。本実施形態では、業務アプリケーション４０ａ,４０ｂ,４０ｃは、互いに異なるレコードを更新する。
【００２５】
本実施形態では、業務アプリケーション４０ａ,４０ｂ,４０ｃは、例えば、トランザクションを実行する際に、通番採番部１６に対して採番要求を行う。また、業務アプリケーション４０ａ,４０ｂ,４０ｃはそれぞれ、各トランザクションによって実行された全てのデータ更新の内容を、通番採番部１６によって付与されるトランザクションごとの通番とともに、更新ログ生成部１８に送信する。
【００２６】
レプリカＤＢ１４は、マスタＤＢ１２のバックアップ用のデータベースであり、かつ、データベースの静止点を作成するためのデータベースでもある。
【００２７】
通番採番部１６は、業務アプリケーション４０ａ,４０ｂ,４０ｃからの採番要求を受けて、複数のトランザクションに通番を付与する。また、通番採番部１６は、トランザクションに付与した通番を、そのトランザクションを実行するいずれかの業務アプリケーション４０ａ,４０ｂ,４０ｃに通知する。本実施形態では、通番採番部１６は、各トランザクションの開始時刻を基準として、複数のトランザクションに通番を付与する。例えば、図１２に示すように業務Ａ、業務Ｂ、および業務Ｃの順にトランザクションが開始される場合、通番採番部１６は、業務Ａのトランザクション、業務Ｂのトランザクション、および業務Ｃのトランザクションの順に通番を付与する。
【００２８】
また、本実施の形態において「トランザクションの開始時刻」には、データベース領域におけるトランザクションの開始時刻、更には、データベース領域におけるトランザクションの開始が示唆された時刻も含まれる。例えば、業務アプリケーションが処理の途中で一旦、要求元に「受付しました」という旨を返信し、これによって、トランザクションの受付が確定したとする。この場合は、データベースにおいて実際の処理が実行される前、即ち、受付の確定時が、「トランザクションの開始時刻」となる。
【００２９】
図１を参照して、更新ログ生成部１８は、業務アプリケーション４０ａ,４０ｂ,４０ｃ
から送信されてきたトランザクションごとのデータ更新の内容に従って、各トランザクションに対応する更新ログを生成する。また、更新ログ生成部１８は、上記更新ログと業務アプリケーション４０ａ,４０ｂ,４０ｃから送信されてきた通番とを対応付ける。具体的には、更新ログ生成部１８は、複数のトランザクションに対応する複数の更新ログと通番採番部１６によって上記複数のトランザクションに付与された通番とを対応付ける。例えば、図１２に示すように業務Ａ、業務Ｂ、および業務Ｃのトランザクションが実行される場合、更新ログ生成部１８は、業務Ａ、業務Ｂ、および業務Ｃのトランザクションにそれぞれ対応する３つの更新ログを生成する。また、更新ログ生成部１８は、業務Ａ、業務Ｂ、および業務Ｃのトランザクションに対応する更新ログと、通番採番部１６によって業務Ａ、業務Ｂ、および業務Ｃのトランザクションに付与された通番とを対応付ける。
【００３０】
図１を参照して、非同期処理部２０は、マスタＤＢ１２のデータ更新とは非同期で、レプリカＤＢ１４のデータ更新を行う。具体的には、非同期処理部２０は、更新ログ生成部１８によって生成された複数の更新ログに基づいて、かつ、更新ログ生成部１８によって複数の更新ログに対応付けられた通番に従って、レプリカＤＢ１４のデータ更新を行う。例えば、図１２に示すように業務Ａ,Ｂ,Ｃのトランザクションが開始される場合、非同期処理部２０は、マスタＤＢ１２において行われる業務Ａ,Ｂ,Ｃのデータ更新を、業務Ａ、業務Ｂ、および業務Ｃの順に、レプリカＤＢ１４に反映させる。
【００３１】
図１を参照して、制御部２２は、所定の条件が満たされた場合に、非同期処理部２０によるレプリカＤＢ１４のデータ更新を停止させる。本実施形態では、制御部２２は、例えば、非同期処理制御アプリケーション５０から停止要求を受けた場合に、上記所定の条件が満たされたとして、非同期処理部２０を制御して、レプリカＤＢ１４のデータ更新を停止する。
【００３２】
なお、非同期処理制御アプリケーション５０は、非同期処理部２０の処理を制御するための業務アプリケーションである。非同期処理制御アプリケーション５０は、不定期または定期的に発生する停止イベントのイベントメッセージを受け取った場合に、制御部２２に対して停止要求を行う。例えば、非同期処理制御アプリケーション５０は、システム管理者が運用端末を用いて実施した停止イベントのイベントメッセージを受けて、制御部２２に対して停止要求を行う。また、例えば、非同期処理制御アプリケーション５０は、所定の時刻（例えば、午前０時）に発生するようにスケジュールされた停止イベントのイベントメッセージを受けて、制御部２２に対して停止要求を行う。なお、上記停止イベントには、レプリケーション処理を停止させることのみを目的とするイベントに加えて、非同期処理部２０にレプリケーション処理以外の処理（例えば、後述の変形例におけるバッチ処理）を実行させることを目的とするイベントも含まれる。したがって、上記停止要求には、非同期処理部２０によるレプリケーション処理を停止させることのみを目的とする要求に加えて、非同期処理部２０にレプリケーション処理以外の処理を実行させることを目的とする要求（例えば、後述の変形例におけるバッチ処理の実行要求）も含まれる。
【００３３】
以上のように、本実施形態にかかるデータベースシステム１０では、業務処理（トランザクション）の開始時刻を基準として、マスタＤＢ１２において行われるデータ更新がレプリカＤＢ１４に反映される。また、データベースシステム１０は、制御部２２に対して停止要求が行われた場合に、レプリカＤＢ１４へのレプリケーション処理を停止する。これにより、複数のトランザクションによるデータベースのデータ更新の時期について順序制御を行うことなく、トランザクションの開始時刻を基準とした静止点を作成することができる。例えば、図１２に示すように業務Ａ、業務Ｂ、および業務Ｃの順に処理が開始され、さらに、業務Ａの処理開始後かつ業務Ｂの処理開始前に、制御部２２に対して停止要求が行われた場合、業務Ａのデータ更新のみがレプリカＤＢ１４に反映される。
【００３４】
また、本実施形態にかかるデータベースシステム１０によれば、マスタＤＢ１２に対する処理を停止することなく、レプリカＤＢ１４においてデータベースの静止点を作成することができる。したがって、スループットを低下させることなく、業務処理の開始時刻を基準にしてデータベースの静止点を作成することが可能になる。また、データベースシステム１０によれば、例えば、データベースの静止点を作成したい任意のタイミングでユーザ等がオンラインで停止イベントを発生させることによって、ユーザ等が所望する任意の静止点を作成することができる。
【００３５】
次に、本実施形態に係るデータベースシステム１０の構成について具体的に説明する。図２は、データベースシステム１０の構成を具体的に示すブロック図である。
【００３６】
図２を参照して、データベースシステム１０は、上述のマスタＤＢ１２、上述のレプリカＤＢ１４およびレプリケーション制御装置３０を備える。レプリケーション制御装置３０は、上述の通番採番部１６、更新ログ生成部１８、非同期処理部２０および制御部２２に加えてさらに、通番管理部２４、処理データ格納部２６、および非同期処理開始指示部２８を備える。なお、データベースシステム１０の各構成要素、業務アプリケーション４０ａ,４０ｂ,４０ｃおよび非同期処理制御アプリケーション５０に関する説明のうち、図１を用いて説明した内容については説明を省略する。
【００３７】
本実施形態では、非同期処理制御アプリケーション５０は、停止イベントのイベントメッセージを受け取った場合に、通番採番部１６に対して採番要求を行う。通番採番部１６は、非同期処理制御アプリケーション５０からの採番要求を受けて、停止イベントに通番を付与する。また、通番採番部１６は、停止イベントに付与した通番を、非同期処理制御アプリケーション５０に通知する。非同期処理制御アプリケーション５０は、通番採番部１６によって付与された通番を、停止要求とともに制御部２２へ送信する。
【００３８】
通番管理部２４は、通番管理表を記憶する。図３は、通番管理部２４に記憶される通番管理表の一例を示す図である。図３に示すように、通番管理表は、採番済通番と、処理済通番とを管理する。詳細は後述するが、採番済通番は、通番採番部１６がこれまでに採番した通番のうち、最も新しい通番を示している。採番済通番は、通番採番部１６によって更新される。処理済通番は、非同期処理部２０によって実行された処理のうち、最も新しい処理に対応する通番を示している。処理済通番は、非同期処理部２０によって更新される。
【００３９】
図２を参照して、本実施形態では、通番採番部１６は、通番管理部２４に記憶された通番管理表を参照して、上述の停止イベントおよびトランザクションに対して通番を付与する。具体的には、通番採番部１６は、上記通番表の採番済通番を取得して、取得した通番に１を足した番号を、上述の停止イベントまたはトランザクションの通番として採番する。その後、採番済通番を、採番した通番に更新する。
【００４０】
更新ログ生成部１８は、更新ログを、該更新ログに対応付けられた通番とともに、処理データ格納部２６の後述する処理データ格納表に登録する。また、制御部２２は、非同期処理制御アプリケーション５０から送信されてきた停止要求に基づいて、非同期処理部２０の処理を停止するための制御情報を生成する。さらに、制御部２２は、生成した制御情報を、非同期処理制御アプリケーション５０から送信されてきた通番とともに、処理データ格納部２６の処理データ格納表に登録する。本実施形態では、上記の更新ログおよび制御情報は、制御部２２が実行すべき処理内容（非同期処理データ）として、処理データ格納部２６の処理データ格納表に登録される。
【００４１】
処理データ格納部２６は、処理データ格納表を記憶する。処理データ格納表には、非同
期処理部２０が実行すべき処理の内容が登録される。図４は、処理データ格納部２６に記憶される処理データ格納表の一例を示す図である。図４に示すように、処理データ格納表には、更新ログ生成部１８および制御部２２によって、通番、種別、および処理内容が登録される。種別は、処理内容に登録されているデータの種別を示す。種別が「ＤＢ更新」は、更新ログ生成部１８が登録した処理内容であることを示し、種別が「制御」は、制御部２２が登録した処理内容であることを示す。
【００４２】
なお、業務アプリケーション４０ａ,４０ｂ,４０ｃが、マスタＤＢ１２に対するデータ更新をロールバックした場合、業務アプリケーション４０ａ,４０ｂ,４０ｃは、更新ログ生成部１８に、処理なしを示すデータを送信する。この場合、更新ログ生成部１８は、図４に示すように、処理内容として、「処理なし」を示すデータを処理データ格納表に登録する。
【００４３】
図２を参照して、非同期処理部２０は、通番管理部２４に記憶された通番管理表（図３参照）を参照し、実行していない処理が存在するか否かを確認する。非同期処理部２０は、実行していない処理が存在すれば、該実行していない処理のデータを、処理データ格納部２６に記憶された処理データ格納表（図４参照）から取得する。その後、非同期処理部２０は、処理データ格納部２６から取得したデータに基づいて、処理を実行する。
【００４４】
例えば、通番管理表が図３に示す状態で、かつ処理データ格納表が図４に示す状態の場合には、非同期処理部２０は、実行していない処理のデータとして、処理データ格納表から、「非同期処理停止」を示すデータを取得する。その後、非同期処理部２０は、非同期処理停止を示すデータに基づいて、レプリカＤＢ１４への処理を停止する。すなわち、レプリカＤＢ１４へのレプリケーション処理が停止される。なお、上記の「非同期処理停止」を示すデータは、非同期処理制御アプリケーション５０からの停止要求に基づいて、制御部２２が登録したデータである。
【００４５】
非同期処理開始指示部２８は、運用端末６０から開始要求を受けた場合に、非同期処理部２０に、処理の開始を指示する。例えば、上述のようにレプリカＤＢ１４への処理が停止されている状態において、非同期処理開始指示部２８が開始指示を送信すると、非同期処理部２０は、通番に従って処理を再開する。なお、非同期処理開始指示部２８からの開始指示には、例えば、レプリケーション処理再開のための"通常開始"の指示と、データベースの復旧処理のための"復旧開始"の指示とがある。
【００４６】
運用端末６０は、例えば、データベースシステム１０のユーザおよび管理者によって操作される端末である。データベースシステム１０のユーザおよび管理者は、上述のように、運用端末６０から非同期処理開始指示部２８に対して開始要求を行うことができる。また、ユーザおよび管理者は、運用端末６０を介して、レプリカＤＢ１４からデータベースの静止点を取得することができる。なお、詳細な説明は省略するが、上記停止イベントのイベントメッセージを、運用端末６０から非同期処理制御アプリケーション５０へ送信してもよい。
【００４７】
［システム動作］
次に、本実施形態にかかるデータベースシステム１０の動作について説明する。なお、本実施形態では、データベースシステム１０を動作させることによって、レプリケーション方法が実施される。よって、本実施形態におけるレプリケーション方法の説明は、以下のデータベースシステム１０の動作説明に代える。なお、以下の説明においては、図２〜図４を適宜参照する。
【００４８】
図５は、データベースシステム１０の基本動作の一例を示すフロー図である。図５を参
照して、まず、業務アプリケーション４０ａ,４０ｂ,４０ｃから採番要求を受けると、通番採番部１６が、複数のトランザクションに通番を付与し、通番管理部２４に記憶された通番管理表（図３参照）を更新する。そして、非同期処理部２０は、通番管理表から、採番済通番と処理済通番とを取得する（ステップＳ１）。
【００４９】
次に、非同期処理部２０は、採番済通番と処理済通番とが一致しているか否かを判断する（ステップＳ２）。採番済通番と処理済通番とが一致している場合、非同期処理部２０が実行すべき処理が無いことを意味する。したがって、非同期処理部２０は、一定時間待機した後、ステップＳ１の処理を再度実行する。
【００５０】
ステップＳ２において、採番済通番と処理済通番とが一致していない場合、非同期処理部２０は、処理データ格納部２６に記憶された処理データ格納表（図４参照）を参照して、処理済通番に１を足した通番のデータが登録されているか否かを判断する（ステップＳ３）。
【００５１】
ステップＳ３においてデータが登録されていない場合、非同期処理部２０は、一定時間待機した後、再度ステップＳ３の処理を行う。なお、ステップＳ３においてデータが登録されていない場合は、業務アプリケーション４０ａ,４０ｂ,４０ｃが処理中で、その処理の更新ログが、処理データ格納表にまだ登録されていない状態であることを意味する。
【００５２】
ステップＳ３においてデータが登録されている場合、非同期処理部２０は、処理データ格納表から処理内容を示すデータを取得する（ステップＳ４）。次に、非同期処理部２０は、取得したデータに基づいて、処理内容の種別が「ＤＢ更新」か否かを判別する（ステップＳ５）。
【００５３】
ステップＳ５において、処理内容の種別が「ＤＢ更新」の場合、非同期処理部２０は、処理内容に従ってレプリカＤＢ１４のデータ更新を行う（ステップＳ６）。これにより、マスタＤＢ１２において行われたデータ更新がレプリカＤＢ１４に反映される。なお、処理内容が「処理なし」の場合（例えば、図４の通番２３参照）は、ステップＳ６において非同期処理部２０は、レプリカＤＢ１４のデータ更新を行わない。
【００５４】
次に、非同期処理部２０は、通番管理部２４に記憶された通番管理表（図３参照）の処理済通番に１を足して、該処理済通番を、ステップＳ６において実行した処理内容の通番に更新する（ステップＳ７）。その後、データベースシステム１０は、ステップＳ１の処理に戻る。
【００５５】
ステップＳ５において、処理内容の種別が「ＤＢ更新」では無い場合、すなわち、処理内容の種別が「制御」の場合（例えば、図４の通番２０参照）、非同期処理部２０は、通番管理表（図３参照）の処理済通番に１を足して、該処理済通番を、ステップＳ４において取得したデータの通番に更新する（ステップＳ８）。
【００５６】
次に、非同期処理部２０は、非同期処理開始指示部２８から上述の「通常開始」の指示があったか否かを判別する（ステップＳ９）。非同期処理開始指示部２８から「通常開始」の指示が無い場合、非同期処理部２０は、「通常開始」の指示があるまで待機する。これにより、非同期処理部２０による非同期処理が停止される。すなわち、レプリカＤＢ１４のデータ更新が停止される。
【００５７】
ステップＳ９において「通常開始」の指示があった場合、データベースシステム１０は、ステップＳ１に戻る。
【００５８】
以上のように、データベースシステム１０では、非同期処理部２０からレプリカＤＢ１４へのデータ更新を停止することによって、レプリカＤＢ１４からデータベースの静止点を取得することができる。ユーザおよびシステム管理者は、運用端末６０からレプリカＤＢ１４を参照することによって、上記静止点での統計処理等を行うことができる。また、非同期処理部２０による処理が停止している間でも、業務アプリケーション４０ａ,４０ｂ,４０ｃの処理は継続させることができる。また、更新ログは、処理データ格納部２６の処理データ格納表に蓄積される。静止点での処理（統計処理等）が完了すれば、運用端末６０から「通常開始」の要求を非同期処理開始指示部２８に送信することで、非同期処理開始指示部２８から非同期処理部２０へ開始指示が送信される。これにより、非同期処理部２０は処理を再開する。
【００５９】
ここで、処理時間の異なる複数の業務が並列で実行され、業務開始順とデータベース更新順とが異なる場合を例に挙げて、データベースシステム１０の効果を説明する。
【００６０】
図６は、業務アプリケーション４０ａ,４０ｂ,４０ｃおよび非同期処理制御アプリケーション５０の処理時間、ならびに、通番採番部１６による通番の採番タイミングを表した図である。この例では、業務アプリケーション４０ａ,４０ｂ,４０ｃがそれぞれ並列に動作し、マスタＤＢ１２を更新する。業務アプリケーション４０ａ,４０ｂ,４０ｃは、図６に示す矢印の先端のタイミングで、マスタＤＢ１２の更新および更新ログ生成部１８への更新内容の登録を行う。
【００６１】
業務アプリケーション４０ａは、１月１日に業務処理を開始し、１月２日にマスタＤＢ１２のデータ更新を完了する。業務アプリケーション４０ｂおよび業務アプリケーション４０ｃは、１月２日に業務処理を開始する。この例では、１月１日中に処理を開始した業務アプリケーション４０ａの全ての更新が反映されたデータベースの静止点を取得することを考える。そのため、非同期処理制御アプリケーション５０は、日付が１月２日に変わったタイミングで処理を開始する。
【００６２】
業務アプリケーション４０ａ,４０ｂ,４０ｃおよび非同期処理制御アプリケーション５０が、処理データ格納部２６の処理データ格納表に格納した処理内容（非同期処理データ）の一例を図７に示す。図６および図７を参照して、この例では、業務アプリケーション４０ａの処理に対して通番２５が採番され、非同期処理制御アプリケーション５０の処理に対して通番２６が採番され、業務アプリケーション４０ｂの処理に対して通番２７が採番され、業務アプリケーション４０ｃの処理に対して通番２８が採番されている。ただし、図７を参照して、処理内容が処理データ格納表に登録される順番は、上記通番の順番通りではない。この例では、通番２６の処理内容、通番２８の処理内容、通番２７の処理内容および通番２５の処理内容の順に、処理データ格納表に登録される。
【００６３】
この例では、非同期処理部２０は、処理データ格納部２６の処理データ格納表（図７参照）を参照し、通番２５の処理内容から順に実行する。通番２５は種別が「ＤＢ更新」であるため、非同期処理部２０は、処理内容に従ってレプリカＤＢ１４を更新する。通番２６は、種別が「制御」であるため、非同期処理部２０は、非同期処理（レプリカＤＢ１４のデータ更新）を停止する。これにより、１月１日に処理を開始した業務アプリケーション４０ａのデータ更新が反映されて、１月２日に処理を開始した業務アプリケーション４０ｂ,４０ｃのデー更新が反映されていないデータベースの静止点を、レプリカＤＢ１４において作成できる。データベースシステム１０のユーザ等は、運用端末６０を使用してレプリカＤＢ１４を参照し、１月１日に発生した業務データの統計処理等を行うことができる。
【００６４】
次に、マスタＤＢ１２に障害が発生した場合の、システム復旧までの動作を説明する。
マスタＤＢ１２に障害が発生すると、マスタＤＢ１２を更新する全ての業務アプリケーション４０ａ,４０ｂ,４０ｃの処理が停止される。この場合、例えば、システム管理者は、運用端末６０から非同期処理開始指示部２８へ「復旧開始」の開始要求を行う。これにより、非同期処理開始指示部２８は、非同期処理部２０に「復旧開始」の開始指示を送信する。
【００６５】
非同期処理部２０は、「復旧開始」の開始指示を受けると、後述する処理フロー（図８）に従って、処理データ格納部２６の処理データ格納表に登録された全ての更新ログをレプリカＤＢ１４へ反映する。レプリカＤＢ１４への更新ログの反映が完了することにより、レプリカＤＢ１４において、マスタＤＢ１２の障害発生直前のデータ状態が復旧される。次に、データベースシステム１０からマスタＤＢ１２を切り離して、該マスタＤＢ１２の代わりにレプリカＤＢ１４を用いる。その後、業務アプリケーション４０ａ,４０ｂ,４０ｃによるレプリカＤＢ１４への処理を再開させる。これにより、レプリカＤＢ１４を新たなマスタＤＢとして利用して、業務を復旧させることができる。以下、フロー図を参照しつつ、データベースシステム１０の復旧動作について具体的に説明する。
【００６６】
図８は、データベースシステム１０の復旧動作の一例を示すフロー図である。図８を参照して、非同期処理部２０が非同期処理開始指示部２８から「復旧開始」の指示を受けると、通番採番部１６は、通番管理部２４に記憶された通番管理表（図３参照）から、採番済通番と処理済通番とを取得する（ステップＡ１）。
【００６７】
次に、非同期処理部２０は、採番済通番と処理済通番とが一致しているか否かを判断する（ステップＡ２）。採番済通番と処理済通番とが一致している場合、反映すべき全ての更新ログがレプリカＤＢ１４へ反映されているため、復旧処理を終了する。
【００６８】
ステップＡ２において、採番済通番と処理済通番とが一致していない場合、非同期処理部２０は、処理データ格納部２６に記憶された処理データ格納表（図４参照）を参照して、処理済通番に１を足した通番に対応するデータが登録されているか否かを判断する（ステップＡ３）。
【００６９】
ステップＡ３においてデータが登録されていない場合、非同期処理部２０は、後述するステップＡ７の処理に進み、処理済通番を更新した後、ステップＡ１に戻る。なお、ステップＡ３において処理内容が登録されていない場合は、業務アプリケーション４０ａ,４０ｂ,４０ｃの処理（トランザクション）に対して通番が付与されたが、その処理によるマスタＤＢ１２のデータ更新が完了していないことを意味している。復旧動作が行われている場合には、マスタＤＢ１２に障害が発生しているので、上記通番に対応する処理によって、マスタＤＢ１２のデータ更新が行われることはない。したがって、上記通番に対応する更新ログは、レプリカＤＢ１４へ反映する必要はない。そのため、後述のステップＡ４〜Ａ６の処理をスキップすることができる。
【００７０】
ステップＡ３においてデータが登録されている場合、非同期処理部２０は、処理データ格納表から処理内容を示すデータを取得する（ステップＡ４）。次に、非同期処理部２０は、取得したデータに基づいて、処理内容の種別が「ＤＢ更新」か否かを判別する（ステップＡ５）。種別が「ＤＢ更新」ではない場合、すなわち、種別が「制御」の場合、復旧処理とは関係がない処理内容であることを意味する。したがって、非同期処理部２０は、後述するステップＡ７の処理に進み、処理済通番を更新した後、ステップＡ１に戻る。
【００７１】
ステップＡ５において処理内容の種別が「ＤＢ更新」の場合、非同期処理部２０は、処理内容に従ってレプリカＤＢ１４のデータ更新を行う（ステップＡ６）。これにより、レプリカＤＢ１４のデータの状態を、障害発生前のマスタＤＢ１２のデータの状態にするこ
とができる。
【００７２】
次に、非同期処理部２０は、通番管理部２４に記憶された通番管理表の処理済通番に１を足して、該処理済通番を、ステップＡ６において実行した処理内容の通番に更新する（ステップＡ７）。その後、データベースシステム１０は、ステップＡ１の処理に戻る。
【００７３】
（変形例）
上述の実施形態では、業務アプリケーション４０ａ,４０ｂ,４０ｃが、互いに異なるレコードを更新する場合について説明した。仮に、マスタＤＢ１２内の同一のレコードを更新する複数の業務アプリケーションが並列に動作する場合には、通番を採番した順に、マスタＤＢ１２のデータ更新を行うことが好ましい。例えば、連番を採番した順にマスタＤＢ１２のデータ更新が行われるように、複数の業務アプリケーションのデータ更新の時期について順序制御を行うことが好ましい。これにより、レプリカＤＢ１４におけるデータ更新の順番がマスタＤＢ１２におけるデータ更新の順番に対して逆転することを防止できる。その結果、レコードの状態が、マスタＤＢ１２とレプリカＤＢ１４とで一致しなくなることを防止できる。
【００７４】
上述の実施形態では、データベースの静止点が取得可能な状態である間、システム管理者等が、レプリカＤＢ１４に対して任意のオペレーションを実行することができる構成を想定している。そのため、一端停止した非同期処理部２０の処理は、例えば、システム管理者が運用端末６０を操作することによって任意のタイミングで再開されることを想定している。しかしながら、例えば、データベースの静止点が取得可能な状態でレプリカＤＢ１４に対して実行される処理が、あらかじめバッチ処理として決められている場合にも、本発明に係るデータベースシステムを利用できる。以下、簡単に説明する。
【００７５】
図９は、データベースシステムの変形例を示す図である。図９に示すデータベースシステム１０ａは、例えば、バッチ処理によって日付単位で業務データの統計処理を行い、統計データを作成するような場合に好適に利用できる。なお、統計処理は一例であり、データベースの静止点で実行したい任意のバッチ処理に対して、データベースシステム１０ａを好適に利用できる。
【００７６】
図９を参照して、データベースシステム１０ａが上述のデータベースシステム１０と異なるのは、レプリケーション制御装置３０の代わりにレプリケーション制御装置３０ａを有している点である。また、レプリケーション制御装置３０ａが上述のレプリケーション制御装置３０と異なるのは、統計データ取得部３２をさらに備えている点である。
【００７７】
データベースシステム１０ａでは、例えば、非同期処理制御アプリケーション５０は、制御部２２に対してバッチ処理の実行要求を行う。制御部２２は、バッチ処理の実行要求を受けると、統計データ取得部３２によるバッチ処理を実行させるための制御情報を、通番採番部１６によって付与された通番とともに、処理データ格納部２６の処理データ格納表に登録する。図１０は、データベースシステム１０ａの制御部２２によって処理データ格納表に登録される処理内容の一例を示す図である。図１０の例においては、通番３１の処理内容（非同期処理データ）が、制御部２２によって登録されたデータである。
【００７８】
非同期処理部２０は、例えば、図１０に示す処理データ格納表から通番３１のデータを取得する。通番３１のデータは、種別が「制御」であり、処理内容が「統計データ取得部実行」であるので、非同期処理部２０は、統計データ取得部３２に対して、処理開始の指示を行う。統計データ取得部３２は、非同期処理部２０からの開始指示に従って、静止点となっているレプリカＤＢ１４を参照し、統計データを作成する。
【００７９】
統計データ取得部３２は、統計データの作成後、処理の完了を非同期処理部２０に通知する。非同期処理部２０は、統計データ取得部３２から完了通知を受け取ると、通番管理部２４に記憶された通番管理表の処理済通番を更新し、次の通番（図１０の例では、通番３２）の処理を行う。これにより、統計データ取得部３２が動作している間は、レプリカＤＢ１４は更新されない。したがって、データベースシステム１０ａによれば、データベースの静止点でバッチ処理が可能である。また、データベースシステム１０ａによれば、バッチ処理が完了した後、速やかにレプリカＤＢ１４へのレプリケーション処理を再開することができる。
【００８０】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図５示すステップＳ１〜Ｓ９および／または図８に示すステップＡ１〜Ａ７の処理を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるレプリケーション制御装置３０,３０ａとレプリケーション方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、通番採番部１６、更新ログ生成部１８、非同期処理部２０、制御部２２、非同期処理開始指示部２８および統計データ取得部３２として機能し、処理を行なう。
【００８１】
また、本実施の形態では、マスタＤＢ１２、レプリカＤＢ１４、通番管理部２４、および処理データ格納部２６は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって、又はこのデータファイルが格納された記録媒体をコンピュータと接続された読取装置に搭載することによって実現されている。
【００８２】
［物理構成］
ここで、本実施の形態におけるプログラムを実行することによって、レプリケーション制御装置３０,３０ａを実現するコンピュータについて図１１を用いて説明する。図１１は、本発明の実施の形態におけるレプリケーション制御装置３０,３０ａを実現するコンピュータの一例を示すブロック図である。
【００８３】
図１１に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００８４】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００８５】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００８６】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を
仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００８７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００８８】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【００８９】
（付記１）
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、
前記マスタデータベースのレプリケーション先となるレプリカデータベースと、
前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と、
前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、
前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、
所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部とを備える、データベースシステム。
【００９０】
（付記２）
前記制御部は、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、付記１に記載のデータベースシステム。
【００９１】
（付記３）
前記非同期処理部に対して前記レプリカデータベースのデータ更新の再開を指示する非同期処理開始指示部をさらに備える、付記２に記載のデータベースシステム。
【００９２】
（付記４）
前記制御部は、バッチ処理の実行要求を受けた場合に、前記所定の条件が満たされたとして、前非同期処理部にバッチ処理を実行させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複
数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と前記バッチ処理とを行う、付記３に記載のデータベースシステム。
【００９３】
（付記５）
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うレプリケーション制御装置であって、
前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与する通番採番部と、
前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記通番採番部によって前記複数のトランザクションに付与された通番とを対応付ける更新ログ生成部と、
前記更新ログ生成部によって生成された前記複数の更新ログに基づいて、かつ、前記更新ログ生成部によって前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行う非同期処理部と、
所定の条件が満たされた場合に、前記非同期処理部による前記レプリカデータベースのデータ更新を停止させる制御部とを備える、レプリケーション制御装置。
【００９４】
（付記６）
前記制御部は、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、付記５に記載のレプリケーション制御装置。
【００９５】
（付記７）
前記非同期処理部に対して前記レプリカデータベースのデータ更新の再開を指示する非同期処理開始指示部をさらに備える、付記６に記載のレプリケーション制御装置。
【００９６】
（付記８）
前記制御部は、バッチ処理の実行要求を受けた場合に、前記所定の条件が満たされたとして、前非同期処理部にバッチ処理を実行させるための制御情報を生成し、
前記通番採番部は、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記非同期処理部は、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と前記バッチ処理とを行う、付記７に記載のレプリケーション制御装置。
【００９７】
（付記９）
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、前記マスタデータベースのデータ更新とは非同期で前記レプリ
カデータベースのデータ更新を行うレプリケーション方法であって、
（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、
（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番とを対応付けるステップと、
（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うステップと、
（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップとを備える、レプリケーション方法。
【００９８】
（付記１０）
前記（ｄ）のステップは、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記（ａ）のステップは、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記（ｃ）のステップは、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、付記９に記載のレプリケーション方法。
【００９９】
（付記１１）
前記非同期処理部に対して前記レプリカデータベースのデータ更新の再開を指示する非同期処理開始指示ステップをさらに備える、付記１０に記載のレプリケーション方法。
【０１００】
（付記１２）
前記（ｄ）のステップは、バッチ処理の実行要求を受けた場合に、前記所定の条件が満たされたとして、前非同期処理部にバッチ処理を実行させるための制御情報を生成し、
前記（ａ）のステップは、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記（ｃ）のステップは、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と前記バッチ処理とを行う、付記１１に記載のレプリケーション方法。
【０１０１】
（付記１３）
複数のトランザクションに基づいてデータ更新が行われるマスタデータベースと、前記マスタデータベースのレプリケーション先となるレプリカデータベースとを備えるデータベースシステムにおいて、コンピュータに、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を実行させるためのプログラムであって、
前記コンピュータに、
（ａ）前記複数のトランザクションの開始時刻を基準として、該複数のトランザクションに通番を付与するステップと、
（ｂ）前記複数のトランザクションに対応する複数の更新ログを生成し、かつ、該複数の更新ログと前記（ａ）のステップにおいて前記複数のトランザクションに付与された通番
とを対応付けるステップと、
（ｃ）前記（ｂ）のステップにおいて生成された前記複数の更新ログに基づいて、かつ、前記（ｂ）のステップにおいて前記複数の更新ログに対応付けられた前記通番に従って、前記マスタデータベースのデータ更新とは非同期で前記レプリカデータベースのデータ更新を行うステップと、
（ｄ）所定の条件が満たされた場合に、前記レプリカデータベースのデータ更新を停止するステップとを実行させる、プログラム。
【０１０２】
（付記１４）
前記（ｄ）のステップは、前記非同期処理部の停止要求を受けた場合に、前記所定の条件が満たされたとして、前記非同期処理部による前記データ更新を停止させるための制御情報を生成し、
前記（ａ）のステップは、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記（ｃ）のステップは、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と、該データ更新の停止とを行う、付記１３に記載のプログラム。
【０１０３】
（付記１５）
前記非同期処理部に対して前記レプリカデータベースのデータ更新の再開を指示する非同期処理開始指示ステップをさらに備える、付記１４に記載のプログラム。
【０１０４】
（付記１６）
前記（ｄ）のステップは、バッチ処理の実行要求を受けた場合に、前記所定の条件が満たされたとして、前非同期処理部にバッチ処理を実行させるための制御情報を生成し、
前記（ａ）のステップは、前記複数のトランザクションの開始時刻および前記制御情報の生成時刻を基準として、前記複数の更新ログおよび前記制御情報が時系列で並ぶように前記複数の更新ログと前記制御情報とに通番を付与し、
前記（ｃ）のステップは、前記複数の更新ログと前記制御情報とに基づいて、かつ、前記複数の更新ログと前記制御情報とに付与された前記通番に従って、前記レプリカデータベースのデータ更新と前記バッチ処理とを行う、付記１５に記載のプログラム。
【産業上の利用可能性】
【０１０５】
本発明は、例えば、勘定系システムのような、２４時間稼働し、かつ定期的に集計処理が行われるオンラインシステムに好適に利用できる。
【符号の説明】
【０１０６】
１０,１０ａ  データベースシステム
１２  マスタＤＢ
１４  レプリカＤＢ
１６  通番採番部
１８  更新ログ生成部
２０  非同期処理部
２２  制御部
２４  通番管理部
２６  処理データ格納部
２８  非同期処理開始指示部
３０,３０ａ  レプリケーション制御装置
３２  統計データ取得部
４０ａ,４０ｂ,４０ｃ  業務アプリケーション
５０  非同期処理制御アプリケーション
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
0006657725.tif 000002
【図２】
0006657725.tif 000003
【図３】
0006657725.tif 000004
【図４】
0006657725.tif 000005
【図５】
0006657725.tif 000006
【図６】
0006657725.tif 000007
【図７】
0006657725.tif 000008
【図８】
0006657725.tif 000009
【図９】
0006657725.tif 000010
【図１０】
0006657725.tif 000011
【図１１】
0006657725.tif 000012
【図１２】
0006657725.tif 000013