(57)【特許請求の範囲】
【請求項１】
複数のデータベースの内容がデータベースごとに対応して複製される複数の複製データベースにおいて、１つのトランザクションによって前記複数のデータベースが更新されて前記複製データベースごとに生成された各更新情報に基づいて、各更新情報に対応する各複製データベースを更新する更新部と、
前記更新部が前記複製データベースを更新する場合に、更新前のデータと更新に使用された更新情報に付与される識別子とを対応付けて、前記複製データベースごとに保持する保持部と、
前記保持部が保持する識別子から最新の更新情報を示す識別子を前記複製データベースごとに抽出し、抽出した識別子のうち、各複製データベースの間で最も古くに更新した識別子を特定する特定部と、
前記特定部が特定した識別子より新しい更新情報の識別子に対応する更新前データを、前記複数の複製データベースのうち該当する前記複製データベースに反映する反映部と
を有することを特徴とするデータベース更新制御装置。
【請求項２】
前記識別子は、前記更新情報を送信する送信元がトランザクション単位でインクリメントして付与する番号であって、
前記保持部は、最新の更新情報を示す番号を前記複数の複製データベースごとに更に記憶し、
前記特定部は、前記保持部が前記複数の複製データベースごとに記憶した最新の更新情報を示す番号のうち最小の番号を特定し、
前記反映部は、前記特定部が特定した最小の番号より大きい番号に対応付けられた更新前のデータを前記保持部から読み込んで、該当する前記複製データベースに反映することを特徴とする請求項１に記載のデータベース更新制御装置。
【請求項３】
前記更新情報は、当該更新情報を送信する送信元がインクリメントする番号が付与された更新情報を前記複数の複製データベース分含む更新ファイルであって、
前記更新部は、受信した更新ファイルに含まれる更新情報のうち、前回の更新情報に付与された番号より大きい番号が付与されている更新情報に基づいて、該当する前記複製データベースを更新することを特徴する請求項１に記載のデータベース更新制御装置。
【請求項４】
前記保持部は、前記更新前のデータと前記番号と含む更新前ログを前記更新ファイルごとに保持し、さらに、前記データを更新した最新の更新情報に付与されていた番号を反映完了ポイントとして前記データベースごとに保持し、
前記特定部は、前記更新前ログの番号が反映完了ポイントで管理される値以上であり、かつ、前記更新前ログの番号が反映完了ポイントで管理される番号と一致しない更新情報が存在する、更新ファイルを特定することを特徴とする請求項３に記載のデータベース更新制御装置。
【請求項５】
複数のデータベースを保持する第１のデータベース管理装置と、前記複数のデータベースの内容がデータベースごとに対応して複製される複数の複製データベースを保持する第２のデータベース管理装置を有するデータベース管理システムであって、
前記第１のデータベース管理装置は、
１つのトランザクションを実行して前記複数のデータベースを更新した場合に、更新した内容と前記内容を識別する識別子とを含む更新情報を前記複製データベースごとに生成して、前記第２のデータベース管理装置に送信する送信部を有し、
前記第２のデータベース管理装置は、
前記第１のデータベース管理装置から複数の更新情報を受信した場合に、各更新情報に対応する各複製データベースを、各更新情報に基づいて更新する更新部と、
前記更新部が前記複製データベースを更新する場合に、更新前のデータと更新に使用された更新情報に付与される識別子とを対応付けて、前記複製データベースごとに保持する保持部と、
前記保持部が保持する識別子から最新の更新情報を示す識別子を前記複製データベースごとに抽出し、抽出した識別子のうち、各複製データベースの間で最も古くに更新した識別子を特定する特定部と、
前記特定部が特定した識別子より新しい更新情報の識別子に対応する更新前データを、前記複数の複製データベースのうち該当する前記複製データベースに反映する反映部と
を有することを特徴とするデータベース管理システム。
【請求項６】
コンピュータに、
複数のデータベースの内容がデータベースごとに対応して複製される複数の複製データベースにおいて、１つのトランザクションによって前記複数のデータベースが更新されて前記複製データベースごとに生成された各更新情報に基づいて、各更新情報に対応する各複製データベースを更新し、
前記複製データベースを更新する場合に、更新前のデータと更新に使用された更新情報に付与される識別子とを対応付けて、前記複製データベースごとに保持し、
保持する識別子から最新の更新情報を示す識別子を前記データベースごとに抽出し、抽出した識別子のうち、各複製データベースの間で最も古くに更新した識別子を特定し、
特定した識別子より新しい更新情報の識別子に対応する更新前データを、前記複数の複製データベースのうち該当する前記複製データベースに反映する
処理を実行させることを特徴とするデータベース更新制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラムに関する。
【背景技術】
【０００２】
従来、データベース（ＤＢ）を利用した業務を提供するメインセンタでは、災害などに備えて、遠隔地のバックアップセンタにＤＢの複製を行っている。メインセンタは、複数のマスタＤＢを有し、バックアップセンタは、各マスタＤＢに対応したレプリカＤＢを有し、各マスタＤＢと各レプリカＤＢとの同期を取っている。
【０００３】
ＤＢを複製して同期するシステムは、メインセンタが保持するマスタＤＢが更新された場合に、各マスタＤＢの更新差分結果（以下、ジャーナルという）をバックアップセンタへリアルタイムに転送する。バックアップセンタでは、メインセンタから受信したジャーナルを１つのトランザクションとして各レプリカＤＢへ反映する。このようにして、マスタＤＢとレプリカＤＢの同期をとっており、メインセンタで災害が発生した場合には、バックアップセンタで業務の再開を行う。
【０００４】
メインセンタの業務は、１つのトランザクションで複数のマスタＤＢを更新することが一般的に行われており、このトランザクションにより各マスタＤＢの整合性が保たれている。バックアップセンタが有する各レプリカＤＢの整合性を保つ技術としては、一時ファイルにジャーナルを蓄積し、レプリカＤＢへの反映を一時的に保留する技術が知られている。
【０００５】
マスタＤＢ（Ａ）とマスタＤＢ（Ｂ）とを有するメインシステムと、マスタＤＢ（Ａ）の複製ＤＢに対応するレプリカＤＢ（Ｃ）とマスタＤＢ（Ｂ）の複製ＤＢに対応するレプリカＤＢ（Ｄ）とを有するバックアップセンタとを例にして説明する。
【０００６】
メインセンタは、レプリカＤＢ（Ｃ）用の１世代目のジャーナルファイルとして、トランザクション１、トランザクション２、トランザクション３、トランザクション４をバックアップセンタに送信する。同様に、メインセンタは、レプリカＤＢ（Ｄ）用の１世代目のジャーナルファイルとして、トランザクション１、トランザクション２をバックアップセンタに送信する。なお、各トランザクションは、ジャーナルをＤＢに反映させる処理である。
【０００７】
バックアップセンタは、各レプリカＤＢに対するジャーナルにトランザクション１とトランザクション２が含まれていることを特定する。すなわち、バックアップセンタは、トランザクション１とトランザクション２の各ジャーナルが各レプリカＤＢに共通に届いていることを特定する。この結果、バックアップセンタは、レプリカＤＢ（Ｃ）とレプリカＤＢ（Ｄ）の各々に、トランザクション１とトランザクション２を実行して更新結果を反映する。そして、バックアップセンタは、トランザクション３、トランザクション４をレプリカＤＢ（Ｃ）用の引き継ぎファイルとして保持し、次の世代のジャーナルを受信するまで反映を保留する。
【０００８】
その後、メインセンタは、レプリカＤＢ（Ｃ）用の２世代目のジャーナルファイルとして、トランザクション５とトランザクション６をバックアップセンタに送信する。同様に、メインセンタは、レプリカＤＢ（Ｄ）用の２世代目のジャーナルファイルとして、トランザクション３をバックアップセンタに送信する。
【０００９】
そして、バックアップセンタは、レプリカＤＢ（Ｃ）用の引継ぎファイルにトランザクション３のジャーナルが存在し、レプリカＤＢ（Ｄ）用として２世代目でトランザクション３を受信したことを特定する。すなわち、バックアップセンタは、トランザクション３のジャーナルが各レプリカＤＢに共通に届いていることを特定する。この結果、バックアップセンタは、レプリカＤＢ（Ｃ）には引継ぎファイル内に保持されるトランザクション３を実行して更新結果を反映し、レプリカＤＢ（Ｄ）には２世代目に受信したトランザクション３を実行して更新結果を反映する。
【００１０】
そして、バックアップセンタは、レプリカＤＢ（Ｃ）用として２世代目で受信したトランザクション５、トランザクション６を引き継ぎファイルとして保持し、次の世代のジャーナルを受信するまで反映を保留する。つまり、バックアップセンタは、レプリカＤＢ（Ｃ）の引継ぎファイルとして、トランザクション４、トランザクション５、トランザクション６の各ジャーナルを保持する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−３１７０４０号公報
【特許文献２】特開２００６−１８７９６号公報
【特許文献３】特開２００６−９２００５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、複製先のＤＢに対するデータ反映に時間がかかり、障害発生から運用再開までにも時間がかかるという問題がある。
【００１３】
従来技術では、ジャーナルに対するバックアップセンタへの転送状況を把握してから、トランザクションの整合状態を把握して反映を行っている。また、メインセンタは、各世代のジャーナル間で同期をとらずに、非同期でジャーナルを送信する。したがって、次の世代のジャーナルを受信するまで、引継ぎファイルに保持されるジャーナルについては、いつ反映が実行できるか予測できず、非常に長い時間保留されたままになる場合もある。このように、複製先のＤＢに対するデータ反映に時間がかかる場合がある。
【００１４】
また、引継ぎファイルはレプリカＤＢごとに反映保留中のジャーナルを保持する。このため、メインシステムで障害が発生した場合には、保留中のジャーナルからメインシステムの各マスタＤＢの最新状態を特定することになる。したがって、引継ぎファイルに保持されるジャーナルが多い状態でメインシステムに障害が発生した場合、各マスタＤＢの最新状態を把握するまでに多くの時間がかかる。その後、各レプリカＤＢが最新のマスタＤＢの状態になるように、各レプリカＤＢにジャーナルを反映することになるので、障害発生から運用再開までに時間がかかる。また、すべてのジャーナルを反映した場合には、各レプリカＤＢの整合性が保てなくなることもあるので、保留されているジャーナルのうちどのジャーナルまで反映できるかを特定する時間もかかる。このように、障害発生から運用再開までにかかる時間は短いとは言い難い。
【００１５】
第１の側面として、複製先のＤＢに対するデータ反映にかかる時間および／又は障害発生から運用再開までにかかる時間を短縮することができるデータベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
第１の案では、データベース更新制御装置は、第１のデータベースまたは第２のデータベースに対する更新情報を受信した場合に、前記更新情報に基づいて前記第１のデータベースまたは前記第２のデータベースを更新する更新部を有する。データベース更新制御装置は、前記更新部が第１のデータベースまたは第２のデータベースを更新する場合に、更新前のデータと前記更新部が実行する前記更新情報に付与される識別子とを対応付けて、前記データベースごとに保持する保持部を有する。データベース更新制御装置は、前記保持部が保持する識別子から最新の更新情報を示す識別子を前記データベースごとに抽出し、抽出した識別子のうち、最も古くに更新した識別子を特定する特定部を有する。データベース更新制御装置は、前記特定部が特定した識別子より新しい更新情報の識別子に対応する更新前データを、該当する前記第１のデータベースまたは前記第２のデータベースに反映する反映部を有する。
【発明の効果】
【００１７】
複製先のＤＢに対するデータ反映にかかる時間および／又は障害発生から運用再開までにかかる時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係るバックアップシステムの全体構成例を示す図である。
【図２】図２は、実施例２に係るメインセンタでＤＢＭＳを実行するデータベース管理装置の構成を示す機能ブロック図である。
【図３】図３は、整合情報管理テーブルに記憶される情報の例を示す図である。
【図４】図４は、メインセンタからバックアップセンタに転送されるジャーナルファイルの例を示す図である。
【図５】図５は、実施例２に係るバックアップセンタでＤＢＭＳを実行するデータベース管理装置の構成を示す機能ブロック図である。
【図６】図６は、反映完了ポイント管理テーブルに記憶される情報の例を示す図である。
【図７】図７は、更新前ログテーブルに記憶される情報の例を示す図である。
【図８】図８は、実施例２に係るメインセンタにおける処理の流れを示すフローチャートである。
【図９】図９は、実施例２に係るバックアップセンタにおけるＤＢ反映処理の流れを示すフローチャートである。
【図１０】図１０は、実施例２に係るバックアップセンタにおけるＤＢ反映戻し処理の流れを示すフローチャートである。
【図１１】図１１は、メインセンタにおけるマスタＤＢを更新するトランザクションを説明する図である。
【図１２】図１２は、メインセンタにおけるジャーナル取得処理の流れを示すシーケンス図である。
【図１３】図１３は、バックアップセンタにおけるジャーナル反映処理の流れを示すシーケンス図である。
【図１４】図１４は、バックアップセンタにおける更新前ログ取得処理の流れを示すシーケンス図である。
【図１５】図１５は、レプリカＤＢへのジャーナル反映から反映戻しまでの一連の処理例を説明する図である。
【図１６】図１６は、実施例３に係る１ジャーナルファイルに複数のレプリカＤＢのジャーナルが格納されている場合の処理例を説明する図である。
【図１７】図１７は、実施例３に係る反映戻しの判定例１を説明する図である。
【図１８】図１８は、実施例３に係る反映戻しの判定例２を説明する図である。
【図１９】図１９は、実施例３に係る反映戻しの判定例３を説明する図である。
【図２０】図２０は、データベース更新制御プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１９】
以下に、本願の開示するデータベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２０】
図１は、実施例１に係るバックアップシステムの全体構成例を示す図である。図１に示すように、このバックアップシステムは、メインセンタ１とバックアップセンタ５とを有し、メインセンタ１のデータベース（ＤＢ）をバックアップセンタ５に複製するシステムである。なお、メインセンタ１やバックアップセンタ５の例としては、サーバ等を設置したり、クラウドシステムを提供したりするデータセンタなどがある。
【００２１】
メインセンタ１は、情報処理装置２とデータベース管理システム（ＤＢＭＳ：Data  Base  Management  System）３と有し、リモートディスク装置４を介してバックアップセンタ５と接続する。バックアップセンタ５は、データベース管理システム６を有し、リモートディスク装置４を介してメインセンタ１と接続する。
【００２２】
メインセンタ１の情報処理装置２は、アプリケーションなどの業務処理を実行するサーバ装置である。また、情報処理装置２は、データベース管理システム３が提供するトランザクションの制御を利用して、データベース管理システム３が保持する各マスタＤＢを操作する。
【００２３】
データベース管理システム３は、マスタＤＢ３ａとマスタＤＢ３ｂとを有し、各マスタＤＢを運用、管理するサーバ装置である。データベース管理システム３は、アプリケーションが矛盾なくマスタＤＢを利用することができるように、トランザクションを制御しトランザクション終了によってマスタＤＢの更新を実行する。このデータベース管理システム３は、マスタＤＢが更新されると、更新差分を示すジャーナルをリモートディスク装置４のジャーナルファイルＤＢに格納する。
【００２４】
リモートディスク装置４は、ジャーナルファイルＤＢ４ａとジャーナルファイルＤＢ４ｂとを有し、所定の周期で、ジャーナルファイルＤＢからジャーナルを読み出して、バックアップセンタ５に転送する装置である。
【００２５】
バックアップセンタ５のデータベース管理システム６は、マスタＤＢ３ａを複製したレプリカＤＢ６ａと、マスタＤＢ３ｂを複製したレプリカＤＢ６ｂとを有するサーバ装置である。このデータベース管理システム６は、更新部６ｃと保持部６ｄと特定部６ｅと反映部６ｆとを有し、矛盾なくレプリカＤＢを利用することができるようにトランザクションを制御しトランザクション終了によってレプリカＤＢの更新を実行する。
【００２６】
更新部６ｃは、レプリカＤＢ６ａまたはレプリカＤＢ６ｂに対するジャーナルを受信した場合に、ジャーナルに基づいてレプリカＤＢ６ａまたはレプリカＤＢ６ｂを更新する。保持部６ｄは、更新部６ｃがレプリカＤＢ６ａまたはレプリカＤＢ６ｂを更新する場合に、更新前のデータと更新部６ｃが実行する更新情報に付与される識別子とを対応付けて、レプリカＤＢごとに保持する。更新情報に付与される識別子は、データ更新の順所がわかるように付与される。
【００２７】
特定部６ｅは、保持部６ｄが保持する識別子から最新の更新情報を示す識別子をレプリカＤＢごとに抽出し、抽出した識別子のうち、最も古くに更新した識別子を特定する。反映部６ｆは、特定部６ｅが特定した識別子より新しい更新情報の識別子に対応する更新前データを、該当するレプリカＤＢ６ａまたはレプリカＤＢ６ｂに反映する。特定部６ｅと反映部６ｆが動作する契機としては、オペレータからの指示を受け付けた場合、メインセンタに障害が発生したことを検知した場合、メインセンタとの通信が切断された場合などがある。
【００２８】
このように、実施例１に係るバックアップシステムでは、マスタＤＢから受信したジャーナルを一時的に保留することなく、各レプリカＤＢに随時反映する。そして、マスタＤＢの障害発生時には整合が取れているポイントまで各レプリカＤＢのデータを戻す。このようにすることで、複製先のＤＢに対するデータ反映にかかる時間および障害発生から運用再開までにかかる時間を短縮することができる。
【実施例２】
【００２９】
次に、実施例２では、図１に示したメインセンタでマスタＤＢの更新を実行するデータベース管理装置と、バックアップセンタでレプリカＤＢの更新を実行するデータベース管理装置とについて説明する。ここでは、各データベース管理装置の構成例、処理の流れ等について説明する。
【００３０】
［データベース管理装置（メインセンタ）］
図２は、実施例２に係るメインセンタでＤＢＭＳを実行するデータベース管理装置の構成を示す機能ブロック図である。図２に示すように、このデータベース管理装置１０は、メモリ１１と、ＤＢＭＳ１２と、リモートディスク処理部１３とを有する。なお、ここで図示した制御部等は、あくまで例示であり、これに限定されるものではなく、例えばマウスなどの入力部、ディスプレイなどの表示部、ネットワークインタフェースカード等を有していてもよい。また、各処理部はプロセッサなどにより実行される。
【００３１】
メモリ１１は、ＤＢＭＳ１２やリモートディスク処理部１３等が実行するプログラムなどを記憶し、作業領域１１ａと整合情報管理テーブル１１ｂとを有する。作業領域１１ａは、ＤＢＭＳ１２やリモートディスク処理部１３等が処理を実行する際に使用する一時領域である。
【００３２】
整合情報管理テーブル１１ｂは、ジャーナルに付与するトランザクション整合情報を管理するテーブルである。図３は、整合情報管理テーブルに記憶される情報の例を示す図である。図３に示すように、整合情報管理テーブル１１ｂは、「ジャーナルの名称、トランザクション整合情報」を対応付けて記憶する。ここで記憶される「ジャーナルの名称」は、ジャーナルを識別する識別子であり、「トランザクション整合情報」は、ジャーナルに付与されるトランザクションを識別する識別子である。図３の場合、ジャーナル「ｘｘｘ」には、トランザクション整合情報として「１」が割り与えられたことを示す。
【００３３】
ＤＢＭＳ１２は、マスタＤＢ１２ａとマスタＤＢ１２ｂとＤＢ操作部１２ｃとジャーナル取得部１２ｄと整合情報管理部１２ｅとを有し、トランザクションによって各マスタＤＢの更新を実行する処理部である。
【００３４】
マスタＤＢ１２ａとマスタＤＢ１２ｂは、バックアップセンタが管理するレプリカＤＢの複製元となるデータベースである。例えば、マスタＤＢ１２ａは、商品の販売データを記憶する販売データベースであり、マスタＤＢ１２ｂは、商品の在庫を記憶する在庫データベースである。一般的に、販売数が増えれば同時に在庫数が減ることになるので、マスタＤＢ１２ａが更新された場合には、マスタＤＢ１２ｂも更新される。
【００３５】
ＤＢ操作部１２ｃは、情報処理装置が実行した業務処理によって各マスタＤＢを更新するトランザクションを実行する処理部である。
【００３６】
ジャーナル取得部１２ｄは、ＤＢ操作部１２ｃと連動して動作し、マスタＤＢが更新された場合に、更新差分を抽出する処理部である。詳しくは、ジャーナル取得部１２ｄは、マスタＤＢごとに、更新された情報をジャーナルとして抽出する。そして、ジャーナル取得部１２ｄは、マスタＤＢを更新したトランザクションを識別するトランザクション整合情報の通知を、整合情報管理部１２ｅに要求する。その後、ジャーナル取得部１２ｄは、整合情報管理部１２ｅから通知されたトランザクション整合情報を、抽出したジャーナルに付与してジャーナルファイルＤＢに格納する。
【００３７】
一例を挙げると、ジャーナル取得部１２ｄは、マスタＤＢ１２ａからジャーナルを抽出し、トランザクション整合情報として「１」が通知された場合に、抽出したジャーナルにトランザクション整合情報「１」を付与して、ジャーナルファイルＤＢ１３ａに格納する。同様に、ジャーナル取得部１２ｄは、マスタＤＢ１２ｂからジャーナルを抽出し、トランザクション整合情報として「１」が通知された場合に、抽出したジャーナルにトランザクション整合情報「１」を付与したジャーナルファイルをジャーナルファイルＤＢ１３ｂに格納する。
【００３８】
整合情報管理部１２ｅは、ジャーナル取得部１２ｄと連動して動作し、トランザクション整合情報を管理する処理部である。詳しくは、整合情報管理部１２ｅは、ジャーナル取得部１２ｄからトランザクション整合情報の通知を要求された場合に、整合情報管理テーブル１１ｂを参照する。そして、整合情報管理部１２ｅは、整合情報管理テーブル１１ｂに記憶されているトランザクション整合情報をインクリメントした値を、トランザクション整合情報としてジャーナル取得部１２ｄに通知する。このとき、整合情報管理部１２ｅは、ジャーナル取得部１２ｄからジャーナルの名称を取得し、通知したトランザクション整合情報と対応付けて整合情報管理テーブル１１ｂに格納する。
【００３９】
リモートディスク処理部１３は、ジャーナルファイルＤＢ１３ａとジャーナルファイルＤＢ１３ｂとリモート処理部１３ｃとを有し、バックアップセンタに配置したジャーナルファイルＤＢの同値性を保つ処理部である。このリモートディスク処理部１３は、バックアップセンタのデータベース管理装置２０との間に通信回線で接続する。
【００４０】
ジャーナルファイルＤＢ１３ａは、マスタＤＢ１２ａのジャーナルを含むジャーナルファイルが書き込まれるデータベースであり、ジャーナル取得部１２ｄによって随時更新される。ジャーナルファイルＤＢ１３ｂは、マスタＤＢ１２ｂのジャーナルを含むジャーナルファイルが書き込まれるデータベースであり、ジャーナル取得部１２ｄによって随時更新される。
【００４１】
リモート処理部１３ｃは、各ジャーナルファイルＤＢに書き込まれたジャーナルファイルを随時読み出してバックアップセンタに転送する処理部である。このリモート処理部１３ｃがジャーナルファイルを読み出して転送するタイミングは、任意に設定することができる。リモート処理部１３ｃは、ジャーナルファイルがジャーナルファイルＤＢに書き込まれるたびでもよく、所定の間隔でもよく、ジャーナルファイルが所定数溜まった場合でもよい。また、リモート処理部１３ｃは、各ジャーナルファイルＤＢ間については非同期で、ジャーナルファイルを転送する。
【００４２】
図４は、メインセンタからバックアップセンタに転送されるジャーナルファイルの例を示す図である。図４に示すように、リモート処理部１３ｃは、「更新先、位置、トランザクション整合情報、ＤＢ更新後の内容」を有するジャーナルファイルをバックアップセンタに転送する。ここで、「更新先」は、更新されたマスタＤＢの名前であり、スキーマ名などである。「位置」は、更新されたマスタＤＢの更新位置を示す情報であり、物理ブロック番号などである。「トランザクション整合情報」は、整合情報管理部１２ｅが管理し、ジャーナル取得部１２ｄが付与したトランザクションの識別子である。「ＤＢ更新後の内容」は、具体的な更新内容、すなわち更新後のデータである。
【００４３】
［データベース管理装置（バックアップセンタ）］
図５は、実施例２に係るバックアップセンタでＤＢＭＳを実行するデータベース管理装置の構成を示す機能ブロック図である。図５に示すように、このデータベース管理装置２０は、メモリ２１と、リモートディスク処理部２２と、反映部２３と、ＤＢＭＳ２４と、更新後ログ取得部２５と、反映戻し実行部２６とを有する。なお、ここで図示した制御部等は、あくまで例示であり、これに限定されるものではなく、マウスなどの入力部、ディスプレイなどの表示部、ネットワークインタフェースカード等を有していてもよい。また、各処理部はプロセッサなどにより実行される。
【００４４】
メモリ２１は、各処理部が実行するプログラムなどを記憶し、作業領域２１ａと反映完了ポイント管理テーブル２１ｂと更新前ログテーブル２１ｃと更新後ログテーブル２１ｄとを有する。作業領域２１ａは、各処理部等が処理を実行する際に使用する一時領域である。
【００４５】
反映完了ポイント管理テーブル２１ｂは、レプリカＤＢごとに、反映部２３によってレプリカＤＢへの反映が完了したジャーナルファイルのトランザクション整合情報を記憶するテーブルである。図６は、反映完了ポイント管理テーブルに記憶される情報の例を示す図である。図６に示すように、反映完了ポイント管理テーブル２１ｂは、「レプリカＤＢ名、反映完了ポイント」を対応付けて記憶する。
【００４６】
ここで記憶される「レプリカＤＢ名」は、レプリカＤＢの名称であり、「反映完了ポイント」は、反映が完了した最新のトランザクション整合情報である。図６の場合、レプリカＤＢ２４ａにはトランザクション整合情報として「５」が割り振られたジャーナルファイルまで反映が完了していることを示す。また、レプリカＤＢ２４ｂにはトランザクション整合情報として「６」が割り振られたジャーナルファイルまで反映が完了していることを示す。なお、ここで記憶される情報は、反映部２３によって更新される。
【００４７】
更新前ログテーブル２１ｃは、レプリカＤＢごとに、更新前ログ取得部２４ｃによって取得された更新前のログ情報を累積して記憶するテーブルである。図７は、更新前ログテーブルに記憶される情報の例を示す図である。図７に示すように、更新前ログテーブル２１ｃは、「更新先、位置、トランザクション整合情報、ＤＢ更新前の内容」を対応付けて記憶する。ここで記憶される更新先、位置、トランザクション整合情報」は、図４と同様なので、詳細な説明は省略する。「ＤＢ更新前の内容」は、更新前の具体的な内容、すなわち更新前のデータである。
【００４８】
更新後ログテーブル２１ｄは、レプリカＤＢごとに、更新後ログ取得部２５によって取得された更新後のログ情報を累積して記憶するテーブルである。ここで記憶される情報は、図４と同様なので、詳細な説明は省略する。
【００４９】
リモートディスク処理部２２は、ジャーナルファイルＤＢ２２ａとジャーナルファイルＤＢ２２ｂとリモート処理部２２ｃとを有し、メインセンタに配置したジャーナルファイルＤＢの同値性を保つ処理部である。このリモートディスク処理部２２は、メインセンタのデータベース管理装置２０との間に通信回線で接続する。
【００５０】
ジャーナルファイルＤＢ２２ａは、レプリカＤＢ２４ａへの反映対象となるジャーナルファイルが書き込まれるデータベースであり、リモート処理部２２ｃによって随時更新される。ジャーナルファイルＤＢ２２ｂは、レプリカＤＢ２４ｂへの反映対象となるジャーナルファイルが書き込まれるデータベースであり、リモート処理部２２ｃによって随時更新される。
【００５１】
リモート処理部２２ｃは、メインセンタのデータベース管理装置１０から転送されたジャーナルファイルを該当するジャーナルファイルＤＢに格納する処理部である。
【００５２】
反映部２３は、各ジャーナルファイルＤＢからジャーナルファイルを読み出し、ジャーナルと同じ内容にレプリカＤＢを更新する処理部である。反映部２３は、ジャーナルファイルＤＢ２２ａから読み出したジャーナルをレプリカＤＢ２４ａに反映し、ジャーナルファイルＤＢ２２ｂから読み出したジャーナルをレプリカＤＢ２４ｂに反映する。
【００５３】
詳しくは、反映部２３は、ジャーナルファイルＤＢ２２ａからジャーナルファイルを読み出した場合、ジャーナルファイルから「更新先」と「位置」とを特定する。そして、反映部２３は、レプリカＤＢ２４ａ上の更新先の位置に、ジャーナルファイルに格納される「ＤＢ更新後の内容」を反映する。そして、反映部２３は、レプリカＤＢ２４ａに対応付けて、反映を完了させたジャーナルファイルの「トランザクション整合情報」を反映完了ポイント管理テーブル２１ｂに格納する。反映部２３は、上記処理を各レプリカＤＢに実行する。
【００５４】
より詳細な例を挙げると、反映部２３は、ジャーナルファイルＤＢ２２ａからジャーナルファイルを読み出すと、ジャーナルを反映するトランザクションを開始し、トランザクションを開始したことをＤＢＭＳ２４に通知する。そして、反映部２３は、読み込んだジャーナルファイルから「更新先」と「位置」とを特定し、特定した「更新先」と「位置」に「ＤＢ更新後の内容」を反映させる指示をＤＢＭＳ２４に指示する。その後、反映部２３は、読み込んだジャーナルファイルの「トランザクション整合情報」を反映完了ポイント管理テーブル２１ｂに格納してトランザクションを終了し、トランザクションを終了することをＤＢＭＳ２４に通知する。
【００５５】
ＤＢＭＳ２４は、レプリカＤＢ２４ａとレプリカＤＢ２４ｂと更新前ログ取得部２４ｃとを有し、トランザクションによって各レプリカＤＢの更新を実行する処理部である。このＤＢＭＳ２４は、反映部２３からジャーナル反映指示を受信して、該当するレプリカＤＢの該当する更新位置にジャーナル反映させる。
【００５６】
レプリカＤＢ２４ａは、マスタＤＢ１２ａのデータを複製させる複製先のデータベースであり、レプリカＤＢ２４ｂは、マスタＤＢ１２ｂのデータを複製させる複製先のデータベースである。
【００５７】
更新前ログ取得部２４ｃは、ＤＢＭＳ２４と連動して動作し、反映部２３の指示によってＤＢＭＳ２４がレプリカＤＢを更新する場合に、更新前のデータとランザクション整合情報とを対応付けて、更新前ログテーブル２１ｃに格納する処理部である。詳しくは、更新前ログ取得部２４ｃは、反映部２３から通知された「更新先」と「位置」に対応するデータを該当するレプリカＤＢから読み出す。そして、更新前ログ取得部２４ｃは、読み出したデータと、読み出したＤＢの名称すなわち「更新先」と、読み出した位置と、反映部２３から通知されたジャーナルファイルの「トランザクション整合情報」と対応付けて更新前ログテーブル２１ｃに格納する。
【００５８】
より詳細な例を説明すると、更新前ログ取得部２４ｃは、反映部２３によってトランザクションが開始されて、ＤＢＭＳ２４に対してジャーナルの反映指示が通知されると、反映部２３から通知されたジャーナルファイルから「更新先」と「位置」を抽出する。なお、ここでのジャーナルファイルは、ジャーナルファイルＤＢ２２ｂから読み出されたものであるとする。この場合、更新前ログ取得部２４ｃは、ジャーナルファイルＤＢ２２ｂにおける「更新先」の「位置」から「データ」を抽出する。また、更新前ログ取得部２４ｃは、反映部２３から通知されたジャーナルファイルから「トランザクション整合情報」を抽出する。そして、更新前ログ取得部２４ｃは、抽出した「更新先」、「位置」、「データ」、「トランザクション整合情報」を対応付けて更新前ログテーブル２１ｃに格納する。
【００５９】
更新後ログ取得部２５は、各レプリカＤＢを監視し、レプリカＤＢが更新された場合に、更新された箇所を特定して、更新されたログを更新後ログテーブル２１ｄに格納する処理部である。なお、更新後ログ取得部２５は、更新した内容、位置、更新先、トランザクション整合情報等を反映部２３やＤＢＭＳ２４から取得してもよい。
【００６０】
反映戻し実行部２６は、更新前ログテーブル２１ｃ中の更新前ログを読み込んで、更新前の状態にレプリカＤＢを更新することで、レプリカＤＢをトランザクション整合状態に戻す処理部である。また、反映戻し実行部２６は、更新前の状態にレプリカＤＢを更新するか否かを、更新前ログ中のトランザクション整合情報と、反映完了ポイン管理トテーブル２１ｂが管理しているトランザクション整合情報を用いて判定する。なお、反映戻し実行部２６が反映を戻す契機としては、オペレータからの指示を受け付けた場合、メインセンタに障害が発生したことを検知した場合、メインセンタとの通信が切断された場合などがある。
【００６１】
反映戻し実行部２６は、反映完了ポイン管理トテーブル２１ｂを参照し、各レプリカＤＢに対応付けられている「トランザクション整合情報」の最小値を特定する。そして、反映戻し実行部２６は、更新前ログテーブル２１ｃにおいて、レプリカＤＢ２４ａに対応付けて記憶される更新前ログを古いものから参照する。そして、反映戻し実行部２６は、特定した最小値である「トランザクション整合情報」より大きい「トランザクション整合情報」に対応付けられる更新前ログを特定する。その後、反映戻し実行部２６は、レプリカＤＢ２４ａに対して、特定した更新前ログの「更新先」の「位置」に「ＤＢ更新前の内容」を反映させる。
【００６２】
同様に、反映戻し実行部２６は、更新前ログテーブル２１ｃにおいて、レプリカＤＢ２４ｂに対応付けて記憶される更新前ログを古いものから参照する。そして、反映戻し実行部２６は、特定した最小値である「トランザクション整合情報」より大きい「トランザクション整合情報」に対応付けられる更新前ログを特定する。その後、反映戻し実行部２６は、レプリカＤＢ２４ｂに対して、特定した更新前ログの「更新先」の「位置」に「ＤＢ更新前の内容」を反映させる。
【００６３】
なお、反映戻し実行部２６は、更新前のログを反映させた「更新先」と「位置」と同じ情報を有する更新後ログを、更新後ログテーブル２１ｄから削除してもよく、更新前に戻されたことを示すフラグ等を付与してもよい。
【００６４】
［処理の流れ］
次に、メインセンタのデータベース管理装置１０やバックアップセンタのデータベース管理装置２０が実行する処理の流れを説明する。
【００６５】
（メインセンタ内の処理の流れ）
図８は、実施例２に係るメインセンタにおける処理の流れを説明するフローチャートである。図８に示すように、ＤＢＭＳ１２のＤＢ操作部１２ｃは、情報処理装置によってマスタＤＢの更新が要求されると（Ｓ１０１肯定）、トランザクションを実行して各マスタＤＢを更新する（Ｓ１０２）。
【００６６】
そして、ジャーナル取得部１２ｄは、各マスタＤＢのジャーナルを抽出し、整合情報管理部１２ｅにトランザクション整合情報の取得を要求する（Ｓ１０３）。続いて、整合情報管理部１２ｅは、整合情報管理テーブル１１ｂに記憶されるトランザクション整合情報をインクリメントした値をジャーナル取得部１２ｄに応答するとともに、整合情報管理テーブル１１ｂに格納する（Ｓ１０４）。
【００６７】
その後、ジャーナル取得部１２ｄは、抽出したジャーナルに、通知されたトランザクション整合情報を付与したジャーナルファイルを生成して（Ｓ１０５）、各ジャーナルファイルＤＢに格納する（Ｓ１０６）。
【００６８】
そして、リモート処理部１３ｃは、転送契機に到達すると（Ｓ１０７肯定）、各ジャーナルファイルＤＢからジャーナルファイルを読み出して、バックアップセンタに転送する（Ｓ１０８）。その後、データベース管理装置１０は、Ｓ１０１に戻って処理を繰り返して実行する。
【００６９】
（バックアップセンタ内のＤＢ反映処理の流れ）
図９は、実施例２に係るバックアップセンタにおけるＤＢ反映処理の流れを示すフローチャートである。図９に示すように、リモート処理部２２ｃは、メインセンタからジャーナルファイルを受信すると（Ｓ２０１肯定）、ジャーナルファイルを該当するジャーナルファイルＤＢに格納する（Ｓ２０２）。
【００７０】
そして、反映部２３は、各ジャーナルファイルＤＢからジャーナルファイルを読み出して、トランザクション整合情報を抽出する（Ｓ２０３）。続いて、反映部２３は、各レプリカＤＢのジャーナルファイルから抽出したトランザクション整合情報を、各レプリカＤＢに対応付けて反映完了ポイント管理テーブル２１ｂに格納する（Ｓ２０４）。
【００７１】
そして、更新前ログ取得部２４ｃは、反映部２３が抽出したジャーナルファイルから更新位置を特定し、特定した更新位置のデータを更新前ログとして更新前ログテーブル２１ｃに格納する（Ｓ２０５）。
【００７２】
その後、反映部２３は、ジャーナルファイルに含まれるジャーナルによって該当するレプリカＤＢを反映する指示をＤＢＭＳ２４に出力し、ＤＢＭＳ２４がジャーナルを反映する（Ｓ２０６）。なお、ジャーナルとは、ジャーナルファイルからトランザクション整合情報を除いた情報である。そして、更新後ログ取得部２５は、レプリカＤＢが更新された更新位置の更新後のログを抽出して、更新後ログテーブル２１ｄに格納する（Ｓ２０７）。その後、データベース管理装置２０は、Ｓ２０１に戻って処理を繰り返して実行する。
【００７３】
（バックアップセンタ内のＤＢ反映戻し処理の流れ）
図１０は、実施例２に係るバックアップセンタにおけるＤＢ反映戻し処理の流れを示すフローチャートである。図１０に示すように、反映戻し実行部２６は、オペレータ等から切替指示を受信すると（Ｓ３０１肯定）、反映完了ポイン管理トテーブル２１ｂを参照して、各レプリカＤＢの反映完了ポイントを抽出する（Ｓ３０２）。
【００７４】
そして、反映戻し実行部２６は、抽出した各レプリカＤＢの反映完了ポイント、すなわちトランザクション整合情報の最小値を特定する（Ｓ３０３）。その後、反映戻し実行部２６は、更新前ログテーブル２１ｃを参照し、レプリカＤＢごとに、最小値よりも大きいトランザクション整合情報を有する更新前ログを特定する（Ｓ３０４）。
【００７５】
そして、反映戻し実行部２６は、レプリカＤＢごとに、特定した最小値より大きいトランザクション整合情報を有する更新前ログの更新前データを、該当する更新位置に反映する（Ｓ３０５）。その後、データベース管理装置２０は、Ｓ３０１に戻って処理を繰り返して実行する。
【００７６】
（トランザクションの説明）
図１１は、メインセンタにおけるマスタＤＢを更新するトランザクションを説明する図である。図１１に示すように、情報処理装置が実行する業務処理は、トランザクションを開始すると、トランザクション処理開始の操作要求をＤＢＭＳ１２に送信し、ＤＢＭＳ１２は、マスタＤＢを更新するトランザクションを開始する。
【００７７】
そして、業務処理は、具体的なＤＢ操作、すなわちデータ更新等を実行すると、データ更新の操作実行をＤＢＭＳ１２に要求し、ＤＢＭＳ１２は、要求に応じてマスタＤＢを更新する。業務処理は、この処理を処理数分実行する。
【００７８】
その後、業務処理は、データ更新を実行する処理が終了すると、トランザクション秋涼の操作要求をＤＢＭＳ１２に送信し、ＤＢＭＳ１２は、マスタＤＢを更新するトランザクションを終了する。なお、業務処理は、業務に応じて、トランザクション開始、ＤＢ操作、トランザクション終了を繰り返す。
【００７９】
（メインセンタにおけるジャーナル取得処理の流れ）
図１２は、メインセンタにおけるジャーナル取得処理の流れを示すシーケンス図である。図１２に示すように、ＤＢＭＳ１２のＤＢ操作部１２ｃは、トランザクション処理を開始すると（Ｓ４０１）、ＤＢを更新する操作を実行し、ＤＢを更新したことをジャーナル取得部１２ｄに通知する（Ｓ４０２）。
【００８０】
ジャーナル取得部１２ｄは、更新されたマスタＤＢから更新後の内容をジャーナルとして抽出してメモリ１１の作業領域１１ａ等に格納する（Ｓ４０３とＳ４０４）。そして、ＤＢＭＳ１２のＤＢ操作部１２ｃは、マスタＤＢの更新が完了すると、トランザクション処理を終了する通知をジャーナル取得部１２ｄに通知する（Ｓ４０５）。
【００８１】
ジャーナル取得部１２ｄは、整合情報管理部１２ｅにトランザクション整合情報の取得を要求し（Ｓ４０６）、整合情報管理部１２ｅからインクリメントされたトランザクション整合情報を取得する（Ｓ４０７）。すると、ジャーナル取得部１２ｄは、Ｓ４０４でメモリ１１に格納したジャーナルに、取得したトランザクション整合情報を付与してジャーナルファイルを生成する（Ｓ４０８とＳ４０９）。
【００８２】
その後、ジャーナル取得部１２ｄは、メモリ１１の作業領域１１ａからジャーナルファイルを読み出して、該当するジャーナルファイルＤＢに格納する（Ｓ４１０）。そして、ＤＢＭＳ１２のＤＢ操作部１２ｃは、ジャーナル取得部１２ｄによってジャーナルファイルがＤＢに格納されると、トランザクション処理を終了する（Ｓ４１１）。
【００８３】
（バックアップセンタにおけるジャーナル反映処理の流れ）
図１３は、バックアップセンタにおけるジャーナル反映処理の流れを示すシーケンス図である。なお、この処理は、レプリカＤＢごとに実行される。図１３に示すように、反映部２３は、各ジャーナルファイルＤＢからジャーナルファイルを読み込み（Ｓ５０１）、トランザクション処理を開始する（Ｓ５０２）。ＤＢＭＳ２４は、反映部２３からトランザクション開始が通知されると、各レプリカＤＢにデータを反映する処理を実行するトランザクション処理を開始する（Ｓ５０３）。
【００８４】
そして、反映部２３は、ジャーナルファイルとＤＢへの操作指示とを含むＤＢ反映要求をＤＢＭＳ２４に送信し（Ｓ５０４）、ＤＢＭＳ２４は、更新前ログ取得部２４ｃに対して、更新前ログの取得を要求する（Ｓ５０５）。その後、ＤＢＭＳ２４は、該当レプリカにジャーナルを反映させてデータを更新し（Ｓ５０６）、更新が完了したことを反映部２３に通知する（Ｓ５０７）。
【００８５】
そして、反映部２３は、レプリカＤＢごとに、反映が完了したジャーナルファイルのトランザクション整合情報を反映完了ポイントとして反映完了ポイント管理テーブル２１ｂに格納する（Ｓ５０８）。その後、反映部２３は、トランザクションの終了処理を開始し（Ｓ５０９）、ＤＢＭＳ２４は、トランザクション確定処理を実行して、各レプリカＤＢに反映させたデータを確定させる（Ｓ５１０）。
【００８６】
その後、ＤＢＭＳ２４は、トランザクションを確定させたことを反映部２３に通知し（Ｓ５１１）、この通知を受けた反映部２３は、トランザクション処理を終了する（Ｓ５１２）。
【００８７】
（バックアップセンタにおける更新前ログ取得処理の流れ）
図１４は、バックアップセンタにおける更新前ログ取得処理の流れを示すシーケンス図である。ＤＢＭＳ２４は、ジャーナルをレプリカＤＢに反映させるトランザクション処理を開始すると（Ｓ６０１）、該当するレプリカＤＢの更新前ログの取得を更新前ログ取得部２４ｃに要求する（Ｓ６０２）。
【００８８】
更新前ログ取得部２４ｃは、反映部２３から受信したジャーナルファイルから更新先と位置とを特定し、該当するレプリカＤＢの更新先と位置から更新前のデータを取得する（Ｓ６０３）。続いて、更新前ログ取得部２４ｃは、反映部２３から受信したジャーナルファイルからトランザクション整合情報を取得して更新前ログにトランザクション整合情報を付与し（Ｓ６０４）、メモリ２１の作業領域２１ａ等に格納する（Ｓ６０５）。その後、更新前ログ取得部２４ｃは、更新前ログを取得したことをＤＢＭＳ２４に通知する（Ｓ６０６）。
【００８９】
そして、この通知を受けたＤＢＭＳ２４は、反映部２３から受信したジャーナルファイルに基づいてレプリカＤＢにジャーナルを反映させる（Ｓ６０７）。その後、ＤＢＭＳ２４は、ジャーナルをレプリカＤＢに反映させるトランザクション処理の終了処理を開始する（Ｓ６０８）。すると、更新前ログ取得部２４ｃは、作業領域２１ａに格納した更新前ログを読み込んで、更新前ログテーブル２１ｃに格納する（Ｓ６０９とＳ６１０）。
【００９０】
そして、更新前ログ取得部２４ｃは、更新前ログを更新前ログテーブル２１ｃに格納したことを示す完了通知をＤＢＭＳ２４に通知し（Ｓ６１１）、この通知を受けたＤＢＭＳ２４は、トランザクション処理を終了する（Ｓ６１２）。
【００９１】
（処理の具体例）
図１５は、レプリカＤＢへのジャーナル反映から反映戻しまでの一連の処理例を説明する図である。この例では、レプリカＤＢ（Ａ）、レプリカＤＢ（Ｂ）、レプリカＤＢ（Ｃ）を有し、レプリカＤＢごとにジャーナルファイルＤＢ（Ａ）、ジャーナルファイルＤＢ（Ｂ）、ジャーナルファイルＤＢ（Ｃ）を有する例を用いて説明する。
【００９２】
図１５に示すように、１世代目のジャーナルファイルとして、データベース管理装置２０のリモート処理部２２ｃは、トランザクション整合情報が「１」であるジャーナルファイルを３つ受信し、各ジャーナルファイルＤＢに格納する。すなわち、データベース管理装置２０は、１世代目のジャーナルファイルとして、各レプリカＤＢへのジャーナルを受信する。
【００９３】
すると、反映部２３は、各ジャーナルファイルＤＢからジャーナルファイルを読み込んで、各レプリカＤＢに反映する。そして、反映部２３は、各レプリカＤＢの反映完了ポイントを１に更新する。また、更新前ログ取得部２４ｃは、各レプリカＤＢが更新される前に、各レプリカＤＢの更新前ログを取得して、レプリカＤＢごとに更新前ログテーブル２１ｃに格納する。
【００９４】
次に、２世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「２」であるジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ｂ）とジャーナルファイルＤＢ（Ｃ）とに格納する。すなわち、データベース管理装置２０は、２世代目のジャーナルファイルとして、レプリカＤＢ（Ｂ）へのジャーナルとレプリカＤＢ（Ｃ）へのジャーナルを受信する。
【００９５】
すると、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｃ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｃ）に反映する。そして、反映部２３は、レプリカＤＢ（Ｂ）とレプリカＤＢ（Ｃ）の反映完了ポイントを２に更新し、レプリカＤＢ（Ａ）の反映完了ポイントを１のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｃ）が更新される前に、レプリカＤＢ（Ｃ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【００９６】
続いて、３世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「３」であるジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ａ）とジャーナルファイルＤＢ（Ｂ）とに格納する。すなわち、データベース管理装置２０は、３世代目のジャーナルファイルとして、レプリカＤＢ（Ａ）へのジャーナルとレプリカＤＢ（Ｂ）へのジャーナルを受信する。
【００９７】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｂ）の反映完了ポイントを３に更新し、レプリカＤＢ（Ｃ）の反映完了ポイントを２のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【００９８】
続いて、４世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「４」であるジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ａ）とジャーナルファイルＤＢ（Ｃ）とに格納する。すなわち、データベース管理装置２０は、４世代目のジャーナルファイルとして、レプリカＤＢ（Ａ）へのジャーナルとレプリカＤＢ（Ｃ）へのジャーナルを受信する。
【００９９】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｃ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｃ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｃ）の反映完了ポイントを４に更新し、レプリカＤＢ（Ｂ）の反映完了ポイントを３のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｃ）が更新される前に、レプリカＤＢ（Ｃ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１００】
続いて、５世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「５」であるジャーナルファイルを１つ受信し、ジャーナルファイルＤＢ（Ｂ）とに格納する。すなわち、データベース管理装置２０は、５世代目のジャーナルファイルとして、レプリカＤＢ（Ｂ）へのジャーナルを受信する。
【０１０１】
すると、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。そして、反映部２３は、レプリカＤＢ（Ｂ）の反映完了ポイントを５に更新し、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｃ）の反映完了ポイントを４のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１０２】
続いて、６世代目のジャーナルファイルを受信するタイミングで障害が発生したとする。しかし、リモート処理部２２ｃは、トランザクション整合情報が「６」であるジャーナルファイルを１つ受信し、ジャーナルファイルＤＢ（Ａ）に格納する。すなわち、データベース管理装置２０は、６世代目のジャーナルファイルとして、レプリカＤＢ（Ａ）へのジャーナルを受信する。
【０１０３】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）の反映完了ポイントを６に更新し、レプリカＤＢ（Ｂ）の反映完了ポイントを５のままにし、レプリカＤＢ（Ｃ）の反映完了ポイントを４のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１０４】
ここで、データベース管理装置２０は、６世代目のジャーナルファイルを受信するタイミングで障害を検出したので、反映戻し処理を実行する。反映戻し実行部２６は、まず、反映完了ポイン管理テーブル２１ｂを参照し、レプリカごとに反映完了ポイントを抽出する。次に、反映戻し実行部２６は、抽出した反映完了ポイントのうち最小値を特定する。上記した例では、レプリカＤＢ（Ａ）の反映完了ポイントが６、レプリカＤＢ（Ｂ）の反映完了ポイントが５、レプリカＤＢ（Ｃ）の反映完了ポイントが４であることより、反映戻し実行部２６は、最小値を４と特定する。
【０１０５】
その後、反映戻し実行部２６は、トランザクション整合情報が４より大きいジャーナルを反映前の状態に戻す。具体的には、反映戻し実行部２６は、レプリカＤＢ（Ａ）については、更新前ログテーブル２１ｃを参照し、トランザクション整合情報が４より大きい更新前ログとして、トランザクション整合情報が６の更新前ログを特定する。そして、反映戻し実行部２６は、トランザクション整合情報が６の更新前ログに含まれる更新先の位置に、ＤＢ更新前の内容を反映させて、更新前の状態に戻す。
【０１０６】
同様に、反映戻し実行部２６は、レプリカＤＢ（Ｂ）については、更新前ログテーブル２１ｃを参照し、トランザクション整合情報が４より大きい更新前ログとして、トランザクション整合情報が５の更新前ログを特定する。そして、反映戻し実行部２６は、トランザクション整合情報が５の更新前ログに含まれる更新先の位置に、ＤＢ更新前の内容を反映させて、更新前の状態に戻す。
【０１０７】
また、反映戻し実行部２６は、レプリカＤＢ（Ｃ）については、更新前ログテーブル２１ｃを参照し、トランザクション整合情報が４より大きい更新前が存在しないことを特定する。このため、反映戻し実行部２６は、レプリカＤＢ（Ｃ）について反映戻し処理を実行しない。このようにすることで、各レプリカＤＢの反映状況をトランザクション整合情報が４以下の状態に変更することができる。したがって、各レプリカＤＢ間で整合性を確定することができる。
【０１０８】
上述した実施例２に係るバックアップシステムでは、バックアップセンタでは定常運用中はトランザクション整合を気にせずに無条件にジャーナルをレプリカＤＢへ反映することができる。このため、バックアップセンタでは、ジャーナルの受信と同時にレプリカＤＢへ反映を行うリアルタイム反映が実現できる。また、災害発生前まで各ジャーナルファイルの転送レスポンスに開きがない通常の運用状況では、災害発生時の反映戻し処理の量は微量となり、災害発生時の運用再開までの時間が短縮される。
【０１０９】
従来では、ジャーナルファイルの世代ごとに一括して反映を行うため、災害後の反映量が多く、例えば数千トランザクション分などになり、時間が掛かる。しかし、実施例２に係るバックアップシステムでは、リアルタイムに反映を行うため反映戻しを行うトランザクション分の処理時間に短縮される。
【実施例３】
【０１１０】
実施例２では、ジャーナルファイルとレプリカＤＢが１：１で対応する例を説明したが、ジャーナルファイル内に複数のレプリカＤＢのジャーナルが格納される状況、すなわち１：ｎでも同様に処理することができる。そこで、実施例３では、ジャーナルファイル内に複数のレプリカＤＢのジャーナルが格納される例を説明する。
【０１１１】
図１６は、実施例３に係る１ジャーナルファイルに複数のレプリカＤＢのジャーナルが格納されている場合の処理例を説明する図である。この例では、レプリカＤＢ（Ａ）、レプリカＤＢ（Ｂ）、レプリカＤＢ（Ｃ）を有し、レプリカＤＢごとにジャーナルファイルＤＢ（Ａ）、ジャーナルファイルＤＢ（Ｂ）、ジャーナルファイルＤＢ（Ｃ）を有する例を用いて説明する。
【０１１２】
また、ここでは、各ジャーナルファイルに、「ジャーナルファイル（Ａ）、ジャーナルファイル（Ｂ）、ジャーナルファイル（Ｃ）」のトランザクション整合情報が含まれているものとする。つまり、メインセンタのジャーナル取得部１２ｄが、各ジャーナルに「１、１、１」などとトランザクション整合情報を付与することとする。
【０１１３】
図１６に示すように、１世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「１、１、１」を含むジャーナルファイルを３つ受信し、各ジャーナルファイルＤＢに格納する。すなわち、データベース管理装置２０は、１世代目のジャーナルファイルとして、各レプリカＤＢへのジャーナルを受信する。
【０１１４】
すると、反映部２３は、各ジャーナルファイルＤＢからジャーナルファイルを読み込んで、各レプリカＤＢに反映する。そして、反映部２３は、各レプリカＤＢの反映完了ポイントを１に更新する。また、更新前ログ取得部２４ｃは、各レプリカＤＢが更新される前に、各レプリカＤＢの更新前ログを取得して、レプリカＤＢごとに更新前ログテーブル２１ｃに格納する。
【０１１５】
次に、２世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「１、２、２」を含むジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ｂ）とジャーナルファイルＤＢ（Ｃ）とに格納する。すなわち、データベース管理装置２０は、２世代目のジャーナルファイルとして、レプリカＤＢ（Ｂ）へのジャーナルとレプリカＤＢ（Ｃ）へのジャーナルを受信する。
【０１１６】
すると、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｃ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｃ）に反映する。そして、反映部２３は、レプリカＤＢ（Ｂ）とレプリカＤＢ（Ｃ）の反映完了ポイントを２に更新し、レプリカＤＢ（Ａ）の反映完了ポイントを１のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｃ）が更新される前に、レプリカＤＢ（Ｃ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１１７】
続いて、３世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「３、３、２」であるジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ａ）とジャーナルファイルＤＢ（Ｂ）とに格納する。すなわち、データベース管理装置２０は、３世代目のジャーナルファイルとして、レプリカＤＢ（Ａ）へのジャーナルとレプリカＤＢ（Ｂ）へのジャーナルを受信する。
【０１１８】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｂ）の反映完了ポイントを３に更新し、レプリカＤＢ（Ｃ）の反映完了ポイントを２のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１１９】
続いて、４世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「４、３、４」であるジャーナルファイルを２つ受信し、ジャーナルファイルＤＢ（Ａ）とジャーナルファイルＤＢ（Ｃ）とに格納する。すなわち、データベース管理装置２０は、４世代目のジャーナルファイルとして、レプリカＤＢ（Ａ）へのジャーナルとレプリカＤＢ（Ｃ）へのジャーナルを受信する。
【０１２０】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。同様に、反映部２３は、ジャーナルファイルＤＢ（Ｃ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｃ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｃ）の反映完了ポイントを４に更新し、レプリカＤＢ（Ｂ）の反映完了ポイントを３のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。同様に、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｃ）が更新される前に、レプリカＤＢ（Ｃ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１２１】
続いて、５世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「４、５、４」であるジャーナルファイルを１つ受信し、ジャーナルファイルＤＢ（Ｂ）とに格納する。すなわち、データベース管理装置２０は、５世代目のジャーナルファイルとして、レプリカＤＢ（Ｂ）へのジャーナルを受信する。
【０１２２】
すると、反映部２３は、ジャーナルファイルＤＢ（Ｂ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ｂ）に反映する。そして、反映部２３は、レプリカＤＢ（Ｂ）の反映完了ポイントを５に更新し、レプリカＤＢ（Ａ）とレプリカＤＢ（Ｃ）の反映完了ポイントを４のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ｂ）が更新される前に、レプリカＤＢ（Ｂ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１２３】
続いて、６世代目のジャーナルファイルとして、リモート処理部２２ｃは、トランザクション整合情報が「６、６、６」であるジャーナルファイルを１つ受信し、ジャーナルファイルＤＢ（Ａ）に格納する。すなわち、データベース管理装置２０は、６世代目のジャーナルファイルを３つ受信するはずが、１つが受信していないことを根拠に、障害発生を検出する。
【０１２４】
すると、反映部２３は、ジャーナルファイルＤＢ（Ａ）からジャーナルファイルを読み込んで、レプリカＤＢ（Ａ）に反映する。そして、反映部２３は、レプリカＤＢ（Ａ）の反映完了ポイントを６に更新し、レプリカＤＢ（Ｂ）の反映完了ポイントを５のままにし、レプリカＤＢ（Ｃ）の反映完了ポイントを４のままにする。また、更新前ログ取得部２４ｃは、レプリカＤＢ（Ａ）が更新される前に、レプリカＤＢ（Ａ）の更新前ログを取得して、更新前ログテーブル２１ｃに格納する。
【０１２５】
そして、データベース管理装置２０は、６世代目のジャーナルファイルを受信するタイミングで障害を検出したので、反映戻し処理を実行する。ここで、図１７から図１９を用いて反映戻し判定の例を説明する。図１７は、実施例３に係る反映戻しの判定例１を説明する図である。図１８は、実施例３に係る反映戻しの判定例２を説明する図である。図１９は、実施例３に係る反映戻しの判定例３を説明する図である。
【０１２６】
反映戻し実行部２６は、以下の条件１と条件２の両方を満たす場合に、データの戻しを実行する。（条件１）更新前ログの各トランザクション整合情報が、反映完了ポイント管理テーブル２１ｂで管理している各トランザクション整合情報以上の値である。（条件２）更新前ログ中の各トランザクション整合情報が、反映完了ポイント管理テーブル２１ｂで管理している各トランザクション整合情報と一致しないものがある。
【０１２７】
図１７を用いて、反映戻し実行部２６は、レプリカＤＢ（Ａ）のジャーナルファイルについて説明する。この場合、ジャーナルファイル（Ａ）の更新前ログのトランザクション整合情報が「６」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「６」である。また、ジャーナルファイル（Ｂ）の更新前ログのトランザクション整合情報が「６」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「５」である。また、ジャーナルファイル（Ｃ）の更新前ログのトランザクション整合情報が「６」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「４」である。
【０１２８】
したがって、反映戻し実行部２６は、更新前ログの各トランザクション整合情報が、反映完了ポイント管理テーブル２１ｂで管理している各トランザクション整合情報以上の値であるので、（条件１）を満たすと判定する。また、ジャーナルファイル（Ｃ）の更新前ログのトランザクション整合情報が「６」が、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「４」であることより、（条件２）を満たすと判定する。
【０１２９】
この結果、反映戻し実行部２６は、レプリカＤＢ（Ａ）に対しては、ジャーナルを戻すと判定して、反映戻し処理を実行する。具体的には、反映戻し実行部２６は、レプリカＤＢ（Ａ）に反映された、トランザクション整合情報が「６、６、６」であるジャーナルを戻す。つまり、反映戻し実行部２６は、トランザクション整合情報が「６」である更新前ログをレプリカＤＢ（Ａ）に反映する。
【０１３０】
次に、図１８を用いて、反映戻し実行部２６は、レプリカＤＢ（Ｂ）のジャーナルファイルについて説明する。この場合、ジャーナルファイル（Ａ）の更新前ログのトランザクション整合情報が「４」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「６」である。また、ジャーナルファイル（Ｂ）の更新前ログのトランザクション整合情報が「５」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「５」である。また、ジャーナルファイル（Ｃ）の更新前ログのトランザクション整合情報が「４」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「４」である。
【０１３１】
したがって、反映戻し実行部２６は、ジャーナルファイル（Ａ）の更新前ログのトランザクション整合情報「４」が反映完了ポイント管理テーブル２１ｂのトランザクション整合情報「６」以上を満たさないので、（条件１）を満たさないと判定する。この結果、反映戻し実行部２６は、レプリカＤＢ（Ｂ）に対してはジャーナルを戻さないと判定する。
【０１３２】
次に、図１９を用いて、反映戻し実行部２６は、レプリカＤＢ（Ｃ）のジャーナルファイルについて説明する。この場合、ジャーナルファイル（Ａ）の更新前ログのトランザクション整合情報が「６」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「６」である。また、ジャーナルファイル（Ｂ）の更新前ログのトランザクション整合情報が「５」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「５」である。また、ジャーナルファイル（Ｃ）の更新前ログのトランザクション整合情報が「４」であり、反映完了ポイント管理テーブル２１ｂのトランザクション整合情報が「４」である。
【０１３３】
したがって、反映戻し実行部２６は、更新前ログの各トランザクション整合情報が、反映完了ポイント管理テーブル２１ｂで管理している各トランザクション整合情報以上の値であることから、（条件１）を満たすと判定する。しかし、反映戻し実行部２６は、更新前ログの各トランザクション整合情報が、反映完了ポイント管理テーブル２１ｂで管理している各トランザクション整合情報と全て一致するので、（条件２）を満たさないと判定する。この結果、反映戻し実行部２６は、レプリカＤＢ（Ｃ）に対してはジャーナルを戻さないと判定する。
【０１３４】
このようにすることで、図１５では、トランザクション整合情報が５のジャーナルを元に戻してしまっていた。ところが、当該ジャーナルはレプリカＤＢ（Ｂ）に閉じたものである。実施例２の手法では、ジャーナルが該当するレプリカＤＢに閉じたものかどうかを判定できないので、元に戻すことになるが、実施例３では、ジャーナルが該当するレプリカＤＢに閉じたものかどうかをすることができる。したがって、マスタＤＢの更新により近く、かつ、整合性の取れたレプリカＤＢに復元して、サービスを継続することができる。
【実施例４】
【０１３５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１３６】
（トランザクション整合情報）
上記実施例では、トランザクション整合情報として、順番にインクリメントされる番号を例にして説明したが、これに限定されるものではない。例えば、任意な識別子を用いることもできる。その場合、更新前ログ等としては、時系列に記憶し、時間にしたがって反映戻しを判定することもできる。
【０１３７】
また、トランザクション整合情報として、マスタＤＢを更新したトランザクションを識別するトランザクションＩＤ等を用いることもできる。その場合には、更新前ログに同様のトランザクションＩＤを含むようにする。この結果、データベース間で共通に保持されていない識別子を反映戻し対象と特定することもできる。
【０１３８】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例ではバックアップシステムを例にして説明したがこれに限定されるものではなく、任意のデータベースシステムに適用することができる。
【０１３９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１４０】
（ハードウェア構成）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１４１】
図２０は、データベース更新制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図２０に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図２０に示した各部は、バス１０１で相互に接続される。
【０１４２】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、データベース更新制御プログラム１０７ａとともに、図２に示した各ＤＢやテーブル等を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【０１４３】
ＣＰＵ１０２は、データベース更新制御プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図５等で説明した各機能を実行するデータベース更新制御プロセス１０８ａを動作させる。すなわち、データベース更新制御プロセス１０８ａは、図５に記載したリモートディスク処理部２２、反映部２３、ＤＢＭＳ２４、更新後ログ取得部２５、反映戻し実行部２６と同様の機能を実行する。また、データベース更新制御プロセス１０８ａは、図２に記載したＤＢＭＳ１２、リモートディスク処理部１３と同様の機能を実行することもできる。このようにコンピュータ１００は、プログラムを読み出して実行することでデータベース更新制御方法を実行する情報処理装置として動作する。
【０１４４】
コンピュータ１００は、媒体読取装置１０６によって記録媒体からデータベース更新制御プログラムを読み出し、読み出されたデータベース更新制御プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１４５】
１  メインセンタ
２  情報処理装置
３  データベース管理システム
３ａ、３ｂ  マスタＤＢ
４  リモートディスク装置
４ａ、４ｂ、４ｄ、４ｅ  ジャーナルファイルＤＢ
５  バックアップセンタ
６  データベース管理システム
６ａ、６ｂ  レプリカＤＢ
１０  データベース管理装置
１１  メモリ
１１ａ  作業領域
１１ｂ  整合情報管理テーブル
１２  ＤＢＭＳ
１２ａ、１２ｂ  マスタＤＢ
１２ｃ  ＤＢ操作部
１２ｄ  ジャーナル取得部
１２ｅ  整合情報管理部
１３  リモートディスク処理部
１３ａ、１３ｂ  ジャーナルファイルＤＢ
１３ｃ  リモート処理部
２０  データベース管理装置
２１  メモリ
２１ａ  作業領域
２１ｂ  反映完了ポイント管理テーブル
２１ｃ  更新前ログテーブル
２１ｄ  更新後ログテーブル
２２  リモートディスク処理部
２２ａ、２２ｂ  ジャーナルファイルＤＢ
２２ｃ  リモート処理部
２３  反映部
２４  ＤＢＭＳ
２４ａ、２４ｂ  レプリカＤＢ
２４ｃ  更新前ログ取得部
２５  更新後ログ取得部
２６  反映戻し実行部
【図１】
0005724735.tif 000002
【図２】
0005724735.tif 000003
【図３】
0005724735.tif 000004
【図４】
0005724735.tif 000005
【図５】
0005724735.tif 000006
【図６】
0005724735.tif 000007
【図７】
0005724735.tif 000008
【図８】
0005724735.tif 000009
【図９】
0005724735.tif 000010
【図１０】
0005724735.tif 000011
【図１１】
0005724735.tif 000012
【図１２】
0005724735.tif 000013
【図１３】
0005724735.tif 000014
【図１４】
0005724735.tif 000015
【図１５】
0005724735.tif 000016
【図１６】
0005724735.tif 000017
【図１７】
0005724735.tif 000018
【図１８】
0005724735.tif 000019
【図１９】
0005724735.tif 000020
【図２０】
0005724735.tif 000021