(57)【特許請求の範囲】
【請求項１】
第１の装置および第２の装置を含むバックアップシステムであって、
第１のデータベースへの更新に応じて、前記更新の更新内容を示す更新ログを記憶する、前記第１の装置に含まれる第１の記憶手段と、
前記第１の記憶手段に記憶されたデータがミラーリングされる、前記第２の装置に含まれる第２の記憶手段と、
前記第１の記憶手段に所定量の更新ログが記憶された場合に、前記第２の記憶手段にミラーリングされた前記所定量の更新ログに基づいて前記第１のデータベースへの更新を第２のデータベースに反映させる、前記第２の装置に含まれる反映手段と、
前記第１の記憶手段に前記所定量の更新ログが記憶された場合に、前記第１の記憶手段への新たな更新ログの記憶を規制し、前記反映手段が前記所定量の更新ログに基づいて前記第１のデータベースへの更新を前記第２のデータベースに反映させた場合に、前記所定量の更新ログが記憶された記憶領域について前記第１の記憶手段への新たな更新ログの記憶を可能にする制御を行う、前記第１の装置に含まれる制御手段と、
を含むことを特徴とするバックアップシステム。
【請求項２】
前記第１の装置は、更に、前記第１の記憶手段に前記所定量の更新ログが記憶された場合に、前記反映手段に第１の通知を行う第１の通知手段を含み、
前記第２の装置は、更に、前記反映手段が前記所定量の更新ログに基づいて前記第１のデータベースへの更新を前記第２のデータベースに反映させた場合に、前記制御手段に第２の通知を行う第２の通知手段を含み、
前記反映手段は、前記第１の通知を受けた場合に、前記所定量の更新ログに基づいて前記第１のデータベースへの更新を前記第２のデータベースに反映させ、
前記制御手段は、前記第２の通知を受けた場合に、前記新たな更新ログの記憶を可能にする制御を行う、
ことを特徴とする請求項１に記載のバックアップシステム。
【請求項３】
前記バックアップシステムは、前記反映手段が前記所定量の更新ログに基づいて前記第１のデータベースへの更新を前記第２のデータベースに反映させた場合に、前記第２の記憶手段に記憶された更新ログを削除する管理手段を含み、
前記第２の通知手段は、前記管理手段が前記第２の記憶手段に記憶された更新ログを削除した場合に、前記第２の通知を行う、
ことを特徴とする請求項２に記載のバックアップシステム。
【請求項４】
前記バックアップシステムは、更に、第３の記憶手段、および、前記第３の記憶手段に記憶されるデータの複製が記憶される第４の記憶手段を含み、
前記第２の通知手段は、前記第２の通知で通知する通知データを前記第３の記憶手段に記憶させ、
前記制御手段は、前記第２の通知の通知データが前記第４の記憶手段に記憶された場合に、前記第２の通知を受けたと判断する、
ことを特徴とする請求項３に記載のバックアップシステム。
【請求項５】
前記第１の記憶手段は、複数の記憶領域を備え、
前記制御手段は、前記第１の記憶手段に備えられた何れかの記憶領域に前記所定量の更新ログが記憶された場合に、更新ログを記憶させる記憶領域を前記第１の記憶手段に備えられた他の記憶領域に切り替える制御を行う、
ことを特徴とする請求項１乃至４の何れか一項に記載のバックアップシステム。
【請求項６】
前記第１の記憶手段は、複数の記憶領域を備え、
前記制御手段は、前記第１の記憶手段に備えられた何れかの記憶領域に前記所定量の更新ログが記憶された場合に、更新ログを記憶させる記憶領域を前記第１の記憶手段に備えられた他の記憶領域に切り替える制御を行い、
前記第１の通知手段は、前記制御手段が前記切り替える制御を行った場合に、前記第１の記憶手段に前記第１の通知で通知する通知データを記憶し、
前記反映手段は、前記第２の記憶手段に前記第１の通知の通知データが記憶された場合に、前記制御手段が前記切り替える制御を行ったことを判断する、
ことを特徴とする請求項２乃至４の何れか一項に記載のバックアップシステム。
【請求項７】
第１の装置に含まれる第１の記憶手段および第２の装置に含まれる第２の記憶手段を含むバックアップシステムが行うバックアップ方法であって、
第１のデータベースの更新に応じて、前記更新の更新内容を示す更新ログを前記第１の記憶手段に記憶し、
前記第１の記憶手段に記憶された更新ログを前記第２の記憶手段にミラーリングし、
前記第１の記憶手段に所定量の更新ログが記憶された場合に、前記第１の装置において前記第１の記憶手段への新たな更新ログの記憶を規制し、
前記第１の記憶手段に前記所定量の更新ログが記憶された場合に、前記第２の記憶手段にミラーリングされた前記所定量の更新ログに基づいて、前記第２の装置において前記第１のデータベースへの更新を第２のデータベースに反映させ、
前記所定量の更新ログに基づいて前記第１のデータベースへの更新が前記第２のデータベースに反映された場合に、前記所定量の更新ログが記憶された記憶領域について、前記第１の装置において前記第１の記憶手段への新たな更新ログの記憶を可能にする、
ことを特徴とするバックアップ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースのバックアップシステムおよびバックアップ方法に関する。
【背景技術】
【０００２】
現在、コンピュータによるデータ処理が普及し、さまざまな業務でコンピュータが用いられるに伴い、データベースに格納されたデータの損失を防ぐことが求められている。そこで、データベースを備えるコンピュータに障害が発生しても、データが損失しないように、データベースの複製を作成することが行われている。これにより、普段の業務で運用しているコンピュータ（以下、ホストコンピュータという）に格納されたデータが棄損しても、複製したデータベースからデータを復旧することができる。特に、自然災害など、ホストコンピュータが設置された施設全体が被害を受ける場合に備えて、遠隔地に設置されたコンピュータ（以下、リモートコンピュータという）にデータベースの複製を作成することが行われている。
【０００３】
リモートコンピュータへデータを転送する方法としては、メッセージング方式とミラーリング方式がある。メッセージング方式では、ホストコンピュータがリモートコンピュータで動作しているソフトウェアに対して、データを含むメッセージを明示的に送信する。一方、ミラーリング方式では、ホストコンピュータ内のローカルディスクとリモートコンピュータ内のリモートディスクとを管理する専用のミドルウェアが、ローカルディスクに書き込まれたデータを自動的にリモートディスクに複製する。ミラーリング方式を実現するミドルウェアには、論理ディスク間のデータの書き込み順序を保持し、その書き込み順序と同一の順序でリモートディスクにデータの複製を作成するものもある（例えば、特許文献１参照）。このように、専用のミドルウェアを用いることで、データ処理を行う応用プログラムが、データの複製が行われていることを意識する必要がないという利点がある。
【０００４】
ここで、ホストコンピュータにいつ障害が発生してもデータを復旧できるためには、ホストコンピュータのデータベース（以下、ホストデータベースという）とリモートコンピュータに複製されたデータベース（以下、リモートデータベースという）との間のデータの同一性を厳密に維持しなければならない。しかし、ミラーリング方式を採用するだけでは、両データベースが更新されるタイミングに遅延が生じる可能性があるため、厳密な同一性の維持を実現できない。同一性を維持する方法としては、データが更新される度に、ホストコンピュータがリモートデータベースの更新状況を確認する方法がある。ホストコンピュータは、応用プログラムからの要求に応じてホストデータベースを更新すると、リモートデータベースにデータの更新が反映されたことを確認した後、応用プログラムへ処理完了の応答を返す。しかし、このように両データベースを同時に更新する方法では、ネットワークの遅延時間とリモートデータベースの更新に要する時間の分だけ、応用プログラムへの応答が遅延するという問題がある。
【０００５】
そこで、ホストデータベースに対して行われた更新処理に関する情報である更新データのみを、リモートコンピュータへ送信し、更新データに基づいてリモートコンピュータが後でリモートデータベースの更新を行う方法が知られている（例えば、特許文献２参照）。ホストコンピュータは、ホストデータベースを更新すると、更新データをリモートコンピュータへ送信する。リモートコンピュータは、リモートデータベースの更新処理を即時には行わず、受信した更新データを保存してホストコンピュータへ応答を返す。その後、リモートコンピュータは、更新データをリモートデータベースへ反映させる指示のメッセージをホストコンピュータから受け取ってから、リモートデータベースの更新処理を行う。これにより、ホストコンピュータは、リモートコンピュータから更新データを受信した旨の応答を受け取った時点で処理を完了することができ、応用プログラムへの応答時間を改善できる。ホストコンピュータに障害が発生したときは、リモートデータベースと、まだリモートデータベースに反映されていない更新データとから、データを復旧することができる。
【特許文献１】特開２００３−１６７６８４号公報
【特許文献２】特開平６−２１４８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献２記載の技術では、ホストコンピュータはリモートコンピュータからの応答を待たなければならず、依然としてネットワークの遅延時間の分だけ応用プログラムへの応答が遅延するという問題がある。そこで、更新データがホストコンピュータのローカルディスクに保存された時点で、応用プログラムへ処理完了の応答を返したいという要求がある。
【０００７】
すなわち、一般的なネットワークでは、メッセージの伝送に遅延があり到達順序も保証されないため、更新データがローカルディスクからリモートディスクへ複製されるタイミングと、更新データを反映させる指示のメッセージがリモートコンピュータへ到達するタイミングとを制御することができない。そのため、ホストコンピュータが、更新データをローカルディスクに保存した後に、更新データを反映させる指示のメッセージを送信しても、その到達順序が逆転する場合がある。この２つの到達順序が逆転すると、リモートコンピュータは不完全な更新データに基づいてリモートデータベースを更新することになる。この場合、ホストデータベースとリモートデータベースとの間でデータの不一致が生じる。以上のような問題があるため、ホストコンピュータは、リモートコンピュータからの応答を待たずに処理を完了することができなかった。
【０００８】
一側面によれば、本発明は、データベースのバックアップを行うバックアップシステムおよびバックアップ方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一実施態様では、図１に示すようなデータベース複製プログラムが提供される。本発明に係るデータベース複製プログラムは、ホストコンピュータのローカルディスクに保存した更新データをリモートディスクへ複製し、複製した更新データをリモートデータベースに反映させるものである。このデータベース複製プログラムを実行するホストコンピュータ１０は、ネットワークを介してリモートコンピュータ２０と接続されている。ホストコンピュータ１０は、ミラーリング手段１１、カレントディスク管理手段１２、データ書き込み手段１３および運用情報管理手段１４を有する。ミラーリング手段１１は、複数のローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄそれぞれに対して個別にデータが書き込まれると、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄに対応付けてリモートコンピュータ２０内に設けられたリモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄに、データの書き込みの順序と同一の順序で、書き込まれたデータの複製データを書き込む。カレントディスク管理手段１２は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄのうちの１つをカレントディスクとして選択しており、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクを他のローカルディスクに切り替える。データ書き込み手段１３は、データ書き込み要求を受け取ると、カレントディスクに対してデータを書き込む。運用情報管理手段１４は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄのうちの１つを運用情報格納ディスクとして選択しており、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクに格納されたデータの複製データのバックアップを指示する運用情報を運用情報格納ディスクに格納する。
【００１０】
このようなデータベース複製プログラムによれば、カレントディスク管理手段１２により、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄのうちの１つがカレントディスクとして選択されると共に、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクが他のローカルディスクに切り替えられる。データ書き込み要求を受け取ると、データ書き込み手段１３により、カレントディスクに対してデータが書き込まれる。そして、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、運用情報管理手段１４により、カレントディスクに格納されたデータの複製データのバックアップを指示する運用情報が、運用情報格納ディスクとして選択されたローカルディスクに格納される。ここで、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄに書き込まれたデータは、データの書き込みの順序と同一の順序で、リモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄに複製される。
【００１１】
また、一実施態様では、ネットワークを介して接続されたリモートコンピュータにデータベースの複製を作成するデータベース複製装置において、複数のローカルディスクそれぞれに対して個別にデータが書き込まれると、前記ローカルディスクそれぞれに対応付けて前記リモートコンピュータ内に設けられたリモートディスクに、前記データの書き込みの順序と同一の順序で、書き込まれた前記データの複製データを書き込むミラーリング手段と、前記ローカルディスクのうちの１つをカレントディスクとして選択しており、前記カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、前記カレントディスクを他の前記ローカルディスクに切り替えるカレントディスク管理手段と、データ書き込み要求を受け取ると、前記カレントディスクに対して前記データを書き込むデータ書き込み手段と、前記ローカルディスクのうちの１つを運用情報格納ディスクとして選択しており、前記カレントディスクに格納されたデータ量が前記最大情報量に達すると、前記カレントディスクに格納されたデータの複製データのバックアップを指示する運用情報を前記運用情報格納ディスクに格納する運用情報管理手段と、を有することを特徴とするデータベース複製装置が提供される。
【００１２】
このようなデータベース複製装置によれば、上記データベース複製プログラムを実行するコンピュータと同様の処理が行われる。
また、一実施態様では、複数のローカルディスクそれぞれに対して個別にデータが書き込まれると、前記ローカルディスクそれぞれに対応付けて前記リモートコンピュータ内に設けられたリモートディスクに、前記データの書き込みの順序と同一の順序で、書き込まれた前記データの複製データを書き込むミラーリング手段が設けられたデータベース複製方法において、データ書き込み手段が、データ書き込み要求を受け取ると、前記ローカルディスクのうちカレントディスクとして選択されている１つのローカルディスクに対して前記データを書き込み、カレントディスク管理手段が、前記データが書き込まれた前記カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、前記カレントディスクを他の前記ローカルディスクに切り替え、運用情報管理手段が、前記データが書き込まれた前記カレントディスクに格納されたデータ量が前記最大情報量に達すると、前記カレントディスクに格納されたデータの複製データのバックアップを指示する運用情報を、前記ローカルディスクのうち運用情報格納ディスクとして選択されている１つのローカルディスクに格納する、ことを特徴とするデータベース複製方法が提供される。
【００１３】
このようなデータベース複製方法によれば、データ書き込み要求に応じてローカルディスクのうちカレントディスクとして選択されている１つのローカルディスクにデータが書き込まれる。ここで、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクが他のローカルディスクに切り替えられる。そして、カレントディスクに格納されたデータの複製データのバックアップを指示する運用情報が、運用情報格納ディスクとして選択されたローカルディスクに格納される。ローカルディスクに書き込まれたデータは、データの書き込みの順序と同一の順序で、リモートディスクに複製される。
【００１４】
また、一実施態様では、第１のデータベースへの更新に応じて、更新の更新内容を示す更新ログを記憶する第１の記憶手段と、第１の記憶手段に記憶されたデータがミラーリングされる第２の記憶手段と、第１の記憶手段に所定量の更新ログが記憶された場合に、第２の記憶手段にミラーリングされた所定量の更新ログに基づいて第１のデータベースへの更新を第２のデータベースに反映させる反映手段と、第１の記憶手段に所定量の更新ログが記憶された場合に、第１の記憶手段への新たな更新ログの記憶を規制し、反映手段が所定量の更新ログに基づいて第１のデータベースへの更新を第２のデータベースに反映させた場合に、所定量の更新ログが記憶された記憶領域について第１の記憶手段への新たな更新ログの記憶を可能にする制御を行う制御手段と、を含むことを特徴とするバックアップシステムが提供される。
【００１５】
また、一実施態様では、第１の記憶手段および第２の記憶手段を含むバックアップシステムが行うバックアップ方法であって、第１のデータベースの更新に応じて、更新の更新内容を示す更新ログを第１の記憶手段に記憶し、第１の記憶手段に記憶された更新ログを第２の記憶手段にミラーリングし、第１の記憶手段に所定量の更新ログが記憶された場合に、第１の記憶手段への新たな更新ログの記憶を規制し、第１の記憶手段に所定量の更新ログが記憶された場合に、第２の記憶手段にミラーリングされた所定量の更新ログに基づいて第１のデータベースへの更新を第２のデータベースに反映させ、所定量の更新ログに基づいて第１のデータベースへの更新が第２のデータベースに反映された場合に、所定量の更新ログが記憶された記憶領域について第１の記憶手段への新たな更新ログの記憶を可能にする、ことを特徴とするバックアップ方法が提供される。
【発明の効果】
【００１６】
一実施態様では、書き込み順序が保証されたミラーリング手段を用いて、データと運用情報とをローカルディスクからリモートディスクへ複製することとした。このため、データがリモートディスクへ複製された後に、運用情報がリモートコンピュータへ到達することが保証される。これにより、ホストコンピュータは、リモートディスクにデータが複製されることを待たずに処理を完了できるようになり、応答速度を改善できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明を示す原理図である。図１に示されるデータベース複製システムは、ホストコンピュータ１０とリモートコンピュータ２０とから構成される。ホストコンピュータ１０とリモートコンピュータ２０とは、ネットワークを介して接続されている。
【００１８】
ホストコンピュータ１０は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄを有する。リモートコンピュータ２０は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄそれぞれに対応したリモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄを有する。ローカルディスク１１ａとリモートディスク２１ａ、ローカルディスク１１ｂとリモートディスク２１ｂ、ローカルディスク１１ｃとリモートディスク２１ｃ、ローカルディスク１１ｄとリモートディスク２１ｄが、それぞれ対応している。なお、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄは、それぞれ別個の物理ディスクとして構成してもよいし、１つの物理ディスクを複数の領域（パーティション）に分割して構成した論理ディスクであってもよい。同様に、リモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄも、それぞれ別個の物理ディスクでも１つの物理ディスクを分割して構成した論理ディスクでもよい。
【００１９】
ホストコンピュータ１０とリモートコンピュータ２０は、共通のミラーリング手段１１を備える。ミラーリング手段１１は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄのいずれかのディスクにデータが書き込まれると、所定の遅延時間以内に、書き込まれたデータと同一のデータを対応するリモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄに複製する。ここで、ミラーリング手段１１は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄに対する書き込み順序と同一の順序で、リモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄに対して書き込みを行う。このように、ミラーリング手段１１は、ローカルディスク１１ａ，１１ｂ，１１ｃ，１１ｄとリモートディスク２１ａ，２１ｂ，２１ｃ，２１ｄとの間で、書き込み順序を保証したミラーリング処理を実現する。
【００２０】
ホストコンピュータ１０は、さらに、カレントディスク管理手段１２、データ書き込み手段１３、運用情報管理手段１４、ホストデータベース１５およびデータベース更新手段１６を有する。
【００２１】
カレントディスク管理手段１２は、ローカルディスク１１ａ，１１ｂ，１１ｃを、更新データを格納するために使用可能なディスクとして選択していると共に、そのうち１つのディスク（例えば、ローカルディスク１１ａ）をカレントディスクとして選択する。カレントディスクは、現在の更新データの格納先を意味する。そして、カレントディスク管理手段１２は、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクを他の空き容量のあるローカルディスクに切り替える。その後の更新データは、切り替え後のカレントディスクに格納される。
【００２２】
データ書き込み手段１３は、更新データを含むデータ書き込み要求を受け取ると、カレントディスク管理手段１２から、カレントディスクとして選択されているローカルディスクの情報を取得する。そして、データ書き込み手段１３は、カレントディスクであるローカルディスクに、受け取った更新データを追加する。
【００２３】
運用情報管理手段１４は、ローカルディスク１１ｄを、運用情報を格納する運用情報格納ディスクとして選択している。運用情報管理手段１４は、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、カレントディスクに格納された更新データをリモートコンピュータに複製されたデータベースに反映するよう指示する運用情報を、運用情報格納ディスクに格納する。
【００２４】
ホストデータベース１５は、図示しない応用プログラムによって利用されるデータを格納する。データベース更新手段１６は、応用プログラムからデータの更新要求を取得すると、取得した更新要求に基づいて、ホストデータベース１５を更新する。また、データベース更新手段１６は、ホストデータベース１５の更新処理が終わると、行った更新処理に関する情報である更新データを含む書き込み要求を、データ書き込み手段１３に通知する。
【００２５】
一方、リモートコンピュータ２０は、さらに、リモートデータベース２２およびデータベース更新手段２３を有する。リモートデータベース２２は、ホストデータベース１５に格納されたデータの複製を格納する。
【００２６】
データベース更新手段２３は、運用情報格納ディスクとして選択されたローカルディスク１１ｄに対応するリモートディスク２１ｄを継続的に監視する。ここで、データベース更新手段２３は、リモートディスク２１ｄに運用情報の複製が格納されると、運用情報に基づいて、最大情報量に達したローカルディスク（例えば、ローカルディスク１１ａ）に対応するリモートディスク（例えば、リモートディスク２１ａ）から複製された更新データを取得する。そして、データベース更新手段２３は、取得した更新データに基づいてリモートデータベース２２を更新し、更新データを反映させる。
【００２７】
このようなデータベース複製システムによれば、応用プログラムからデータの更新要求が入力されると、データベース更新手段１６によりホストデータベース１５が更新され、更新データが作成される。そして、データ書き込み手段１３により、作成された更新データがカレントディスクに格納される。ここで、カレントディスクに格納されたデータ量が予め設定された最大情報量に達すると、運用情報管理手段１４により、運用情報が運用情報格納ディスクに格納される。更新データおよび運用情報は、ミラーリング手段１１により、書き込み順序が保持されてリモートコンピュータ２０側へ複製される。運用情報が複製されると、データベース更新手段２３により、リモートディスクから更新情報が取得され、リモートデータベース２２が更新される。
【００２８】
これにより、リモートコンピュータに更新データの複製が到達してから、運用情報の複製が到達することが保証される。したがって、ホストコンピュータは、リモートコンピュータに更新データが到達したことを確認する必要がなく、ローカルディスクに更新データが格納された時点で応用プログラムに対して処理完了の応答を行えるようになる。
【００２９】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図２は、本実施の形態のシステム構成を示す図である。
ホストコンピュータ１００は、ネットワーク３０を介してリモートコンピュータ２００と接続されている。また、ホストコンピュータ１００は、クライアントコンピュータ４１，４２，４３とそれぞれ接続されている。
【００３０】
ホストコンピュータ１００は、ホストデータベースを有している。クライアントコンピュータ４１，４２，４３にはそれぞれ、データ処理を行う応用プログラムが組み込まれている。応用プログラムは、必要に応じてホストコンピュータ１００と通信を行い、ホストデータベースに格納されたデータの検索や更新の処理を要求できる。ホストコンピュータ１００は、応用プログラムからの要求に応じて、ホストデータベースに対する処理を実行する。
【００３１】
リモートコンピュータ２００は、ホストデータベースの複製であるリモートデータベースを有している。ホストデータベースが更新されると、ホストコンピュータ１００からリモートコンピュータ２００へネットワーク３０を介して更新データが送られる。リモートコンピュータ２００は、その更新データに基づいてリモートデータベースを更新する。
【００３２】
次に、ホストコンピュータ１００、リモートコンピュータ２００およびクライアントコンピュータ４１，４２，４３のハードウェア構成について説明する。ただし、これらコンピュータは同様のハードウェア構成によって実現できるため、代表してホストコンピュータ１００について説明する。
【００３３】
図３は、ホストコンピュータのハードウェア構成を示す図である。ホストコンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０６が接続されている。
【００３４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳプログラムやアプリケーションプログラムが格納される。グラフィック処理装置１０４には、モニタ３１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ３１の画面に表示させる。入力インタフェース１０５には、キーボード３２とマウス３３とが接続されている。入力インタフェース１０５は、キーボード３２やマウス３３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク３０に接続されている。
【００３５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、ホストコンピュータ１００のモジュール構成について説明する。
【００３６】
図４は、ホストコンピュータの機能を示すブロック図である。ホストコンピュータ１００は、ホストデータベース１１０、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃ、運用情報送信用ディスク１３０、運用情報受信用ディスク１４０、ミラーリング部１５０，１５５、データベース更新部１６０、データ書き込み部１７０、カレントディスク管理部１８０および運用情報管理部１９０を有する。ミラーリング部１５０，１５５は、ネットワーク３０を介してリモートコンピュータ２００と通信が可能である。
【００３７】
ホストデータベース１１０には、クライアントコンピュータ４１，４２，４３に組み込まれた応用プログラムによって利用されるデータが格納される。更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃには、ホストデータベース１１０の更新処理に関する情報である更新データが格納される。更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃにはそれぞれ、格納することができる最大のデータ量である最大情報量が予め設定されている。
【００３８】
運用情報送信用ディスク１３０には、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃそれぞれの更新データの格納状況を示す運用情報が格納される。運用情報受信用ディスク１４０には、運用情報送信用ディスク１３０と同様に、運用情報が格納される。ただし、運用情報受信用ディスク１４０は、リモートコンピュータ２００内の対応するディスクに書き込まれた運用情報の複製を保持するためのディスクである。
【００３９】
ミラーリング部１５０は、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃおよび運用情報送信用ディスク１３０に格納されたデータの更新の有無を常時監視する。これらのディスクでデータの更新があると、ミラーリング部１５０は、リモートコンピュータ２００に対して更新があったデータを送信する。ここで、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃおよび運用情報送信用ディスク１３０のディスク間で複数回のデータの更新があると、それら更新の順序と同一の順序でリモートコンピュータ２００内のディスクに複製が作成される。ディスク間での順序保証の実現方法については、後で詳細に説明する。
【００４０】
ミラーリング部１５５は、リモートコンピュータ２００から運用情報を受信すると、受信した運用情報を運用情報受信用ディスク１４０に格納する。なお、運用情報受信用ディスク１４０への運用情報の書き込みは、他のディスクのミラーリング処理とは独立に行われ、書き込み順序保証の対象とはならない。
【００４１】
データベース更新部１６０は、クライアントコンピュータ４１，４２，４３で実行される応用プログラムからデータの更新要求を取得する。データベース更新部１６０は、取得した更新要求に従い、ホストデータベース１１０に格納されたデータを更新する。そして、データベース更新部１６０は、実行した更新処理に基づいて更新データを作成する。その後、データベース更新部１６０は、データ書き込み部１７０による更新データの格納が完了すると、更新要求の送信元である応用プログラムに対し処理完了の応答を返す。
【００４２】
データ書き込み部１７０は、カレントディスク管理部１８０に問い合わせを行い、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃのうち現在使用中のディスクを特定する。そして、データ書き込み部１７０は、特定した更新データ格納ディスクにデータベース更新部１６０が作成した更新データを追加する。
【００４３】
カレントディスク管理部１８０は、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃのうち現在使用中のディスクのディスク名を保持している。カレントディスク管理部１８０は、使用中の更新データ格納ディスクを常時監視し、格納されている更新データが最大情報量に達したか否かを判断する。最大情報量に達した場合、カレントディスク管理部１８０は、運用情報管理部１９０に問い合わせを行い、次に使用する更新データ格納ディスクのディスク名を取得する。
【００４４】
運用情報管理部１９０は、運用情報受信用ディスク１４０に格納された運用情報に基づいて、次に使用可能な更新データ格納ディスクを特定する。さらに、運用情報管理部１９０は、前のディスクが満杯になり使用中のディスクを切り替えたことを示す運用情報を、運用情報送信用ディスク１３０に格納する。
【００４５】
次に、リモートコンピュータ２００のモジュール構成について説明する。
図５は、リモートコンピュータの機能を示すブロック図である。リモートコンピュータ２００は、リモートデータベース２１０、更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃ、運用情報受信用ディスク２３０、運用情報送信用ディスク２４０、ミラーリング部２５０，２５５、運用情報管理部２６０およびデータベース更新部２７０を有する。ミラーリング部２５０，２５５は、ネットワーク３０を介してホストコンピュータ１００と通信が可能である。
【００４６】
リモートデータベース２１０には、ホストデータベース１１０に格納されたデータの複製が格納される。更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃには、ホストコンピュータ１００の更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃに格納された更新データの複製がそれぞれ格納される。更新データ格納ディスク１２０ａと更新データ格納ディスク２２０ａ、更新データ格納ディスク１２０ｂと更新データ格納ディスク２２０ｂ、更新データ格納ディスク１２０ｃと更新データ格納ディスク２２０ｃが、それぞれ対応している。運用情報受信用ディスク２３０には、ホストコンピュータ１００の運用情報送信用ディスク１３０に格納された運用情報の複製が格納される。運用情報送信用ディスク２４０には、更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃに格納された更新データがリモートデータベース２１０へ反映されたか否かを示す運用情報が格納される。
【００４７】
ミラーリング部２５０は、ホストコンピュータ１００のミラーリング部１５０から更新されたデータを取得し、取得したデータを対応するディスクに格納する。ここで、ミラーリング部２５０は、ホストコンピュータ１００のミラーリング部１５０と連携し、ホストコンピュータ１００側でのディスクの更新順序と同一の順序で、リモートコンピュータ２００側でディスクの更新が行われるように制御する。
【００４８】
ディスク間でデータの書き込み順序を保証する方法としては、特許文献１に挙げた遠隔データコピー方法が知られている。これを本実施の形態に応用した場合、例えば、以下のような方法で書き込み順序の保証を実現できる。
【００４９】
ホストコンピュータ１００のミラーリング部１５０内に、データを一時的に保持する２つのバッファを用意する。２つのバッファの一方が使用中のバッファとして選択され、他方が待機中のバッファとして選択される。ミラーリング部１５０は、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃおよび運用情報送信用ディスク１３０のいずれかのディスクでデータが更新されると、更新があったデータの場所を示す制御情報を作成する。制御情報は、例えば、ディスク名、ディスク内での開始アドレスおよびデータ長から構成される。そして、ミラーリング部１５０は、制御情報を付加して、更新されたデータを使用中のバッファの最後尾に追加する。ここで、バッファが満杯になるか、またはバッファに最初にデータが追加されてから所定の時間が経過すると、ミラーリング部１５０は、そのバッファの状態を待機中とし使用中のバッファを他方のバッファに切り替える。そして、ミラーリング部１５０は、待機中となったバッファに格納された複数のデータをまとめて、ミラーリング部２５０へ送信する。このように、２つのバッファを交互に使用することで、バッファへのデータの追加とバッファからのデータの読み出しとの間の競合の問題を解決する。
【００５０】
一方、リモートコンピュータ２００のミラーリング部２５０内にも、データを一時的に保持するバッファを１つ用意する。ミラーリング部２５０は、ミラーリング部１５０からデータを受信すると、受信したデータをバッファに格納する。そして、ミラーリング部２５０は、バッファの先頭から１つずつデータを読み出し、制御情報で示される場所にそのデータを格納する。これにより、バッファに格納された順序に従ってデータがディスクに格納されることが保証される。
【００５１】
上記の方法により、ディスク間での書き込み順序の保証を実現できる。また、本出願人による別の出願である特願２００５−０７８０１４号で示されるリモートコピー方法を用いても、上記目的を達成できる。
【００５２】
ミラーリング部２５５は、運用情報送信用ディスク２４０に格納された運用情報の更新の有無を常時監視する。運用情報の更新があると、ミラーリング部２５５は、ミラーリング部１５５に対して更新された運用情報を送信する。なお、運用情報送信用ディスク２４０のミラーリング処理は、他のミラーリング処理とは独立に行われ順序保証の対象とはならない。このようなミラーリング処理は、リモートミラーリングとして一般的に知られている方法により実現できる。
【００５３】
運用情報管理部２６０は、運用情報受信用ディスク２３０に格納された運用情報の更新の有無を常時監視する。運用情報の更新があると、運用情報管理部２６０は、更新された運用情報で示される更新データ格納ディスクを特定する。そして、運用情報管理部２６０は、特定した更新データ格納ディスクの更新データがリモートデータベース２１０に反映されると、その更新データ格納ディスクの更新データを破棄してよいことを示す運用情報を運用情報送信用ディスク２４０に格納する。
【００５４】
データベース更新部２７０は、運用情報管理部２６０が特定した更新データ格納ディスクから更新データを取得する。そして、データベース更新部２７０は、取得した更新データに基づいてリモートデータベース２１０を更新し、更新データを反映させる。
【００５５】
運用情報送信用ディスク１３０は、運用情報の一覧を表す運用情報テーブル１３０ａを有している。同様に、運用情報受信用ディスク１４０は、運用情報テーブル１４０ａを有している。運用情報受信用ディスク２３０は、運用情報テーブル２３０ａを有している。運用情報送信用ディスク２４０は、運用情報テーブル２４０ａを有している。ここで、運用情報テーブル１３０ａ，１４０ａ，２３０ａ，２４０ａのデータ構造はそれぞれ同様であるため、代表して運用情報テーブル１３０ａのデータ構造について説明する。
【００５６】
図６は、運用情報テーブルのデータ構造例を示す図である。運用情報テーブル１３０ａには、運用情報が更新データ格納ディスクごとに関連付けられてテーブル化されて格納されている。運用情報テーブル１３０ａには、使用順序を示すフィールド１３１、ディスク名を示すフィールド１３２および状態を示すフィールド１３３が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられて、運用情報を構成する。
【００５７】
フィールド１３１には、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃの使用順序を表す番号が設定される。例えば、使用順序が“１”と設定されたディスクが現在使用されている場合、使用順序が“２”と設定されたディスクが次に使用されるディスクであることを意味する。使用順序の番号が最も大きいディスク（例えば、図６で使用順序が“３”のディスク）の次は、使用順序が“１”のディスクが使用される。
【００５８】
フィールド１３２には、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃを一意に識別するためのディスク名が設定される。なお、更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃには、それぞれ対応する更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃのディスク名と同じディスク名が設定されているものとする。すなわち、更新データ格納ディスク１２０ａと更新データ格納ディスク２２０ａ、更新データ格納ディスク１２０ｂと更新データ格納ディスク２２０ｂ、更新データ格納ディスク１２０ｃと更新データ格納ディスク２２０ｃが、それぞれ同一のディスク名をもつ。
【００５９】
フィールド１３３には、ディスクの状態として、“使用中”、“満杯”、“未使用”のいずれかの値が設定される。“使用中”は、そのディスクがホストコンピュータ１００で更新データを追加するディスクに指定されていることを意味する。“満杯”は、そのディスクに格納された更新データのデータ量が最大情報量に達しているが、更新データがまだリモートデータベース２１０に反映されていないことを意味する。“未使用”は、そのディスクがまだ１度も使用されていないか、格納された更新データがすでにリモートデータベース２１０に反映されていることを意味する。
【００６０】
運用情報の使用順序とディスク名は、予めホストコンピュータ１００の管理者によって登録される。例えば、更新データ格納ディスク１２０ａ（および、それに対応する更新データ格納ディスク２２０ａ）について、使用順序が“１”、ディスク名が“ＲＬＣ１”という運用情報が登録される。なお、初めて運用情報を登録する場合は、状態を初期状態として“未使用”と設定しておく。
【００６１】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。最初に、ホストコンピュータ１００側の処理について説明する。
図７は、ホストデータ更新処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
【００６２】
［ステップＳ１１］データベース更新部１６０は、クライアントコンピュータ４１，４２，４３で実行される応用プログラムから、更新要求を取得したか否かを判断する。更新要求を取得した場合には、処理がステップＳ１２に進められる。更新要求を取得していない場合には、データベース更新部１６０によってステップＳ１１の処理が繰り返され、更新要求を取得するのを待つ。
【００６３】
［ステップＳ１２］データベース更新部１６０は、ステップＳ１１で取得した更新要求に基づいて、ホストデータベース１１０に格納されたデータを更新する。そして、データベース更新部１６０は、実行した更新処理に関する情報である更新データを作成し、作成した更新データを含む書き込み要求をデータ書き込み部１７０へ通知する。
【００６４】
［ステップＳ１３］データ書き込み部１７０は、データベース更新部１６０から更新データを受け取ると、カレントディスク管理部１８０に問い合わせを行い、現在使用中の更新データ格納ディスクのディスク名を取得する。
【００６５】
［ステップＳ１４］データ書き込み部１７０は、ステップＳ１３で受け取った更新データを、ステップＳ１３で取得したディスク名で特定される更新データ格納ディスクに追加する。そして、データ書き込み部１７０は、更新データの追加が完了した旨をデータベース更新部１６０へ通知する。通知を受け取ったデータベース更新部１６０は、ステップＳ１１で取得した更新要求の送信元に対して、処理完了の応答を返す。
【００６６】
［ステップＳ１５］カレントディスク管理部１８０は、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃのうち、現在使用中の更新データ格納ディスクを常時監視している。カレントディスク管理部１８０は、監視している更新データ格納ディスクに格納された更新データのデータ量が最大情報量に達したか否かを判断する。最大情報量に達した場合には、処理がステップＳ１６に進められる。最大情報量に達していない場合には、ホストデータ更新処理が終了する。
【００６７】
［ステップＳ１６］カレントディスク管理部１８０は、現在使用中の更新データ格納ディスクのディスク名を、運用情報管理部１９０に通知する。通知を受けた運用情報管理部１９０は、運用情報受信用ディスク１４０に格納された運用情報テーブル１４０ａを検索し、受け取ったディスク名で特定される更新データ格納ディスクの次の使用順序となっている更新データ格納ディスクの運用情報を取得する。ここで、取得した運用情報の状態が“未使用”以外である場合には、さらに次の使用順序となっている更新データ格納ディスクの運用情報を取得する。そして、運用情報管理部１９０は、取得した運用情報からディスク名を抽出する。
【００６８】
［ステップＳ１７］運用情報管理部１９０は、運用情報送信用ディスク１３０に格納された運用情報テーブル１３０ａを検索し、ステップＳ１６でカレントディスク管理部１８０から受け取った更新データ格納ディスクのディスク名をもつ運用情報を取得する。そして、運用情報管理部１９０は、取得した運用情報の状態を“満杯”に変更し、運用情報テーブル１３０ａを更新する。また、運用情報管理部１９０は、運用情報テーブル１３０ａを検索し、ステップＳ１６で抽出したディスク名をもつ運用情報を取得する。そして、運用情報管理部１９０は、取得した運用情報の状態を“使用中”に変更し、運用情報テーブル１３０ａを更新する。その後、運用情報管理部１９０は、カレントディスク管理部１８０に対し、ステップＳ１６で抽出したディスク名を通知する。通知を受け取ったカレントディスク管理部１８０は、受け取ったディスク名で特定される更新データ格納ディスクを、使用中の更新データ格納ディスクと判断する。
【００６９】
このようにして、応用プログラムから更新要求を取得すると、データベース更新部１６０がホストデータベース１１０を更新する。そして、データ書き込み部１７０が、使用中の更新データ格納ディスクに更新データを追加する。この時点で、更新要求の送信元である応用プログラムに対して応答が返される。使用中の更新データ格納ディスクが満杯になると、運用情報管理部１９０が、次に使用する更新データ格納ディスクを特定し使用するディスクを切り替える。
【００７０】
例えば、更新データ格納ディスク１２０ａの状態が“使用中”で、更新データ格納ディスク１２０ｂの状態が“未使用”であるとする。ここで、データ書き込み部１７０が更新データを追加することにより、更新データ格納ディスク１２０ａに格納された更新データのデータ量が最大情報量に達すると、更新データ格納ディスク１２０ａの状態が“使用中”から“満杯”に変更される。また、更新データ格納ディスク１２０ｂの状態が“未使用”から“使用中”に変更される。
【００７１】
次に、リモートコンピュータ２００側の処理について説明する。
図８は、リモートデータ更新処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００７２】
［ステップＳ２１］運用情報管理部２６０は、運用情報受信用ディスク２３０に格納された運用情報テーブル２３０ａを常時監視し、状態が“使用中”から“満杯”に更新された運用情報があるか否かを判断する。更新された運用情報がある場合には、処理がステップＳ２２に進められる。更新された運用情報がない場合には、運用情報管理部２６０によりステップＳ２１の処理が繰り返され、運用情報が更新されるのを待つ。
【００７３】
［ステップＳ２２］運用情報管理部２６０は、運用情報テーブル２３０ａから更新された運用情報を取得する。そして、運用情報管理部２６０は、取得した運用情報に基づいて運用情報送信用ディスク２４０に格納された運用情報テーブル２４０ａを更新し、変更を反映させる。これにより、運用情報テーブル２３０ａの内容と運用情報テーブル２４０ａの内容とが同一となる。その後、運用情報管理部２６０は、取得した運用情報からディスク名を抽出し、抽出したディスク名をデータベース更新部２７０に通知する。
【００７４】
［ステップＳ２３］データベース更新部２７０は、運用情報管理部２６０からディスク名を受け取ると、受け取ったディスク名で特定される更新データ格納ディスクから、格納されているすべての更新データを取得する。
【００７５】
［ステップＳ２４］データベース更新部２７０は、ステップＳ２４で取得した更新データに基づき、リモートデータベース２１０を更新する。これにより、更新データがリモートデータベース２１０に反映される。そして、データベース更新部２７０は、更新処理が完了した旨を運用情報管理部２６０に通知する。
【００７６】
［ステップＳ２５］運用情報管理部２６０は、データベース更新部２７０から通知を受け取ると、運用情報送信用ディスク２４０に格納された運用情報テーブル２４０ａを検索し、ステップＳ２２で抽出したディスク名をもつ運用情報を取得する。そして、運用情報管理部２６０は、取得した運用情報の状態を“満杯”から“未使用”に変更し、運用情報テーブル２４０ａを更新する。
【００７７】
このようにして、１つの更新データ格納ディスクの運用情報の状態が“使用中”から“満杯”になると、運用情報管理部２６０が、満杯になった更新データ格納ディスクを特定する。そして、データベース更新部２７０が、特定された更新データ格納ディスクから更新データを取得し、リモートデータベース２１０を更新する。その後、運用情報管理部２６０が、運用情報の状態を“満杯”から“未使用”に変更する。
【００７８】
例えば、更新データ格納ディスク１２０ａの状態が“使用中”から“満杯”になったとする。この場合、更新データ格納ディスク１２０ａに対応する更新データ格納ディスク２２０ａに格納された更新データに基づいて、リモートデータベース２１０が更新される。そして、更新データ格納ディスク１２０ａ（および、それに対応する更新データ格納ディスク２２０ａ）の運用情報の状態が“満杯”から“未使用”に変更される。
【００７９】
次に、以上のような一連のホストデータ更新処理とリモートデータ更新処理において、ミラーリング部１５０，１５５，２５０，２５５によって行われる、ディスク間のミラーリング処理の流れについて説明する。
【００８０】
図９は、ディスク間のミラーリング処理の流れの例を示す図である。ミラーリング処理の対象となるディスク以外の要素については、省略または簡略化して表記している。更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃおよび運用情報送信用ディスク１３０に格納されたデータが、これらディスク間での書き込み順序が保持されて、それぞれ対応する更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃおよび運用情報受信用ディスク２３０に複製される。また、これとは独立に、運用情報送信用ディスク２４０に格納されたデータが、運用情報受信用ディスク１４０に複製される。以下、図９に示す処理の流れをステップ番号に沿って説明する。
【００８１】
［ステップＳ３１］データ書き込み部１７０は、現在使用中の更新データ格納ディスク（例えば、更新データ格納ディスク１２０ａ）に更新データを追加する。
［ステップＳ３２］ミラーリング部１５０およびミラーリング部２５０は、ステップＳ３１で追加された更新データを、対応する更新データ格納ディスク（例えば、更新データ格納ディスク２２０ａ）に複製する。複製の処理は、更新データ格納ディスク１２０ａに更新データが追加されてから、所定の遅延時間以内に行われる。
【００８２】
［ステップＳ３３］運用情報管理部１９０は、現在使用中の更新データ格納ディスクが満杯になると、次に使用可能な更新データ格納ディスク（例えば、更新データ格納ディスク１２０ｂ）を特定し、更新データの格納先を変更する。
【００８３】
［ステップＳ３４］運用情報管理部１９０は、運用情報送信用ディスク１３０に格納された運用情報を更新し、ステップＳ３３で満杯になった更新データ格納ディスクの状態を“満杯”とする。
【００８４】
［ステップＳ３５］ミラーリング部１５０およびミラーリング部２５０は、ステップＳ３４で更新された運用情報を、運用情報受信用ディスク２３０に複製する。ここで、運用情報受信用ディスク２３０に運用情報が複製されるタイミングは、ステップＳ３２でリモートコンピュータ２００の更新データ格納ディスクに更新データが複製されるタイミングよりも後であることが保証される。
【００８５】
［ステップＳ３６］運用情報管理部２６０は、運用情報受信用ディスク２３０を監視し、更新された運用情報を取得する。
［ステップＳ３７］データベース更新部２７０は、ステップＳ３６で取得した運用情報で示される更新データ格納ディスク（例えば、更新データ格納ディスク２２０ａ）から、更新データを取得し、リモートデータベース２１０を更新する。
【００８６】
［ステップＳ３８］運用情報管理部２６０は、運用情報送信用ディスク２４０に格納された運用情報を更新し、ステップＳ３７で更新情報を取得した更新データ格納ディスクの状態を“未使用”とする。
【００８７】
［ステップＳ３９］ミラーリング部１５５およびミラーリング部２５５は、ステップＳ３８で更新された運用情報を、運用情報受信用ディスク１４０に複製する。
このようにして、更新データ格納ディスク１２０ａ，１２０ｂ，１２０ｃに格納された更新データは、リモートコンピュータ２００の対応する更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃに複製される。ここで、現在使用中の更新データ格納ディスクが満杯になると、その旨の運用情報がホストコンピュータ１００からリモートコンピュータ２００へ送られる。リモートコンピュータ２００では、取得した運用情報に基づいて更新データ格納ディスク２２０ａ，２２０ｂ，２２０ｃから更新データを取得し、リモートデータベース２１０に反映させる。リモートデータベース２１０の更新が完了すると、その旨の運用情報がリモートコンピュータ２００からホストコンピュータ１００へ送られる。ホストコンピュータ１００は、取得した運用情報に基づいて更新データを破棄し、更新データ格納ディスクを再利用することができる。
【００８８】
このようなデータベース複製システムを用いることで、ホストデータベース１１０に格納されたデータがリモートデータベース２１０に複製される。ここで、更新データと運用情報との複製の順序が保持されるため、リモートコンピュータ２００が運用情報を受け取った時点で、完全な更新データがリモートコンピュータ２００のディスクに存在することが保証される。これにより、ホストコンピュータ１００は、リモートコンピュータ２００から更新データを受け取った旨の応答を待つことなく、応用プログラムへ応答を返すことができる。そして、ホストコンピュータ１００に障害が発生した場合には、リモートデータベース２１０に格納されたデータと、まだリモートデータベース２１０に反映されていない更新データとから、データを復旧することができる。
【００８９】
以上、本発明のデータベース複製プログラム、データベース複製装置およびデータベース複製方法を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。
【００９０】
また、本発明は、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、汎用的なコンピュータによって実現することができる。その場合、ホストコンピュータ１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどが挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などが挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）などが挙げられる。
【００９１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９２】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【００９３】
【図１】実施の形態に適用される発明を示す原理図である。
【図２】本実施の形態のシステム構成を示す図である。
【図３】ホストコンピュータのハードウェア構成を示す図である。
【図４】ホストコンピュータの機能を示すブロック図である。
【図５】リモートコンピュータの機能を示すブロック図である。
【図６】運用情報テーブルのデータ構造例を示す図である。
【図７】ホストデータ更新処理の手順を示すフローチャートである。
【図８】リモートデータ更新処理の手順を示すフローチャートである。
【図９】ディスク間のミラーリング処理の流れの例を示す図である。
【符号の説明】
【００９４】
１０  ホストコンピュータ
１１  ミラーリング手段
１１ａ，１１ｂ，１１ｃ，１１ｄ  ローカルディスク
１２  カレントディスク管理手段
１３  データ書き込み手段
１４  運用情報管理手段
１５  ホストデータベース
１６  データベース更新手段
２０  リモートコンピュータ
２１ａ，２１ｂ，２１ｃ，２１ｄ  リモートディスク
２２  リモートデータベース
２３  データベース更新手段
【図１】
0005165206.tif 000002
【図２】
0005165206.tif 000003
【図３】
0005165206.tif 000004
【図４】
0005165206.tif 000005
【図５】
0005165206.tif 000006
【図６】
0005165206.tif 000007
【図７】
0005165206.tif 000008
【図８】
0005165206.tif 000009
【図９】
0005165206.tif 000010