(57)【要約】【課題】ホストコンピュータのバッファの内容を副記憶装置サブシステム上のデータベース領域へ反映させる際に入出力処理負荷を低減させる。【解決手段】ホストコンピュータからのアクセス要求が書き込み要求であり、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報である場合に、ホストコンピュータ側で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換するステップと、その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新し、前記アクセス要求を副記憶装置サブシステムへ送信するステップとを有するものである。【選択図】        図１
2004199497.tif 000002
【特許請求の範囲】
【請求項１】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリ方法において、
ホストコンピュータから送信されたアクセス要求を現用系の記憶装置サブシステムである正記憶装置サブシステムで受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定するステップと、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定するステップと、
前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換するステップと、
その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新するステップと、
前記アクセス要求を待機系の記憶装置サブシステムである副記憶装置サブシステムへ送信するステップとを有することを特徴とするディザスタリカバリ方法。
【請求項２】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリ方法において、
ホストコンピュータから現用系の記憶装置サブシステムである正記憶装置サブシステムへ送信されたアクセス要求を待機系の記憶装置サブシステムである副記憶装置サブシステムで受信するステップと、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定するステップと、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定するステップと、
前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換するステップと、
その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新するステップとを有することを特徴とするディザスタリカバリ方法。
【請求項３】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリ方法において、
ホストコンピュータのデータベースバッファの内容を現用系の記憶装置サブシステムである正記憶装置サブシステム内の記憶装置へ反映させる必要が生じた場合に、そのデータベースバッファに対して行われたデータベース処理の内容を示すログ情報の書き込み要求をホストコンピュータから正記憶装置サブシステムへ送信するステップと、データベースバッファ中にデータベース処理でアクセス対象となっているデータが存在していない場合に当該データの読み込み要求をホストコンピュータから正記憶装置サブシステムへ送信するステップと、
ホストコンピュータから送信されたアクセス要求を正記憶装置サブシステムで受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定するステップと、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が前記ログ情報であるかどうかを判定するステップと、
前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す第１の変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換するステップと、
その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新するステップと、
前記アクセス要求を待機系の記憶装置サブシステムである副記憶装置サブシステムへ送信するステップと、
前記送信されたアクセス要求を副記憶装置サブシステムで受信するステップと、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定するステップと、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が前記ログ情報であるかどうかを判定するステップと、
前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す第２の変換テーブルによって、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換するステップと、
その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新するステップとを有することを特徴とするディザスタリカバリ方法。
【請求項４】
前記受信したアクセス要求が読み込み要求である場合に、それ以前の書き込み要求で受信したログ情報中に読み込み対象のデータを更新するログ情報が含まれているかどうかを判定し、前記受信したログ情報中に読み込み対象のデータを更新するログ情報が含まれている場合に、読み込み対象のデータを当該ログ情報の内容に従って更新することを特徴とする請求項１乃至請求項３のいずれか１項に記載されたディザスタリカバリ方法。
【請求項５】
前記ログ情報の内、ＣＯＭＭＩＴされたトランザクションのログ情報を用いて更新を行うことを特徴とする請求項１乃至請求項４のいずれか１項に記載されたディザスタリカバリ方法。
【請求項６】
前記データベース領域のデータの更新を、そのデータベース領域のデータに対応する物理デバイス毎に並列に行うことを特徴とする請求項１乃至請求項５のいずれか１項に記載されたディザスタリカバリ方法。
【請求項７】
ホストコンピュータから正記憶装置サブシステムに送信されたアクセス要求の内でログ情報の書き込み要求のみを副記憶装置サブシステムへ送信し、そのログ情報の内容に従って副記憶装置サブシステム内のデータベース領域の更新を行うことを特徴とする請求項１乃至請求項６のいずれか１項に記載されたディザスタリカバリ方法。
【請求項８】
ホストコンピュータから正記憶装置サブシステムに送信されたアクセス要求として、データベース領域のデータの読み込み要求を含むアクセス要求を副記憶装置サブシステムへ送信することを特徴とする請求項１乃至請求項６のいずれか１項に記載されたディザスタリカバリ方法。
【請求項９】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行する為の処理を行う現用系の正記憶装置サブシステムにおいて、
ホストコンピュータから送信されたアクセス要求を受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する更新処理部と、
前記アクセス要求を副記憶装置サブシステムへ送信するデータ送信処理部とを備えることを特徴とする正記憶装置サブシステム。
【請求項１０】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行する為の処理を行う待機系の副記憶装置サブシステムにおいて、
ホストコンピュータから現用系の記憶装置サブシステムである正記憶装置サブシステムへ送信されたアクセス要求を受信するデータ受信処理部と、
その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する更新処理部とを備えることを特徴とする副記憶装置サブシステム。
【請求項１１】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリシステムにおいて、
ホストコンピュータのデータベースバッファの内容を現用系の記憶装置サブシステムである正記憶装置サブシステム内の記憶装置へ反映させる必要が生じた場合に、そのデータベースバッファに対して行われたデータベース処理の内容を示すログ情報の書き込み要求をホストコンピュータから正記憶装置サブシステムへ送信し、データベースバッファ中にデータベース処理でアクセス対象となっているデータが存在していない場合に当該データの読み込み要求をホストコンピュータから正記憶装置サブシステムへ送信するデータベース管理処理部と、
ホストコンピュータから送信されたアクセス要求を正記憶装置サブシステムで受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する第１の制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が前記ログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す第１の変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する第１の更新処理部と、
前記アクセス要求を待機系の記憶装置サブシステムである副記憶装置サブシステムへ送信するデータ送信処理部と、
前記送信されたアクセス要求を副記憶装置サブシステムで受信するデータ受信処理部と、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する第２の制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が前記ログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す第２の変換テーブルによって、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する第２の更新処理部とを備えることを特徴とするディザスタリカバリシステム。
【請求項１２】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行する為の処理を行う現用系の正記憶装置サブシステムとしてコンピュータを機能させる為のプログラムにおいて、
ホストコンピュータから送信されたアクセス要求を受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する更新処理部と、
前記アクセス要求を副記憶装置サブシステムへ送信するデータ送信処理部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１３】
現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行する為の処理を行う待機系の副記憶装置サブシステムとしてコンピュータを機能させる為のプログラムにおいて、
ホストコンピュータから現用系の記憶装置サブシステムである正記憶装置サブシステムへ送信されたアクセス要求を受信するデータ受信処理部と、
その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する制御処理部と、
前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容がホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す変換テーブルによって、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する更新処理部としてコンピュータを機能させることを特徴とする副記憶装置サブシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリシステムに関し、特に現用系のホストコンピュータのデータベースバッファ上で行われたデータベース処理の内容を示すログ情報により、待機系のディスクサブシステム内の磁気ディスク装置上のデータベースを更新するディザスタリカバリシステムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
従来のデータベース管理システムでは、ホストコンピュータ上と記憶装置サブシステムとの間でデータベースブロック及びログブロックの入出力を行っている。すなわち、データベース管理システムが入出力の効率を向上させる為にホストコンピュータのメインメモリ上にデータベースのバッファを設定し、当該バッファ上に記憶装置（メインメモリと比較して低速で大容量の磁気ディスク装置等の記憶装置を指すものとする）から入力したデータベースブロックをキャッシングすることによって、できるだけ記憶装置からの入出力を削減している。
【０００３】
この様なデータベース管理システムでは、データの更新処理については、予めデータベースバッファ上に入力したデータベースブロックに対して行い、その際の更新履歴情報をログ専用のバッファにログとして書き出した後、トランザクションの決着時にそのログを記憶装置に強制出力することによって整合性を保証している。その際、データベースブロックの記憶装置への反映（書き込み）では、当該ブロックに対して行った更新履歴ログを先行して記憶装置に出力する、所謂ＷＡＬ（Ｗｒｉｔｅ Ａｈｅａｄ Ｌｏｇ）を遵守する必要がある。
【０００４】
また、データベース管理システムでは、障害に備え、定期的にＤＢの整合性を保証するため、稼動中にチェックポイントを取得する。チェックポイントは、システム障害時の再開始処理を行う起点となるデータベースの整合性が保証されたポイントとなる。主にチェックポイントは稼動中に出力したログブロック数がある一定の回数に達した時点に取得する場合が多い。チェックポイント処理では、その時点のデータベースバッファ上の更新が行われたデータベースブロックを記憶装置上に全て書き出す処理が行われる（例えば非特許文献１参照）。
【０００５】
また、地理的に分散した複数のサイトに複製を置く、所謂ディザスタリカバリがある。これは、あるサイトのデータを地理的に離れた他のサイトに複製を持っておき、あるサイトが災害等により障害にあった場合、他のサイトで業務を復旧させるというものである。
【０００６】
データベース管理システムでは、この様な複製を持つ手法としていくつかの方法がある。基本的には、クライントから見て主となるシステム、すなわち現用系システムに要求を送り、現用系でログレコードが生成され、これがバックアップとなるものであり、すなわちこのログレコードが現用系システムから待機系システムに送られて待機系のホストコンピュータがこのログレコードに従って現用系と同じ更新処理を行うことにより待機系システムの状態を更新しており、現用系システムで生成されたログレコードを待機系システムに送ることで複製を実現している（例えば特許文献１参照）。
【０００７】
一方、最近の記憶装置サブシステムでは、配下の磁気ディスク装置のデータを別の記憶制御装置配下の磁気ディスク装置に二重書きするリモートコピー機能を有するものが多く製品化されている。この二重書き機能により複数の磁気ディスク装置にデータを多重保持することで、あるサイトの記憶制御装置または磁気ディスク装置が災害等で壊滅した場合に、データを二重書きしていた別のサイトの記憶制御装置及び磁気ディスク装置を用いて業務を復旧できる様にしている。
【０００８】
【非特許文献１】
ジム・グレイ(Jim Gray)、アンドレアス・ロイター(Andreas Reuter)著、「トランザクション・プロセッシング：コンセプト・アンド・テクニック(TRANSACTION PROCESSING:CONCEPTS AND TECHNIQUES)」（米国）、第1版、モーガン・カウフマン・パブリッシャー(MORGAN KAUFMAN PUBLISHERS)社発行、1993年、pp.556-557、pp.604-609
【特許文献１】
米国特許第５６４０５６１号明細書
【０００９】
【発明が解決しようとする課題】
従来のデータベース管理システムにおけるデータベースブロックの記憶装置への書き込み方法では、前記の様にデータベースバッファ上の更新が行われたデータベースブロックを記憶装置上に全て書き出す処理が行われるが、更新が行われたデータベースブロック中には更新の行われていないレコードも含まれている為、必要の無い入出力も発生し、ホストコンピュータと記憶装置サブシステムとの間の入出力処理に大きな負荷がかかるという問題がある。
【００１０】
また、前記従来のディザスタリカバリを実現するシステムでは、ログレコードを現用系システムから待機系システムへ送る為、現用系のホストコンピュータと待機系のホストコンピュータとの間のネットワークの負荷がかかってしまうという問題があり、障害が発生していない状態であっても、ログレコードの処理の為に待機系のホストコンピュータを常に動作させておき、現用系のホストコンピュータで行われた更新処理と同じ処理を待機系のホストコンピュータで行う必要がある。
【００１１】
更に、前記従来のリモートコピー機能を有する記憶装置サブシステムでは、データベースを構成するデータ及びログ等の全てについてコピーを行う為、更新されていないレコードを繰り返しコピーすることになり、記憶装置サブシステム間の入出力負荷が高くなるという問題がある。
【００１２】
本発明の目的は上記問題を解決し、ホストコンピュータのバッファ上で行われたデータベース処理の内容を副記憶装置サブシステム上のデータベース領域へ反映させる際に、ホストコンピュータ間や記憶装置サブシステム間の入出力処理負荷を低減させることが可能な技術を提供することにある。
【００１３】
本発明の他の目的はホストコンピュータのバッファ上で行われたデータベース処理の内容をログ情報によって副記憶装置サブシステム上のデータベース領域へ反映させる際に、不要な入出力処理を省略することが可能な技術を提供することにある。
【００１４】
本発明の他の目的はホストコンピュータのバッファ上で行われたデータベース処理の内容をログ情報によって副記憶装置サブシステム上のデータベース領域へ反映させる際に、その処理を効率的に行うことが可能な技術を提供することにある。
【００１５】
本発明の他の目的は副記憶装置サブシステムのキャッシュ上に読み込み対象のデータベースブロックをロードしてウォームキャッシュ状態とすることが可能な技術を提供することにある。
【００１６】
【課題を解決するための手段】
本発明は、現用系データベース処理システムの障害発生時に待機系データベース処理システムへ切り替えてデータベース処理を続行するディザスタリカバリシステムにおいて、ホストコンピュータから正記憶装置サブシステムに送信されたログ情報の内容に従って副記憶装置サブシステム内のデータベース領域の更新を行うものである。
【００１７】
本発明のディザスタリカバリシステムでは、記憶装置サブシステム内のデータベース領域の内容を一時的に保持するデータベースバッファと、データベースバッファに対する更新処理の内容を一時的に保持するログバッファとをホストコンピュータに備えており、ホストコンピュータでのデータベース処理の実行に伴ってデータベースバッファの内容が変更され、その変更内容を記憶装置サブシステム内のデータベース領域に反映させる必要が生じた場合には、データベースバッファ上で行われた更新処理の内容を示すログ情報の記憶装置サブシステムへの書き込みを要求するアクセス要求を現用系の正ホストコンピュータから現用系の正記憶装置サブシステムへ送信する。
【００１８】
正記憶装置サブシステムでは、前記アクセス要求を正ホストコンピュータから受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する。そして、その受信したアクセス要求が書き込み要求である場合には、その書き込み内容が正ホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定する。
【００１９】
前記判定の結果、その書き込み内容が前記ログ情報である場合には、正ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と正記憶装置サブシステム上の物理的な位置情報との対応関係を示す第１の変換テーブルを参照し、前記ログ情報中に示された位置情報を正記憶装置サブシステム上の物理的な位置情報に変換した後、その変換した物理的な位置情報で表される正記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する。
【００２０】
次に、正ホストコンピュータから送信された前記アクセス要求を待機系の副記憶装置サブシステムへ送信する。
【００２１】
副記憶装置サブシステムでは、前記アクセス要求を受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する。そして、その受信したアクセス要求が書き込み要求である場合には、その書き込み内容が正ホストコンピュータのバッファ上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定する。
【００２２】
前記判定の結果、その書き込み内容が前記ログ情報である場合には、正ホストコンピュータ側のデータベース処理で認識している論理的な位置情報と副記憶装置サブシステム上の物理的な位置情報との対応関係を示す第２の変換テーブルを参照し、前記ログ情報中に示された位置情報を副記憶装置サブシステム上の物理的な位置情報に変換した後、その変換した物理的な位置情報で表される副記憶装置サブシステム上のデータベース領域のデータを前記ログ情報の内容に従って更新する。
【００２３】
前記の様に本発明では、正ホストコンピュータのデータベースバッファの内容を副記憶装置サブシステム内のデータベース領域に反映させる必要が生じた場合に、更新処理の行われたレコードを１つでも含むデータベースブロック全てを正ホストコンピュータから副記憶装置サブシステムへ送信するのではなく、データベースバッファに対する更新処理の内容を示すログ情報を副記憶装置サブシステムへ送信するので、正副ホストコンピュータ間または正副記憶装置サブシステム間で送信されるデータ量を減少させることができる。
【００２４】
以上の様に本発明のディザスタリカバリシステムによれば、ホストコンピュータから正記憶装置サブシステムに送信されたログ情報の内容に従って副記憶装置サブシステム内のデータベース領域の更新を行うので、ホストコンピュータのバッファ上で行われたデータベース処理の内容を副記憶装置サブシステム上のデータベース領域へ反映させる際に、ホストコンピュータ間や記憶装置サブシステム間の入出力処理負荷を低減させることが可能である。
【００２５】
【発明の実施の形態】
（実施形態１）
以下に現用系ホストコンピュータのデータベースバッファ上で行われたデータベース処理の内容を示すログ情報により、待機系ディスクサブシステム内の磁気ディスク装置上のデータベースを更新する実施形態１のディザスタリカバリシステムについて説明する。
【００２６】
図１は本実施形態のディザスタリカバリシステムのシステム構成を示す図である。図１に示す様に本実施形態の正ホストコンピュータ１はデータベース管理処理部１０を有している。データベース管理処理部１０は、正ホストコンピュータ１のＤＢバッファ１２の内容を現用系の記憶装置サブシステムである正ディスクサブシステム２内の磁気ディスク装置へ反映させる必要が生じた場合に、ＤＢバッファ１２に対して行われたデータベース処理の内容を示すログ情報であるログブロック２６２ａの書き込み要求を正ホストコンピュータ１から正ディスクサブシステム２へ送信し、ＤＢバッファ１２中にデータベース処理でアクセス対象となっているデータが存在していない場合に当該データの読み込み要求を正ホストコンピュータ１から正ディスクサブシステム２へ送信する処理部である。
【００２７】
正ホストコンピュータ１をデータベース管理処理部１０として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２８】
また正ディスクサブシステム２は、ディスク制御処理部２１と、ディスクアクセス制御部２３と、更新処理部３０と、データ送信処理部３１とを有している。
【００２９】
ディスク制御処理部２１は、正ホストコンピュータ１から送信されたアクセス要求を受信し、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する処理や、正ディスクサブシステム装置全体の動作を制御する制御処理部である。
【００３０】
ディスクアクセス制御部２３は、正ディスクサブシステム２配下の各磁気ディスク装置へのアクセスを制御する処理部である。更新処理部３０は、前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が正ホストコンピュータ１のＤＢバッファ１２上で行われたデータベース処理の内容を示すログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、正ホストコンピュータ１側のデータベース処理で認識している論理的な位置情報と正ディスクサブシステム２上の物理的な位置情報との対応関係を示すＤＢ−ディスクブロック変換テーブル２８によって、前記ログ情報中に示された位置情報を正ディスクサブシステム２上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される正ディスクサブシステム２上のデータベース領域２４のデータを前記ログ情報の内容に従って更新する処理部である。データ送信処理部３１は、前記アクセス要求を待機系の記憶装置サブシステムである副ディスクサブシステム４へ送信する処理部である。
【００３１】
正ディスクサブシステム２を、ディスク制御処理部２１、ディスクアクセス制御部２３、更新処理部３０及びデータ送信処理部３１として機能させる為のプログラムは、フロッピーディスク等の記録媒体に記録されて実行されるものとする。なお前記プログラムを記録する記録媒体はフロッピーディスク以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００３２】
また副ディスクサブシステム４は、データ受信処理部３２と、ディスク制御処理部４１と、ディスクアクセス制御部４３と、更新処理部５０とを有している。
【００３３】
データ受信処理部３２は、正ホストコンピュータ１から正ディスクサブシステム２へ送信されたアクセス要求をストレージエリアネットワーク２９経由で正ディスクサブシステム２から受信する処理部である。
【００３４】
ディスク制御処理部４１は、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定する処理や、副ディスクサブシステム装置全体の動作を制御する制御処理部である。ディスクアクセス制御部４３は、副ディスクサブシステム４配下の各磁気ディスク装置へのアクセスを制御する処理部である。
【００３５】
更新処理部５０は、前記受信したアクセス要求が書き込み要求である場合に、その書き込み内容が前記ログ情報であるかどうかを判定し、前記書き込み内容が前記ログ情報である場合に、正ホストコンピュータ１側のデータベース処理で認識している論理的な位置情報と副ディスクサブシステム４上の物理的な位置情報との対応関係を示すＤＢ−ディスクブロック変換テーブル４８によって、前記ログ情報中に示された位置情報を副ディスクサブシステム４上の物理的な位置情報に変換し、その変換した物理的な位置情報で表される副ディスクサブシステム４上のデータベース領域４４のデータを前記ログ情報の内容に従って更新する処理部である。
【００３６】
副ディスクサブシステム４を、データ受信処理部３２、ディスク制御処理部４１、ディスクアクセス制御部４３及び更新処理部５０として機能させる為のプログラムは、フロッピーディスク等の記録媒体に記録されて実行されるものとする。なお前記プログラムを記録する記録媒体はフロッピーディスク以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００３７】
本実施形態のディザスタリカバリシステムでは、現用系となる正ホストコンピュータ１と正ディスクサブシステム２、並びに待機系の副ホストコンピュータ３と副ディスクサブシステム４がストレージエリアネットワーク２９で接続されている。
【００３８】
正ホストコンピュータ１では、現用系のデータベース管理処理部１０が稼動し、正ホストコンピュータ１は、正ディスクサブシステム２内のデータベース領域２４の内容を一時的に保持するＤＢバッファ１２と、ＤＢバッファ１２に対する更新処理の内容を一時的に保持するログバッファ１４とを備えている。
【００３９】
正ディスクサブシステム２では、正ホストコンピュータ１からの命令を受けて動作するディスク制御処理部２１と、キャッシュメモリ２２と、ディスクアクセス制御部２３とを通して磁気ディスク装置上のデータベース領域２４へのアクセスが行われており、ディスクアクセスは常にキャッシュメモリ２２を介して行われることになる。
【００４０】
本実施形態では、正ホストコンピュータ１上のデータベース管理処理部１０で動作するトランザクションによって更新されたデータの更新履歴情報であるログ情報がログブロック２６２ａに書き込まれ、トランザクションの決着時等、ＤＢバッファ１２の内容を正ディスクサブシステム２へ反映させる必要が生じた場合に、ログブロック２６２ａが正ディスクサブシステム２に書き込まれる。
【００４１】
本実施形態の更新処理部３０は、データの書き込みが行われると、そのデータがログブロック２６２ａであるかどうかを判定し、正ディスクサブシステム２上でデータベースブロック２４２ａの書き込みを制御する。
【００４２】
すなわち更新処理部３０は、正ディスクサブシステム２が受け付けたコマンドを解析し、ログブロック２６２ａの書き込み要求であれば、キャッシュメモリ２２上に書き込んだログブロック２６２ａを解析し、ログブロック２６２ａ中のログレコードから該当するデータベース領域２４のデータベースブロック２４２ａをキャッシュメモリ２２上にアップロードし、ログの内容を反映する処理を行う。
【００４３】
このとき反映されるデータベースブロック２４２ａは、ログブロック２６２ａ中のログレコードでは正ホストコンピュータ１上のデータベース管理処理部１０が認識できる論理的な位置情報で表されている為、この論理的な位置情報を正ディスクサブシステム２上の物理的な位置情報にマッピングする必要がある。そこで、この処理をＤＢ−ディスクブロック変換テーブル２８を用いて行う。ＤＢ−ディスクブロック変換テーブル２８は、一般的にはＤＢ構築時に正ホストコンピュータ１上のデータベース管理処理部１０から作成されることになる。
【００４４】
図２は本実施形態のＤＢ−ディスクブロック変換テーブル２８の構成情報を示す図である。図２に示す様にＤＢ−ディスクブロック変換テーブル２８は、データベース領域２４を識別する為の情報であるデータベース領域ＩＤと、そのデータベース領域ＩＤで識別されるデータベース領域が複数のファイルで構成される場合のファイルの順序番号を示すファイルＩＤと、前記データベース領域を構成するブロックの長さを示すブロック長と、前記データベース領域の構成ファイルが確保されている論理ボリュームを識別する為の情報である論理ボリュームＩＤと、その論理ボリュームＩＤで識別される論理ボリュームがマッピングされているディスクサブシステムを識別する為の番号であるディスク制御装置番号と、そのディスク制御装置番号で識別されるディスクサブシステムの磁気ディスク装置の内で、前記論理ボリュームがマッピングされている磁気ディスク装置のドライブ番号を識別する為の情報である物理デバイスＩＤと、その物理デバイスＩＤで識別される磁気ディスク装置上での当該ファイルの相対的な位置を示す相対位置とを格納している。
【００４５】
データベース領域２４を構成するファイルは、正ホストコンピュータ１上のオペレーティングシステムが認識するファイルシステムとして論理ボリュームにマッピングされる。更に、論理ボリュームは、正ディスクサブシステム２の物理デバイスである磁気ディスク装置に対応したデバイスファイルとしてマッピングされる。
【００４６】
正ディスクサブシステム２内では、前記デバイスファイルは、ＬＵ（Ｌｏｇｉｃａｌ Ｕｎｉｔ）に対応している。従って、データベース領域２４を構成するファイルは、最終的に物理デバイスである磁気ディスク装置にマッピングされる。対応する物理情報は、正ディスクサブシステム２上の物理デバイスを識別する為の物理デバイスＩＤと、物理デバイス内の相対位置であるＬＢＡ（Ｌｏｇｉｃａｌ Ｂｌｏｃｋ Ａｄｄｒｅｓｓ）である。
【００４７】
図３は本実施形態のホストコンピュータ上で認識されるデータベース領域と、オペレーティングシステムが認識する論理ボリュームと、デバイスファイル及びディスクサブシステム内のＬＵへのマッピング関連の例を示す図である。図３に示す様にデータベース管理処理部１０では、データを格納するデータベース領域は、複数のファイルから構成されるものとして認識されている。構成する各ファイルは、正ホストコンピュータ１上のオペレーティングシステムのファイルに対応しており、図３ではオペレーティングシステムにおいてＲＡＷデバイスとして認識されるケースを想定している。更に、オペレーティングシステムのファイルは、物理的な磁気ディスク装置に対応するデバイスファイルとして管理されており、そのデバイスファイルは、前述した様に正ディスクサブシステム２内の各々の磁気ディスク装置に対応するＬＵにマッピングされている。
【００４８】
一方、待機系となるシステムも同様な構成であり、正ディスクサブシステム２と副ディスクサブシステム４との間はストレージエリアネットワーク２９を通して接続されているものとするが、待機中の状態では副ホストコンピュータ３は稼働しておらず、副ディスクサブシステム４は、正ディスクサブシステム２からストレージエリアネットワーク２９経由でログ情報を受信してデータベース領域４４の更新処理を行っているものとする。
【００４９】
また、副ディスクサブシステム４のＤＢ−ディスクブロック変換テーブル４８は、正ディスクサブシステム２のＤＢ−ディスクブロック変換テーブル２８と同様な構成であるものとするが、ＤＢ−ディスクブロック変換テーブル４８のディスク制御装置番号、物理デバイスＩＤ及び相対位置には、副ディスクサブシステム４を識別する為の番号、副ディスクサブシステム４内の磁気ディスク装置のドライブ番号、及び当該磁気ディスク装置上での各ファイルの相対的な位置情報が格納されているものとする。
【００５０】
次に図４から図７に示す流れ図を用いて正ホストコンピュータ１上のデータベース管理処理部１０からログバッファ１４中のログブロック２６２ａの正ディスクサブシステム２への書き込みを要求するアクセス要求の処理について説明する。始めに、図４を用いて処理の概要を示す。
【００５１】
図４は本実施形態の受信コマンド解析処理の処理手順を示すフローチャートである。図４に示した処理は、正ディスクサブシステム２内のプロセッサによって実行されるディスク制御処理部２１の処理として実現されるものであり、正ホストコンピュータ１からのアクセス要求を受領した正ディスクサブシステム２は、始めに受領コマンドの解析処理を行う（ステップ３００）。接続チャネルのプロトコルに従ってコマンドを解析することで、アクセス要求がＲＥＡＤコマンドであるかＷＲＩＴＥコマンドであるかを識別できるものとする。
【００５２】
ステップ３２０でディスク制御処理部２１は、受領コマンドがＷＲＩＴＥコマンドであるかを判定し、ＷＲＩＴＥコマンドである場合にはＷＲＩＴＥコマンド処理を行う（ステップ３４０）。また、ＲＥＡＤコマンドである場合にはＲＥＡＤコマンド処理（ステップ３６０）を行う。
【００５３】
図５は本実施形態のＷＲＩＴＥコマンド受領時の処理手順を示すフローチャートである。図５の様に正ディスクサブシステムの更新処理部３０は、ディスク制御処理部２１からコマンドを受領すると、受信コマンドからコマンド種類とアクセス先アドレスを解析し、ＷＲＩＴＥコマンドであることを認識する（ステップ３４１）。ここで、アクセス先アドレスからは、複数のディスクサブシステムやその各磁気ディスク装置に割り当てられているアドレスを示す装置構成管理テーブルの情報との比較を行うことにより、アクセス要求先のディスク制御装置番号とドライブ番号を識別することができるものとする。
【００５４】
次に、ステップ３４１で解析したアクセス先アドレスのデータが、正ディスクサブシステム２のキャッシュメモリ２２に保持されているかどうかを調べ、キャッシュヒットミス判定を行う（ステップ３４２）。
【００５５】
アクセス先データがキャッシュメモリ２２に保持されていないキャッシュミスの場合には、前記の様にアクセス要求先のドライブ番号を識別し、正ディスクサブシステム２のディスクアクセス制御部２３に対してそのドライブ番号に対応する磁気ディスク装置からキャッシュメモリ２２ヘの転送依頼を行う（ステップ３４３）。この場合、転送終了までＷＲＩＴＥ処理を中断し（ステップ３４４）、転送処理終了後、再度ＷＲＩＴＥ処理を継続する。また、転送先のキャッシュアドレスはキャッシュの空きリスト等、一般的な方法で管理、取得すれば良いが、転送先アドレスについては、キャッシュ管理テーブルを更新することで登録する必要がある。
【００５６】
ステップ３４２でキャッシュヒットの判定の場合、またはステップ３４４で転送処理が終了した場合には、正ディスクサブシステム２内のキャッシュメモリ２２に対して当該データの更新を行う（ステップ３４５）。すなわち、正ホストコンピュータ１から受領したデータの内容を書き込む。
【００５７】
データの更新が終了した後、前記アクセス先アドレスがログ用ディスク２６内のアドレスであるかどうかを調べて当該データがデータベース処理のログ用ディスク２６のデータであるかを判定し（ステップ３４６）、書き込み内容がログ用ディスク２６へのデータ、すなわちログブロックである場合には、データ送信処理部３１を介してそのログブロックを副ディスクサブシステム４に対して転送する処理を行った後（ステップ３４７）、そのログブロックの内容に従って該当するデータベース領域２４のデータベースブロックヘのログ追跡処理を行う（ステップ３４８）。
【００５８】
ログ追跡処理が完了するか、ステップ３４６の判定でログブロックではないと判定された場合、正ホストコンピュータ１に対してＷＲＩＴＥコマンド処理の完了報告を行う（ステップ３４９）。
【００５９】
図６は本実施形態のログ追跡処理の処理手順を示すフローチャートである。ログブロックは複数のログレコードの集まりである。従って、図６に示す様にログブロックに含まれるログレコードについて順次、処理を行っていく。
【００６０】
まず更新処理部３０は、ログレコードのログ情報がトランザクションの開始処理、ＣＯＭＭＩＴまたはＲＯＬＬＢＡＣＫといった決着処理を示す情報であるかを判定する（ステップ４０１）。
【００６１】
当該ログレコードがトランザクションの状態変更ログではない場合には、更にデータベースの更新履歴を示すトランザクション更新ログであるかを判定する（ステップ４０２）。
【００６２】
当該ログレコードがトランザクション更新ログである場合には、図２に示したＤＢ−ディスクブロック変換テーブル２８を参照し、ログレコード中に記録されたログ情報に含まれているデータベース領域ＩＤ、ファイルＩＤ、ページ番号から、対応する物理ディスクのディスク制御装置番号とドライブ番号とページ番号を識別する（ステップ４０３）。すなわち、当該ログ情報に含まれているデータベース領域ＩＤ及びファイルＩＤに一致するレコードを、ＤＢ−ディスクブロック変換テーブル２８から検索して該当するディスク制御装置番号、ドライブ番号及び相対位置を求めた後、その相対位置がファイルの先頭であるものとして、当該ログ情報のページ番号を物理ディスク上のページ番号に変換する。
【００６３】
次にステップ４０３で前記の様に識別したデータがキャッシュメモリ２２に保持されているかどうかを調べてキャッシュヒットミス判定を行う（ステップ４０４）。当該データがキャッシュメモリ２２に保持されていないキャッシュミスの場合には、ディスクアクセス制御部２３に対して当該データベースブロックのドライブからキャッシュメモリ２２ヘの転送依頼を行う（ステップ４０５）。
【００６４】
ステップ４０４で当該データベースブロックがキャッシュヒットするか、ステップ４０５で転送処理が終了するとキャッシュメモリ２２中の当該データベースブロックに対してログレコードに含まれているデータベース更新履歴情報を反映する（ステップ４０６）。
【００６５】
一方、ステップ４０１で判定した結果、当該ログレコードがトランザクションの状態変更ログであり、ＲＯＬＬＢＡＣＫログである場合には、ステップ４０８で当該トランザクションによる更新履歴情報の反映を取り消す処理を行う。
【００６６】
ステップ４０７では、当該ログブロックの全ログレコードの処理を完了したかどうかを調べ、まだ全ログレコードの処理を完了していない場合にはステップ４０１へ戻り、完了した場合には処理を終了する。
【００６７】
図７は本実施形態のＲＥＡＤコマンド受領時の処理手順を示すフローチャートである。図７の様に更新処理部３０は、ディスク制御処理部２１からコマンドを受領すると、受信コマンドからコマンドの種類とアクセス先アドレスを解析し、ＲＥＡＤアクセス要求であることを認識する（ステップ３６１）。ここで、アクセス先アドレスからは、前記と同様にして装置構成管理テーブルを参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できるものとする。
【００６８】
次に、ステップ３６１で解析したアクセス先アドレスのデータが、正ディスクサブシステム２のキャッシュメモリ２２に保持されているかどうかを調べ、キャッシュヒットミス判定を行う（ステップ３６２）。
【００６９】
アクセス先データがキャッシュメモリ２２に保持されていないキャッシュミスの場合には、前記の様にアクセス要求先のドライブ番号を識別し、正ディスクサブシステム２のディスクアクセス制御部２３に対してそのドライブ番号に対応する磁気ディスク装置からキャッシュメモリ２２ヘの転送依頼を行う（ステップ３６３）。この場合、転送終了までＲＥＡＤ処理を中断し（ステップ３６４）、転送処理終了後、再度ＲＥＡＤ処理を継続する。また、転送先のキャッシュアドレスはキャッシュの空きリスト等、一般的な方法で管理、取得すれば良いが、転送先アドレスについては、キャッシュ管理テーブルを更新することで登録する必要がある。
【００７０】
ステップ３６２でキャッシュヒットの判定の場合、またはステップ３６４で転送処理が終了した場合、従来の単純なデータの読み出しの場合では当該ディスクサブシステム内のキャッシュメモリのデータをチャネルに転送するが、本実施形態では、更に当該データがデータベース管理処理部１０からのデータベースブロックのＲＥＡＤ要求であるかを判定する（ステップ３６５）。当該データがデータベースブロックであるかは、ＤＢ−ディスクブロック変換テーブル２８を参照し、該当ドライブ番号の存在を判定することによって識別できる。
【００７１】
当該データがデータベースブロックである場合には、それ以前のＷＲＩＴＥ要求で受信し、ログ追跡処理の終了していないログ情報中にそのデータベースブロックを更新するログレコードが含まれているかどうかを判定し、含まれている場合にはその更新を行う。
【００７２】
すなわち、そのＲＥＡＤアクセス要求先の物理ドライブのドライブ番号とページ番号をアクセス先アドレスから求め、ログ追跡処理の終了していないログレコードの物理ドライブのドライブ番号及びページ番号と比較して、キャッシュメモリ２２中のログブロック２６２ａ内のログレコード中に反映する必要のあるログレコードがあるかを判定し（ステップ３６６）、該当ログレコードが存在した場合にはログ追跡処理を行う（ステップ３６７）。
【００７３】
そして、ステップ３６５の処理によって該当データがデータベースブロックでないと判定された時点か、若しくはステップ３６７のログ追跡処理が完了した時点で該当データをチャネルに転送する。
【００７４】
本実施形態において、正ホストコンピュータ１から正ディスクサブシステム２へ送信されたアクセス要求が、ストレージエリアネットワーク２９経由で正ディスクサブシステム２から副ディスクサブシステム４へ送信された場合、データ受信処理部３２でそのアクセス要求を受信した後、 正ディスクサブシステム２と同様な処理を副ディスクサブシステム４でも行って、ディスク制御処理部４１により、その受信したアクセス要求が書き込み要求または読み込み要求のいずれであるかを判定してからＷＲＩＴＥコマンド処理やＲＥＡＤコマンド処理を行っても良いが、図５のステップ３４７で説明した様に、正ホストコンピュータ１から正ディスクサブシステム２に送信されたアクセス要求の内でログ情報の書き込み要求のみが副ディスクサブシステム４へ送信される様に予め設定されている場合には、データ受信処理部３２でそのアクセス要求を受信した後、 直ちにそのログ情報の内容に従って副ディスクサブシステム４内のデータベース領域４４の更新を行うこととしても良い。以下に、そのＷＲＩＴＥコマンド処理について説明する。
【００７５】
図８は本実施形態の副ディスクサブシステム４のＷＲＩＴＥコマンド受信処理の処理手順を示すフローチャートである。図８の様に副ディスクサブシステム４の更新処理部５０は、データ受信処理部３２からコマンドを受領すると、受信コマンドからコマンド種類とアクセス先アドレスを解析し、ＷＲＩＴＥコマンドであることを認識する（ステップ４２１）。ここで、アクセス先アドレスからは、複数のディスクサブシステムやその各磁気ディスク装置に割り当てられているアドレスを示す装置構成管理テーブルの情報との比較を行うことにより、副ディスクサブシステム４でもアクセス要求先のディスク制御装置番号とドライブ番号を識別することができるものとする。
【００７６】
次に、ステップ４２１で解析したアクセス先アドレスのデータが、副ディスクサブシステム４のキャッシュメモリ４２に保持されているかどうかを調べ、キャッシュヒットミス判定を行う（ステップ４２２）。
【００７７】
アクセス先データがキャッシュメモリ４２に保持されていないキャッシュミスの場合には、前記の様にアクセス要求先のドライブ番号を識別し、副ディスクサブシステム４のディスクアクセス制御部４３に対してそのドライブ番号に対応する磁気ディスク装置からキャッシュメモリ４２ヘの転送依頼を行う（ステップ４２３）。この場合、転送終了までＷＲＩＴＥ処理を中断し（ステップ４２４）、転送処理終了後、再度ＷＲＩＴＥ処理を継続する。また、転送先のキャッシュアドレスはキャッシュの空きリスト等、一般的な方法で管理、取得すれば良いが、転送先アドレスについては、キャッシュ管理テーブルを更新することで登録する必要がある。
【００７８】
ステップ４２２でキャッシュヒットの判定の場合、またはステップ４２４で転送処理が終了した場合には、副ディスクサブシステム４内のキャッシュメモリ４２に対して当該データの更新を行う（ステップ４２５）。すなわち、正ディスクサブシステム２から受信したデータの内容を書き込む。
【００７９】
データの更新が終了した後、前記アクセス先アドレスがログ用ディスク４６内のアドレスであるかどうかを調べて当該データがデータベース処理のログ用ディスク４６のデータであるかを判定し（ステップ４２６）、書き込み内容がログ用ディスク４６へのデータ、すなわちログブロックである場合には、そのログブロックの内容に従って該当するデータベース領域４４のデータベースブロックヘのログ追跡処理を行う（ステップ４２７）。ここでログ追跡処理は、正ディスクサブシステム２の場合と同様である。
【００８０】
前記の様に本実施形態では、ＤＢバッファ１２に対する更新処理の内容を示すログ情報により副ディスクサブシステム４上のデータベース領域４４のデータを更新するので、従来のディザスタリカバリシステムで行っていたデータベースブロックの正副ホストコンピュータ間や正副記憶装置サブシステム間での書き込みについては本実施形態では必要無くなる。この為、本実施形態において正ホストコンピュータ１は、ＤＢバッファ１２の内容を副ディスクサブシステム４へ反映させる処理を瞬時に終了させることが可能であり、ログ情報により副ディスクサブシステム４上でデータベース領域４４のデータを更新している間も、正ホストコンピュータ１側ではデータベース処理を続行することが可能で、正ディスクサブシステム２と副ディスクサブシステム４とでログ追跡処理を並列に行うこともできる。
【００８１】
この際、正ホストコンピュータ１でデータベース処理を続行中にアクセス対象のデータがＤＢバッファ１２中に存在していないことが検出され、正ディスクサブシステム２に対してデータベースブロックの読み込み要求が行われた場合には、その読み込み対象のデータベースブロックをログ情報の内容に従って更新した後に正ホストコンピュータ１へ送信するので、正ホストコンピュータ１は、正ディスクサブシステム２及び副ディスクサブシステム４でのログ追跡処理を何ら意識すること無くデータベース処理を続行することが可能である。
【００８２】
更に本実施形態では、正ホストコンピュータ１から副ディスクサブシステム４へのデータベースブロックの書き込みが不要になることによって、副ディスクサブシステム４に対する帯域幅を大幅に増加させたのと同様の効果を得ることが可能になる。すなわち本実施形態では、ＤＢバッファ１２の内容を副ディスクサブシステム４内のデータベース領域４４に反映させる必要が生じた場合に、更新処理の行われたレコードを１つでも含むデータベースブロック２４２ａ全てを副ディスクサブシステム４へ送信するのではなく、ＤＢバッファ１２に対する更新処理の内容を示すログブロック２６２ａを副ディスクサブシステム４へ送信するので、副ディスクサブシステム４へ送信されるデータ量を減少させることが可能であり、この為、副ディスクサブシステム４に対する帯域幅を相対的に増加させることができる。
【００８３】
一方、現用系の正ホストコンピュータ１のデータベース管理処理や正ディスクサブシステム２が障害によってダウンした場合であっても、副ディスクサブシステム４上のキャッシュメモリ４２は、最新のデータベースブロック４４２の状態が保持されたウォームキャッシュ状態となっているので、ディザスタリカバリ処理時に副ホストコンピュータ３から副ディスクサブシステム４に対する入出力要求があった場合にキャッシュヒットとなり、実際に磁気ディスク装置上のデータベース領域４４までアクセスする頻度を極端に軽減することができる。
【００８４】
以上説明した様に本実施形態のディザスタリカバリシステムによれば、ホストコンピュータから正記憶装置サブシステムに送信されたログ情報の内容に従って副記憶装置サブシステム内のデータベース領域の更新を行うので、ホストコンピュータのバッファ上で行われたデータベース処理の内容を副記憶装置サブシステム上のデータベース領域へ反映させる際に、ホストコンピュータ間や記憶装置サブシステム間の入出力処理負荷を低減させることが可能である。
【００８５】
（実施形態２）
以下にログ情報の内、ＣＯＭＭＩＴされたトランザクションのログ情報を用いて更新を行う実施形態２のディザスタリカバリシステムについて説明する。
【００８６】
実施形態１のログ追跡処理では、全てのログレコードを対象に該当するデータベースブロックヘの反映処理を行ったが、本実施形態ではログ追跡処理の別の実施方法について図９から図１１を用いて説明する。以下では、正ディスクサブシステム２でのログ追跡処理について説明するが、副ディスクサブシステム４でも同様にしてログ追跡処理を行うものとする。
【００８７】
図９は本実施形態のログ追跡処理においてログブロック中に含まれる全てのログレコードについてトランザクション毎にログを解析した結果の例を示す図である。図９に示す様に本実施形態では、ログブロック２６２ａを解析し、まず当該ディスクサブシステム内のキャッシュメモリ２２とは異なる共用メモリ上に抽出ログバッファ２６４を確保して、抽出ログバッファ２６４に全てのログレコード２６６ａ〜２６６ｌを格納する。
【００８８】
このとき、各ログレコードをトランザクション別に管理する為、トランザクションログ管理テーブル２６８によって各々のログレコードをトランザクション別に管理し、トランザクションＴＲ１からトランザクションＴＲ４までのログレコードのチェインをそれぞれ生成する。
【００８９】
すなわち、トランザクションＴＲ１には、トランザクションログ管理テーブル２６８ａ、２６８ｂ、２６８ｃ、乃至２６８ｆがチェインされ、トランザクションＴＲ２には、トランザクションログ管理テーブル２６８ｅ、２６８ｇがチェインされる。またトランザクションＴＲ３には、トランザクションログ管理テーブル２６８ｈ、２６８ｊ、２６８ｌがチェインされ、トランザクションＴＲ４には、トランザクションログ管理テーブル２６８ｉ、２６８ｋがチェインされる。
【００９０】
この様に、トランザクションログ管理テーブル２６８を各々のトランザクション毎にチェインさせることにより、ログレコード情報にトランザクションの正常決着処理を示すＣＯＭＭＩＴが識別されたトランザクションのログレコードだけを対象にすることができる。
【００９１】
図１０は本実施形態の図９のトランザクションログ管理テーブルを用いる際のログレコード分別処理の処理手順を示すフローチャートである。本処理は、図５のステップ３４７で示したＷＲＩＴＥコマンド処理に代わる処理である。
【００９２】
ログブロック中の各ログレコードについて、トランザクション開始を示すトランザクションＢＥＧＩＮログであるかを判定し（ステップ４４１）、トランザクションＢＥＧＩＮログである場合、そのログを抽出ログバッファ２６４へ追加し、トランザクションログ管理テーブル２６８ヘの登録を行う。
【００９３】
ステップ４４１の判定でトランザクションＢＥＧＩＮログではないと判定された場合にはデータベース更新ログであるかを判定し（ステップ４４３）、データベース更新ログである場合には、該当するトランザクション識別子と同じトランザクションログ管理テーブル２６８の最後尾にチェインする。
【００９４】
ステップ４４３の判定でトランザクション更新ログではないと判定された場合には、トランザクションの無効化を示すトランザクションＲＯＬＬＢＡＣＫログかであるかを判定し（ステップ４４５）、トランザクションＲＯＬＬＢＡＣＫ処理である場合には、該当するトランザクション識別子と同じ識別子のトランザクションログ管理テーブル２６８を削除すると同時に抽出ログバッファ２６４の該当するログレコードも削除する。すなわち、ＲＯＬＬＢＡＣＫしたトランザクションのログは、データベースブロックヘ反映されない様にする。
【００９５】
ステップ４４５の判定でトランザクションＲＯＬＬＢＡＣＫログではないと判定された場合には、トランザクションの有効化を示すトランザクションＣＯＭＭＩＴログであるかを判定し（ステップ４４７）、トランザクションＣＯＭＭＩＴログである場合にはログ追跡処理を行う（ステップ４４８）。
【００９６】
ステップ４４７の判定でトランザクションＣＯＭＭＩＴログではないと判定された後、ステップ４４９でログブロックの終了を検出するまでステップ４４１からステップ４４９までを繰り返す。
【００９７】
図１１は本実施形態の図１０のステップ４４８におけるログ追跡処理の処理手順を示すフローチャートである。図１０のログ追跡処理では、ＣＯＭＭＩＴしたトランザクションのトランザクションログ管理テーブル２６８の先頭アドレスの次のアドレスが引き渡される。つまり、トランザクションＢＥＧＩＮログを処理の対象から外すことができる。
【００９８】
この処理では、１つのトランザクションの複数のログレコードの集まりについて順次、処理を行っていく。まずステップ４４８１では、ログレコードのログ情報がトランザクションのＣＯＭＭＩＴログであるかどうかを判定し、当該ログレコードが、ＣＯＭＭＩＴログではなく、トランザクション更新ログである場合には、ログレコード中に記録された当該ログ情報に含まれているデータベース領域ＩＤ、ファイルＩＤ及びページ番号と、図２に示したＤＢ−ディスクブロック変換テーブル２８の情報とを比較し、対応する物理ディスクのディスク制御装置番号とドライブ番号とページ番号を識別する（ステップ４４８２）。
【００９９】
次にステップ４４８１で識別した当該データについてキャッシュメモリ２２に対してキャッシュヒットミス判定を行う（ステップ４４８３）。当該データがキャッシュメモリに保持されていないキャッシュミスの場合には、ディスクアクセス制御部２３に対して当該データベースブロックのドライブからキャッシュメモリ２２ヘの転送依頼を行う（ステップ４４８４）。
【０１００】
ステップ４４８３で当該データベースブロックがキャッシュヒットするか、ステップ４４８４で転送処理が終了すると、キャッシュメモリ２２中の当該データベースブロックに、ログレコードに含まれるデータベース更新履歴情報を反映する（ステップ４４８５）。
【０１０１】
ステップ４４８１からステップ４４８５までの処理を、当該トランザクションの全ログレコードの処理が完了するまで行う（ステップ４４８６）。
【０１０２】
一方、ステップ４４８１の判定でトランザクションＣＯＭＭＩＴログが出現した場合には、当該トランザクションのログについて全て処理を反映し終わっているのでステップ４４８７へ進み、トランザクションログ管理テーブル２６８及びトランザクション抽出ログバッファ２６４から当該トランザクションに関する全ての情報を削除する。
【０１０３】
本実施形態では、以上の様にして正ディスクサブシステム２でのログ追跡処理を行い、また副ディスクサブシステム４でも同様にしてログ追跡処理を行うものとする。
【０１０４】
以上説明した様に本実施形態のディザスタリカバリシステムによれば、ログ情報の内、ＣＯＭＭＩＴされたトランザクションのログ情報を用いて更新を行うので、ホストコンピュータのバッファ上で行われたデータベース処理の内容をログ情報によって副記憶装置サブシステム上のデータベース領域へ反映させる際に、不要な入出力処理を省略することが可能である。
【０１０５】
（実施形態３）
以下にデータベース領域のデータの更新を、そのデータベース領域のデータに対応する物理デバイス毎に並列に行う実施形態３のディザスタリカバリシステムについて説明する。
【０１０６】
図１２は本実施形態のディザスタリカバリシステムの概略構成を示す図である。本実施形態の処理は、実施形態１及び実施形態２に共通して実施することができる。すなわち、実施形態１の図６におけるログ追跡処理及び実施形態２の図１１におけるログ追跡処理において、正ディスクサブシステム２は、データベースブロックのデータベース領域ＩＤ、ファイルＩＤ及びページ番号から、ＤＢ−ディスクブロック変換テーブル２８を使用して物理ドライブのドライブ番号を取得した後、ドライブ毎に異なるプロセッサに処理を分割して実行することで、キャッシュメモリ２２ヘの書き込み処理を並列化する。また副ディスクサブシステム４でも同様にしてログ追跡処理を並列に行う。ここで本実施形態の各ディスクサブシステムは、ドライブ毎の処理を実行する複数のプロセッサをそれぞれ備えているものとする。
【０１０７】
以上説明した様に本実施形態のディザスタリカバリシステムによれば、ログ情報によるデータベース領域のデータの更新を、そのデータベース領域のデータに対応する物理デバイス毎に並列に行うので、ホストコンピュータのバッファ上で行われたデータベース処理の内容をログ情報によって副記憶装置サブシステム上のデータベース領域へ反映させる際に、その処理を効率的に行うことが可能である。
【０１０８】
（実施形態４）
以下に、実施形態１の代案として、読み込み要求を含むアクセス要求を副記憶装置サブシステムへ送信する実施形態４のディザスタリカバリシステムについて図１３から図１６を用いて説明する。
【０１０９】
図１３は本実施形態の受信コマンド解析処理の処理手順を示すフローチャートである。図１３に示した処理は、正ディスクサブシステム２内のプロセッサによって実行されるディスク制御処理部２１の処理として実現されるものであり、正ホストコンピュータ１からのアクセス要求を受領した正ディスクサブシステム２は、始めに受領コマンドの解析処理を行う（ステップ５００）。接続チャネルのプロトコルに従ってコマンドを解析することで、アクセス要求がＲＥＡＤコマンドであるかＷＲＩＴＥコマンドであるかを識別できるものとする。
【０１１０】
ステップ５２０でディスク制御処理部２１は、受領コマンドがＷＲＩＴＥコマンドであるかを判定し、ＷＲＩＴＥコマンドである場合にはＷＲＩＴＥコマンド処理を行う（ステップ５４０）。また、ＲＥＡＤコマンドである場合にはＲＥＡＤコマンド処理（ステップ５６０）を行う。ＷＲＩＴＥコマンドまたはＲＥＡＤコマンドの処理が終了すると、データ送信処理部３１を介してそのアクセス要求を副ディスクサブシステム４に対して転送する処理を行う（ステップ５８０）。
【０１１１】
図１４は本実施形態のＷＲＩＴＥコマンド処理の処理手順を示すフローチャートである。図１４の様に正ディスクサブシステム２の更新処理部３０は、ディスク制御処理部２１からコマンドを受領すると、受信コマンドからコマンド種類とアクセス先アドレスを解析し、ＷＲＩＴＥコマンドであることを認識する（ステップ５４１）。ここで、アクセス先アドレスからは、複数のディスクサブシステムやその各磁気ディスク装置に割り当てられているアドレスを示す装置構成管理テーブルの情報との比較を行うことにより、アクセス要求先のディスク制御装置番号とドライブ番号を識別することができるものとする。
【０１１２】
次に、ステップ５４１で解析したアクセス先アドレスのデータが、正ディスクサブシステム２のキャッシュメモリ２２に保持されているかどうかを調べ、キャッシュヒットミス判定を行う（ステップ５４２）。
【０１１３】
アクセス先データがキャッシュメモリ２２に保持されていないキャッシュミスの場合には、前記の様にアクセス要求先のドライブ番号を識別し、正ディスクサブシステム２のディスクアクセス制御部２３に対してそのドライブ番号に対応する磁気ディスク装置からキャッシュメモリ２２ヘの転送依頼を行う（ステップ５４３）。この場合、転送終了までＷＲＩＴＥ処理を中断し（ステップ５４４）、転送処理終了後、再度ＷＲＩＴＥ処理を継続する。また、転送先のキャッシュアドレスはキャッシュの空きリスト等、一般的な方法で管理、取得すれば良いが、転送先アドレスについては、キャッシュ管理テーブルを更新することで登録する必要がある。
【０１１４】
ステップ５４２でキャッシュヒットの判定の場合、またはステップ５４４で転送処理が終了した場合には、正ディスクサブシステム２内のキャッシュメモリ２２に対して当該データの更新を行う（ステップ５４５）。すなわち、正ホストコンピュータ１から受領したデータの内容を書き込む。
【０１１５】
データの更新が終了した後、前記アクセス先アドレスがログ用ディスク２６内のアドレスであるかどうかを調べて当該データがデータベース処理のログ用ディスク２６のデータであるかを判定し（ステップ５４６）、書き込み内容がログ用ディスク２６へのデータ、すなわちログブロックである場合には、そのログブロックの内容に従って該当するデータベース領域２４のデータベースブロックヘのログ追跡処理を行う（ステップ５４７）。
【０１１６】
ログ追跡処理が完了するか、ステップ５４６の判定でログブロックではないと判定された場合、正ホストコンピュータ１に対してＷＲＩＴＥコマンド処理の完了報告を行う（ステップ５４８）。
【０１１７】
図１５は本実施形態の正ディスクサブシステム２のデータ送信処理部３１を介して送信されたコマンドを副ディスクサブシステム４のデータ受信処理部３２で受信し、解析する処理の処理手順を示すフローチャートである。図１５に示した処理は、副ディスクサブシステム４内のプロセッサによって実行されるディスク制御処理部４１の処理として実現されるものであり、正ホストコンピュータ１からのアクセス要求を正ディスクサブシステム２から受信した副ディスクサブシステム４は、始めに受領コマンドの解析処理を行う（ステップ６００）。接続チャネルのプロトコルに従ってコマンドを解析することで、アクセス要求がＲＥＡＤコマンドであるかＷＲＩＴＥコマンドであるかを識別できるものとする。
【０１１８】
ステップ６２０でディスク制御処理部４１は、受領コマンドがＷＲＩＴＥコマンドであるかを判定し、ＷＲＩＴＥコマンドである場合にはＷＲＩＴＥコマンド処理を行う（ステップ６４０）。また、ＲＥＡＤコマンドである場合にはＲＥＡＤコマンド処理（ステップ６６０）を行う。
副ディスクサブシステム４におけるＷＲＩＴＥコマンド処理の流れは基本的に図１４で示した処理と同じであるため省略する。
【０１１９】
図１６は本実施形態の副ディスクサブシステム４におけるＲＥＡＤコマンドの処理の処理手順を示すフローチャートである。図１６の様に副ディスクサブシステム４の更新処理部５０は、ディスク制御処理部４１からコマンドを受領すると、受信コマンドからコマンドの種類とアクセス先アドレスを解析し、ＲＥＡＤアクセス要求であることを認識する（ステップ６６１）。
【０１２０】
ここで、アクセス先アドレスからは、図７の場合と同様にして装置構成管理テーブルを参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できるものとするが、このＲＥＡＤコマンドは、元々正ディスクサブシステム２に対する処理要求であった為、そのアクセス先を副ディスクサブシステム４のアクセス先へ変換する必要がある。その為、正ディスクサブシステム２側のドライブ番号及び相対位置から副ディスクサブシステム４側のドライブ番号及び相対位置にマッピング変換を行い（ステップ６６２）、この変換されたアクセス先に従って以下の処理を行う。なお正ディスクサブシステム２側のドライブ番号及び相対位置と、副ディスクサブシステム４側のドライブ番号及び相対位置は、予め装置構成管理テーブル内で対応付けられているものとする。
【０１２１】
次に、ステップ６６２で変換したアクセス先アドレスのデータが、副ディスクサブシステム４のキャッシュメモリ４２に保持されているかどうかを調べ、キャッシュヒットミス判定を行う（ステップ６６３）。
【０１２２】
アクセス先データがキャッシュメモリ４２に保持されていないキャッシュミスの場合には、前記の様に変換されたアクセス要求先のドライブ番号を識別し、副ディスクサブシステム４のディスクアクセス制御部４３に対してそのドライブ番号に対応する磁気ディスク装置からキャッシュメモリ４２ヘの転送依頼を行う（ステップ６６４）。この場合、転送終了までＲＥＡＤ処理を中断し（ステップ６６５）、転送処理終了後、再度ＲＥＡＤ処理を継続する。また、転送先のキャッシュアドレスはキャッシュの空きリスト等、一般的な方法で管理、取得すれば良いが、転送先アドレスについては、キャッシュ管理テーブルを更新することで登録する必要がある。
【０１２３】
ステップ６６３でキャッシュヒットの判定の場合、またはステップ６６５で転送処理が終了した場合、従来の単純なデータの読み出しの場合では当該ディスクサブシステム内のキャッシュメモリのデータをチャネルに転送するが、この読み出しは副ホストコンピュータ３からのＲＥＡＤ要求によるものではない為、このデータをキャッシュメモリ４２に保持し、現用系で障害が発生した場合に、ウォームキャッシュ状態を提供できる様にしておく（ステップ６６６）。
【０１２４】
なお当該データがデータベースブロックである場合には、それ以前のＷＲＩＴＥ要求で受信し、ログ追跡処理の終了していないログ情報中にそのデータベースブロックを更新するログレコードが含まれている場合があるが、その場合には別途実行中のログ追跡処理により更新が行われ、最新のウォームキャッシュ状態が維持される。
【０１２５】
以上説明した様に本実施形態のディザスタリカバリシステムによれば、読み込み要求を含むアクセス要求を副記憶装置サブシステムへ送信するので、副記憶装置サブシステムのキャッシュ上に読み込み対象のデータベースブロックをロードしてウォームキャッシュ状態とすることが可能である。
【０１２６】
【発明の効果】
本発明によればホストコンピュータから正記憶装置サブシステムに送信されたログ情報の内容に従って副記憶装置サブシステム内のデータベース領域の更新を行うので、ホストコンピュータのバッファ上で行われたデータベース処理の内容を副記憶装置サブシステム上のデータベース領域へ反映させる際に、ホストコンピュータ間や記憶装置サブシステム間の入出力処理負荷を低減させることが可能である。
【図面の簡単な説明】
【図１】実施形態１のディザスタリカバリシステムのシステム構成を示す図である。
【図２】実施形態１のＤＢ−ディスクブロック変換テーブル２８の構成情報を示す図である。
【図３】実施形態１のホストコンピュータ上で認識されるデータベース領域と、オペレーティングシステムが認識する論理ボリュームと、デバイスファイル及びディスクサブシステム内のＬＵへのマッピング関連の例を示す図である。
【図４】実施形態１の受信コマンド解析処理の処理手順を示すフローチャートである。
【図５】実施形態１のＷＲＩＴＥコマンド受領時の処理手順を示すフローチャートである。
【図６】実施形態１のログ追跡処理の処理手順を示すフローチャートである。
【図７】実施形態１のＲＥＡＤコマンド受領時の処理手順を示すフローチャートである。
【図８】実施形態１の副ディスクサブシステム４のＷＲＩＴＥコマンド受信処理の処理手順を示すフローチャートである。
【図９】実施形態２のログ追跡処理においてログブロック中に含まれる全てのログレコードについてトランザクション毎にログを解析した結果の例を示す図である。
【図１０】実施形態２の図９のトランザクションログ管理テーブルを用いる際のログレコード分別処理の処理手順を示すフローチャートである。
【図１１】実施形態２の図１０のステップ４４８におけるログ追跡処理の処理手順を示すフローチャートである。
【図１２】実施形態３のディザスタリカバリシステムの概略構成を示す図である。
【図１３】実施形態４の受信コマンド解析処理の処理手順を示すフローチャートである。
【図１４】実施形態４のＷＲＩＴＥコマンド処理の処理手順を示すフローチャートである。
【図１５】実施形態４の正ディスクサブシステム２のデータ送信処理部３１を介して送信されたコマンドを副ディスクサブシステム４のデータ受信処理部３２で受信し、解析する処理の処理手順を示すフローチャートである。
【図１６】実施形態４の副ディスクサブシステム４におけるＲＥＡＤコマンドの処理の処理手順を示すフローチャートである。
【符号の説明】
１…正ホストコンピュータ、１２…ＤＢバッファ、１４…ログバッファ、２…正ディスクサブシステム、２２…キャッシュメモリ、２４…データベース領域、２４２…データベースブロック、２６…ログ用ディスク、２６２…ログブロック、２８…ＤＢ−ディスクブロック変換テーブル、２９…ストレージエリアネットワーク、３…副ホストコンピュータ、４…副ディスクサブシステム、４２…キャッシュメモリ、４４…データベース領域、４４２…データベースブロック、４６…ログ用ディスク、４６２…ログブロック、４８…ＤＢ−ディスクブロック変換テーブル、１０…データベース管理処理部、２１…ディスク制御処理部、２３…ディスクアクセス制御部、３０…更新処理部、３１…データ送信処理部、３２…データ受信処理部、４１…ディスク制御処理部、４３…ディスクアクセス制御部、５０…更新処理部、２６４…抽出ログバッファ、２６６…ログレコード、２６８…トランザクションログ管理テーブル。
【図１】
2004199497.tif 000003
【図２】
2004199497.tif 000004
【図３】
2004199497.tif 000005
【図４】
2004199497.tif 000006
【図５】
2004199497.tif 000007
【図６】
2004199497.tif 000008
【図７】
2004199497.tif 000009
【図８】
2004199497.tif 000010
【図９】
2004199497.tif 000011
【図１０】
2004199497.tif 000012
【図１１】
2004199497.tif 000013
【図１２】
2004199497.tif 000014
【図１３】
2004199497.tif 000015
【図１４】
2004199497.tif 000016
【図１５】
2004199497.tif 000017
【図１６】
2004199497.tif 000018