(57)【要約】【課題】  本発明は、論理オブジェクトの完全性を保つことを目的とする。【解決手段】  データベースシステム２００は、主記憶装置サイト２０２と、遠隔記憶装置サイト２０４と、主記憶装置サイトで実行されるメインプロトコルと、遠隔記憶装置サイトで実行されるリモートプロトコルとを備える。遠隔記憶装置サイトは、主記憶装置サイトにリンク可能であり、記憶装置２２０およびキャッシュサイドファイル２１６を含む。メインプロトコルは、論理オブジェクトの断片の開始および完了を示す情報を包含可能である。リモートプロトコルは、受け取った複数の断片をキャッシュし、すべての断片を受け取ると、論理オブジェクトを記憶装置にデステージするように制御する。【選択図】図２
2005135405.tif 000002
【特許請求の範囲】
【請求項１】
複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム（２００）であって、
主記憶装置サイト（２０２）と、
該主記憶装置サイトにリンク可能であり、前記主記憶装置サイトに記憶されている情報をミラーリング可能な遠隔記憶装置サイト（２０４）であって、記憶装置（２２０）および複数のアレイサイドファイル記録セットに分割されたキャッシュサイドファイル（２１６）を含む、遠隔記憶装置サイト（２０４）と、
前記主記憶装置サイトで実行可能であり、前記複数断片データベースアプリケーション転送における論理オブジェクト断片の開始および完了を示す情報を含めることができるメインプロトコルと、
前記遠隔記憶装置サイトで実行可能であり、受け取った前記複数断片をキャッシュし、すべての断片を受け取ると、前記論理オブジェクトを記憶装置にデステージすることを可能にするように前記キャッシュサイドファイルを制御可能なリモートプロトコルと、
を備えた、複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項２】
前記メインプロトコルは、（１）開始断片および終了断片を明示的に識別すること、および（２）前記開始断片および前記終了断片のいずれかを暗黙的に示すこと、を含む群の中から選択された技法を用いて、論理オブジェクト断片の開始および完了を示す情報を含める
請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項３】
前記メインプロトコルは、
論理アドレスを物理アドレスリストに変換するアドレス変換プロセス（４０４）
をさらに備えた、請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項４】
前記メインプロトコルは、
前記データベースアプリケーションの仮想書き込みアドレスを、前記論理オブジェクトに関連する実際の物理媒体書き込みのピックリストに解決するアドレス変換プロセス（４０６）
をさらに備えた、請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項５】
前記メインプロトコルは、
すべてが前記記憶装置にデステージされるか、またはまったく前記記憶装置にデステージされないように単一のオブジェクトエンティティとして前記複数の物理書き込みに対して動作するように個々の物理記憶要素に指示する、前記リモートプロトコルに通信する制御メッセージを作成することが可能なプロセス（４０８）
をさらに備えた、請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項６】
前記メインプロトコルは、
指定された長さの前記論理オブジェクトを指定の仮想記憶アドレスに書き込むアプリケーション要求を受け取ることが可能なプロセスと、
前記仮想書き込みアドレスを変換可能であり、前記転送長を解決して、断片における前記論理オブジェクトを転送する、少なくとも１つの物理記憶装置の少なくとも１つの物理アドレスを指定することが可能なプロセス（４０４、４０６）と、
デステージのためにリモートミラーキャッシュに保持すべき論理オブジェクトの開始を記述した第１の制御メッセージを前記少なくとも１つの物理記憶装置に送ることが可能なプロセス（４０８）と、
前記ミラーキャッシュが前記少なくとも１つの物理記憶装置にデステージされるように前記論理オブジェクトの終了を記述した第２の制御メッセージを送ることが可能なプロセスであって、前記論理オブジェクト断片のいずれの部分も他の様式ではデステージされない、第２の制御メッセージを送ることが可能なプロセスと
をさらに備えた、請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項７】
（１）同期データ複製、および（２）非同期データ複製を含む群の中から選択される技法を用いて、情報が前記主記憶装置サイトから前記遠隔記憶装置サイトに複製される、
請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項８】
前記論理オブジェクト断片は、全か無かの様式でコンシステンシグループ中のすべての装置に可制御的にデステージされる、
請求項１記載の複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能なデータベースシステム。
【請求項９】
複数断片の論理オブジェクトを主記憶装置サイトから遠隔記憶装置サイトにミラーリングするデータベースアプリケーションを走らせるデータベースシステムにおいて実行される計算可能な可読プログラムコードが中に組み込まれたコントローラ使用可能媒体を備え、
前記計算可能な可読プログラムコードは、
前記コントローラに、前記主記憶装置サイトと前記遠隔記憶装置サイトの間でデータをリンクしミラーリングする前記データベースアプリケーションをインタフェースさせることが可能なコードと、
前記コントローラに、前記複数断片データベースアプリケーション転送において論理オブジェクトの開始および終了を示す制御情報を作成および配布させることが可能なコードと、
を備え、
前記遠隔記憶装置サイトは、記憶装置、および複数のアレイサイドファイル記録セットに分割されたキャッシュサイドファイルを含み、
前記制御情報は、前記キャッシュサイドファイルを制御して、受け取った前記複数断片をキャッシュし、すべての断片を受け取ると、前記記憶装置への前記論理オブジェクトのデステージを可能にする、
製品。
【請求項１０】
複数断片の論理オブジェクトを主記憶装置サイトから遠隔記憶装置サイトにミラーリングするデータベースアプリケーションを走らせるデータベースシステムにおいて実行される計算可能な可読プログラムコードが中に組み込まれたコントローラ使用可能媒体
を備え、
前記計算可能な可読プログラムコードは、
前記コントローラに、論理オブジェクト断片の開始および終了を示す制御情報と組み合わせて、複数断片転送における前記論理オブジェクトを受け取らせることが可能なコードと、
前記コントローラに、複数のアレイサイドファイル記録セットに分割されたキャッシュサイドファイルに前記論理オブジェクト複数断片の記憶を制御させることが可能なコードと、
前記コントローラに、受け取った前記複数断片をキャッシュさせ、すべての断片を受け取ると、前記論理オブジェクトの前記記憶装置へのデステージを可能にさせることが可能なコードと、
を有する
製品。
【発明の詳細な説明】
【技術分野】
【０００１】
リモートミラーキャッシュ内の論理オブジェクトの完全性を保つシステムに関する。
【背景技術】
【０００２】
アプリケーションデータベースは、データベース内の実行可能な論理オブジェクトを表す特定の最小量の、慣例によってはページと呼ばれる群または塊のデータを使用し得る。データベースのタスクは、大量データの管理および記憶、しかるべき高速時間でのデータのアクセスおよび書き込み、ならびにデータ完全性の維持を含む。データベースは一般に、主データ、すなわち元データおよび複製データをリモートミラーサイトにそれぞれ記憶する主記憶装置サイトおよび補助記憶サイトを含む。複製され記憶されたミラーデータには、バックアップおよび災害復元の際にアクセスして、素早く正確にシステムを復元することが可能である。冗長動作がブロックレベルのディスクアレイ複製により確立されると、データベースは複製データコピーの恩恵を受ける。通常動作中、プライマリボリュームはすべてのホストに対してオンラインのままであり、読み出しおよび書き込み入出力（Ｉ／Ｏ）動作の両方を処理する。災害またはシステム故障の場合、補助データコピーを素早く呼び出して、高いデータ完全性を持った復元を可能にする。
【０００３】
システムがリモートディスクアレイミラーサイトからデータを復元する際、データベースの完全性は、データページが完全に存在する場合にのみ確保される。その他の場合、データベースは首尾良く開始することができない。一般に、データベースは、データベースを開く呼び出しを生成し、記憶媒体を走査し、物理メモリおよび実行可能プロセスを割り振ってＩ／Ｏ動作を処理し、データおよびログファイルを調整しファイルの状態を示す情報を含む制御ファイルを開くことによって開始する。スタートアッププロセスは、制御ファイルにより識別されたファイルを開くことも含む。いくつかのファイルが不完全である場合、ファイル間のリンクが失われており、データベースは開始することができない。複製ページのミラーサイトへの転送が不完全であるとページの転送が部分的になる場合があり、「ページ裂け（torn page）」と呼ばれる。データベースによっては、ページ裂け現象を処理することができず、不完全なページを使用しようと試みるものがあり、これはおそらく、失敗に終わってのスタートアップまたはデータの破損に繋がる。
【０００４】
図１を参照して、概略ブロック図に、スタートアップの失敗またはデータの破損につながり得る、アプリケーションページ裂け現象およびＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ等のサーバによる処理を示している。一般のトランザクションの一例では、プライマリサイト１００で実行されているホストアプリケーション１０２が、８Ｋ／１Ｋファイルシステム１０４を使用して大量の書き込み動作、たとえば、８０Ｋバイトの書き込みを実行する。仮想モードで使用されている記憶装置の場合、８Ｋ／１Ｋファイルシステム１０４は、８Ｋバイトよりも大きな書き込み動作はいずれも、ホストアプリケーション１０２に対してトランスペアレントにデータを個々の８Ｋバイトブロックに分割し、ブロックを別個に転送することにより実行する。分割後に８Ｋバイトに満たないバイトが残った場合、８Ｋ／１Ｋファイルシステム１０４は残っているデータを１Ｋバイトブロックで送る。代替として、記憶装置を物理モード、すなわち生モードで使用してもよい。仮想モードの動作では、８Ｋ／１Ｋファイルシステム１０４は、単一のアプリケーションページを表す大量のアプリケーション書き込みを、トランスペアレントにページを複数の断片に分割することによって処理する。あまり高度ではないサーバでは、受信する側の記憶装置アレイは、転送ですべてのページを受け取ったか否かを判定、または識別する術がなく、ファイルシステムのブロックサイズよりも大きないずれの書き込み対しても、受信側アレイでのページ裂けの問題をシステムが受けやすくなる。
【０００５】
本例では、８Ｋ／１Ｋファイルシステム１０４は、８０Ｋバイトの書き込みを１０個の個々の８Ｋバイトの書き込み動作に分割し、１０個の８Ｋバイトブロックを主記憶装置１０６に転送する。ミラーリングリンク１０８は、個々のブロックを遠隔記憶装置アレイまたは記憶装置ミラー１１０に転送して、複製を記憶する。高度なアプリケーション、たとえば、Ｖｅｒｉｔａｓ（登録商標）ファイルシステムまたはＯｒａｃｌｅ（登録商標）データベースは、インテントログ、データ書き込み、およびコミット信号の組み合わせを使用して、ページ裂け問題を解決することができる。たとえば、ファイルシステムは、構造を更新するシステムの意図の記録を含む循環アクティビティログであるインテントログを使用して、完全性を確保することができる。インテントログは、ファイルシステム構造への保留中の変更を記録し、確実に、システムの変更に先立ってログ記録が書き込まれるようにする。システム故障の場合、ファイルシステムの保留中の変更は無効化されるか、あるいは完了される。通常、インテントファイルはファイルシステム構造に対する変更のみを記録し、ファイルデータの変更は記録しない。Ｍｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ
Ｓｅｒｖｅｒ等のあまり高度ではないアプリケーションは単に、アプリケーションデータページを送り、ページがフェイルオーバ時に遠隔アレイ１１０で完全な状態にあると想定する、または希望するだけである。
【０００６】
図１に示すように、８Ｋ／１Ｋファイルシステム１０４は、８０Ｋバイトアプリケーションページディスク書き込みをトランスペアレントに１０個の８Ｋバイト断片に分割して、主記憶装置１０６に書き込み、また遠隔記憶装置１１０中のアレイにミラーリングすることができる。遠隔アレイ１１０が１０個すべての断片を受け取ってディスク１１２にデステージする前にプライマリサイト１００で災害が発生した場合、遠隔アレイ１１０のアプリケーションスタートアップにエラーが発生し得る。たとえば、アプリケーションページを構成する１０個の断片書き込みのうちの９個を正しく受け取ってディスク１１２にデステージした場合であっても、遠隔アレイ１１０は不完全なアプリケーションページ、すなわちアプリケーションページ裂けを含む。高度ではないアプリケーションは、ページ裂けを破損した使用不可能なデータベースとして指定し、スタートアップを拒絶する場合があり、これはおそらく、実施された災害復元応答または計画を無効化する。
【０００７】
特定の例では、様々なＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムと併せて使用されるＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）は、一致しないサイズを有するデータページを使用する。その結果、電源異常、ディスクドライバまたは物理的なディスクの障害、または他の災害により、おそらくデータベースが破損する。破損は、オペレーティングシステムが８ＫバイトのＳＱＬサーバデータページを書き込む度に、ページが５１２バイトのページに分割されることから発生し得る。最初の５１２バイトのデータが書き込まれた後、ＳＱＬサーバは、８Ｋバイト全体がディスクに首尾良く書き込まれたものと想定する。５１２バイトページがすべてディスクに書き込まれる前に電源異常または他の故障が発生する場合、ＳＱＬサーバは故障を検出することができない。この状況は説明した「ページ裂け」である。破損範囲を特定する情報がないことにより、単一データページの破損はデータベース全体を破損させる。ＳＱＬサーバは、イネーブルされてページ裂けを識別することができる「ページ裂け検出」の使用を通して、結果生じた破損を限定しようと試みる。ページ裂け検出は破損を阻止せず、データベースを破損とマークするだけであり、したがって、データベースを最新のバックアップを使用して復元することができるが、これは不都合なことに、最後のバックアップ以後に生成されたデータの損失に関するダウンタイムおよび生産性の損失につながる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
望まれているのは、リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ方法である。
【課題を解決するための手段】
【０００９】
いくつかの実施形態によると、データベースシステムは、複数の断片で論理オブジェクトを転送するデータベースアプリケーションを実行することが可能である。本データベースシステムは、主記憶装置サイトと、遠隔記憶装置サイトと、主記憶装置サイトで実行可能なメインプロトコルと、遠隔記憶装置サイトで実行可能なリモートプロトコルを備える。遠隔記憶装置サイトは、主記憶装置サイトにリンク可能であり、主記憶装置サイトに記憶されている情報をミラーリング可能である。遠隔記憶装置サイトは、記憶装置および複数のアレイサイドファイル記録セットに分割されたキャッシュサイドファイルを含む。メインプロトコルは、主記憶装置サイトで実行可能であり、複数断片データベースアプリケーションにおける論理オブジェクト断片の開始および完了を示す情報を包含可能である。リモートプロトコルは、遠隔記憶装置サイトで実行可能であり、受け取った複数断片をキャッシュし、すべての断片を受け取ると、論理オブジェクトを記憶装置にデステージすることを可能にするようにキャッシュサイドファイルを制御可能である。
【００１０】
構造および動作方法の両方に関連する実施形態は、以下の説明および添付図面を参照することにより最良に理解することができる。
【発明を実施するための最良の形態】
【００１１】
図２を参照して、概略的に描かれた表現図に、ページ裂け現象を処理するシステムおよび方法の一実施形態を示す。データベースシステム２００は、例では主記憶装置サイト２０２および遠隔記憶装置サイト２０４として示されている複数の記憶サイトを含む。主記憶装置サイト２０２は、プログラム、プロセス、メソッド、および他のタイプの実行可能システムを、多くの場合はコンピュータ可読プログラムコードとして実行することが可能なコントローラ２０６を備える。データベースシステム２００は、論理オブジェクト、たとえばページを複数の断片で転送するデータベースアプリケーション２０８等、ホストアプリケーションを実行することができる。ページは、任意のコヒーレントなデータ片、任意のタイプの論理記録または内部データ群であることができる。ページは、任意の原子的なデータ群等、一時的なエンティティであり得る。
【００１２】
データベースシステム２００は、ここでも実例として、データベースアプリケーション２０８から論理オブジェクト全体を受け取り、論理オブジェクトを主記憶装置２１２に転送するために複数の断片に分割する８Ｋ／１Ｋファイルシステムとして示されるファイルシステム２１０も備える。データベースシステム２００は、個々の断片を主記憶装置サイト２０２から遠隔記憶装置サイト２０４にミラーリングするためのミラーリングリンク２１４も備える。
【００１３】
遠隔記憶装置サイト２０４は一般に、コントローラ２１８、キャッシュサイドファイル２１６、およびディスク記憶装置等の補助記憶装置２２０も備える。コントローラ２１８は、キャッシュサイドファイル２１６でのデータ断片の処理、およびデータ断片の補助すなわちミラーリング記憶装置２２０への書き込み、すなわちデステージを管理する。
【００１４】
リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ、実例としてのシステムおよび方法は、ミラーリングされたアレイキャッシュサイドファイル２１６内でアプリケーションページを定義し実施することにより動作することができる。キャッシュサイドファイル２１６は、ミラーリング書き込み入出力動作からデータを受け取るデータ構造である複数の受信アレイサイドファイル記録セットを有する。データベースシステム２００は、一般に主記憶装置サイト２０２で実行可能であり、ホストデータベースアプリケーション２０８が、アプリケーションデータページまたは他の論理オブジェクトの開始および終了をキャッシュサイドファイルアレイに対して通知できるようにする、ホスト制御プロトコル等のメインプロトコルを含む。メインプロトコルは、開始信号および終了信号を明示的に送る、または境界を暗黙的に決定する情報を伝達する等、様々な形で複数断片でのデータベースアプリケーション転送における論理オブジェクト断片の開始および終了を示す情報を含むことができる。一例では、「ページ開始」制御メッセージ２２をファイルシステム２１０から主記憶装置２１２に送り、論理オブジェクトまたはページの送信開始を通知することができる。たとえばデータベースコミットのような「ページ終了」制御メッセージ２２４が、ページまたは論理オブジェクトの送信の終了を記述することができる。
【００１５】
データベースシステム２００は、論理オブジェクト開始および終了情報を用いて、キャッシュサイドファイル２１６における受信ミラーリングアレイを制御する、遠隔記憶装置サイト２０４で実行可能なリモートプロトコルも含む。リモートプロトコルは、キャッシュサイドファイル２１６を制御して、受信時に複数の断片をキャッシュし、ページ全体を受け取り、ページ全体がキャッシュサイドファイル２１６において利用可能な場合に断片をミラー記憶装置２２０にデステージ、すなわち書き込む。リモートプロトコルは、すべての断片の準備が整い、キャッシュサイドファイル２１６内に収容されるまで、デステージを回避するため、記憶装置は不完全なページ、すなわちページ裂けを含まない。
【００１６】
各種実施形態では、データベースシステム２００は、インバンドまたはアウトバンド等任意の適した様式で、また任意の規格、たとえば制御命令に添付された小型コンピュータシステムインタフェース（ＳＣＳＩ）書き込み、または他の技法を使用して、主記憶装置２１２および補助、すなわちミラー記憶装置２２０を含む記憶装置に断片を書き込むことができる。各種実施形態では、通信はカスタムであっても、またはベンダーに固有であってもよい。
【００１７】
図３を参照して、概略ブロック図に、ファイバチャネル接続３０２に基づいたデータベースシステム３００の一例を示す。データベースシステム動作は、物理的な通信パス３０２を介して各プライマリサイト３０８およびセカンダリサイト３１０にあるディスクアレイ３０４および３０６に情報を記憶する連続アクセス機能を有する。プライマリ、すなわちメインサイト３０８にあるサーバ３１２は、データベースシステム３００におけるアクセスおよび転送を制御する機能動作プログラムコードを含む。セカンダリ、リモート、またはミラーサイト３１０にあるサーバ３１４もまた、データベース制御動作を実行する。実例では、連続アクセスプログラムコードは、専用ファイバチャネル接続３０２を介して、プライマリサイト３０８にある元のオンラインデータをセカンダリまたはリモートサイト３１０にあるオフラインボリューム３０６にコピーする。システム３００は、災害復元動作を実行するために、ホストフェイルオーバ通信リンク３１６を備える。
【００１８】
ディスクアレイ３０４の他に、プライマリサイト３０８は、主制御ユニット３１８、ならびに１つまたは複数のターゲットポート３２０およびイニシエータポート３２２を備える。同様にセカンダリサイト３１０も、遠隔制御ユニット３２４、ならびに１つまたは複数のターゲットポート３２６およびターゲットポート３２８を備える。ディスクアレイ３０４および３０６が、非同期コンシステンシグループ３３４内に配置することができるプライマリボリューム（Ｐ−ＶＯＬ）３３０およびセカンダリボリューム（Ｓ−ＶＯＬ）３３２を有するボリューム対に編成される。
【００１９】
連続アクセス動作は主制御ユニット３１８および遠隔制御ユニット３２４において実行され、プライマリ、またはメインディスクアレイ３０４およびセカンダリ、またはリモートディスクアレイ３０６に関わる。主制御ユニット３１８は、元データを保持し、ホストシステム３１２の動作による対管理制御下にあるプライマリボリューム３３０を含む。遠隔制御ユニット３２４は、プライマリボリューム３３０の同期コピーまたは非同期コピーであるセカンダリボリューム３３２を含む。データベース制御システムは、制御ユニットイメージ、およびディスクアレイ３０４および３０６の論理ボリューム、ならびに様々な物理ドライブオプションおよび様々な記憶装置構成、たとえば、独立ディスク冗長アレイ（ＲＡＩＤ１およびＲＡＩＤ５）構成をサポートする。
【００２０】
説明に役立つ実施形態では、主制御ユニット３１８は、連続アクセスボリューム対のプライマリボリューム３３０を制御する、プライマリディスクアレイ３０４におけるコントローラ、プロセッサ、中央演算処理装置（ＣＰＵ）、または他の制御ユニットである。通常、連続アクセス機能を実行するホスト制御プログラムは、プライマリ−セカンダリ記憶装置対の主制御ユニット３１８に添付される。主制御ユニット３１８は、専用ファイバチャネル３０２のリモートコピー接続を介して遠隔制御ユニット３２４と通信する。主制御ユニット３１８は一般に、プライマリボリューム３３０へのホスト入出力動作、ならびにセカンダリボリューム３３２間の初期コピーおよびリモートコピー動作を制御する。主制御ユニット３１８はまた、対の状態および構成情報も管理することができる。主制御ユニット３１８は、ローカルエリアネットワークを介してコンピュータまたはワークステーション３３６に添付し、ローカルおよびリモートボリューム対管理制御動作を補助する。
【００２１】
遠隔制御ユニット３２４は、ボリューム対のうちのセカンダリボリューム３３２を制御する、リモートディスクアレイ３０６中の制御ユニットである。遠隔制御ユニット３２４は、ボリューム対の状態および構成を管理するにあたって主制御ユニット３１８を補助する。遠隔制御ユニット３２４は、主制御ユニット３１８によって発行されるリモートコピー動作を実行することができる。リモートミラーキャッシュにおける論理オブジェクトの完全性を保つ、実例としての方法では、遠隔制御ユニット３２４は、ページのすべての断片を受け取る前に、制御情報をサイドファイルに書き込み、論理オブジェクトの断片をキャッシュすることができる。ページ全体を受け取ると、主制御ユニット３１８は、論理オブジェクトまたはページの全体をリモートディスクアレイ３０６にデステージすることができる。遠隔制御ユニット３２４は、ローカルエリアネットワークを介してコンピュータまたはワークステーションに接続され、ローカルおよびリモートボリューム対管理制御をやりやすくすることができる。遠隔制御ユニット３２４はホストシステム３１４にも添付して、セカンダリボリュームまたはリモートディスクアレイに関連する問題または災害状況の場合に報告すべき情報を感知できるようにし、災害からの復元を補助する。
【００２２】
主制御ユニット３１８および遠隔制御ユニット３２４は、異なるボリューム対に対して個々に、かつ別個に定義することができる。たとえば、特定の制御ユニットは、リモートコピー接続およびファイバチャネルポートが適宜構成されている限り、１つまたは複数のプライマリボリュームの主制御ユニットとして、および、１つまたは複数のセカンダリボリュームの遠隔制御ユニットとして同時に機能することができる。
【００２３】
データベースシステム３００は、ユーザにより作成された論理ボリューム対のリモートコピー動作を実行することができる。ボリューム対は、１つのプライマリボリューム３３０および１つのセカンダリボリューム３３２を含み、これらボリュームは、同期データ複製システムの場合は同じディスクアレイにあってよく、同期または非同期システムいずれかの場合は異なるディスクアレイにあってもよい。プライマリボリューム３３０は元データを含む。セカンダリボリューム３３２は、複製または重複データを含むミラーリングボリュームである。
【００２４】
データベースシステム３００は、磁気媒体、通信リンクを介しての信号受信、および制御動作を実行する他のものを含め、コントローラ使用可能な媒体等の製品から、コンピュータ可読プログラムコードをダウンロードすることができる。コンピュータ可読プログラムコードは、論理オブジェクトを複数の断片で主記憶装置サイトから遠隔記憶装置サイトにミラーリングするデータベースアプリケーション等の機能を実施することができる。特定の実施形態では、コードは、コントローラに、プライマリディスクアレイ３０４とセカンダリディスクアレイ３０６の間をリンクしデータをミラーリングするデータベースアプリケーションとインタフェースさせることが可能なプロセスを含む。コードは、論理オブジェクトの開始および終了を示す制御情報を作成し配布し、受信時に論理オブジェクトの複数の断片をキャッシュし、すべてを受け取ったときに断片のデステージを可能にし、その他の場合はいずれの断片もデステージしないプロセスも含むことができる。
【００２５】
別の実施形態では、コードは、論理オブジェクト全体の開始および終了を示す制御情報と組み合わせて、複数断片転送で論理オブジェクトを受け取るプロセスを含むことができる。コードは、複数のアレイサイドファイル記録セットに分割されたキャッシュサイドファイルへの複数の断片の記憶を制御するプロセス、および受け取った複数の断片をキャッシュし、すべての断片がキャッシュされたときに論理オブジェクトをデステージするプロセスをさらに含むことができる。
【００２６】
メインプロトコルおよびリモートプロトコル等の実行可能機能は、様々な実施を有することができる。いくつかの実施形態では、機能は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）規格に従って定義されたアプリケーションプログラミングインタフェース（ＡＰＩ）として実施することができる。特定の実施形態では、機能はホストＡＰＩ、たとえば、特別な書き込みコマンドまたは制御コマンドを送る、ディスクドライバレベルにおいてオペレーティングシステムとは別個のプログラムを含み得る。通常、アプリケーションは、中間アドレス変換プログラムを呼び出して、仮想アドレッシングを物理論理装置（ＬＵＮ）アドレッシングに変換する。代替の実施形態では、アプリケーションは、論理ボリュームマネージャおよびファイルシステム（ＬＶＭ／ＦＳ）仮想／物理アドレス変換を備えないシステムにおいて生モードすなわち物理モードで記憶装置またはディスクを使用することができる。ホストアプリケーション、たとえばＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）は一般に、ホスト常駐アドレス変換およびページ裂け保護プログラム（ＴＰＰＰ）を呼び出し、制御情報を中継する。
【００２７】
一実施形態では、ホストアプリケーションは、ターゲット記憶装置、書き込むべきアプリケーションページの開始アドレスおよび長さを識別する情報を送る。ホストアプリケーションは、論理アドレスから、たとえばディスクアレイＬＵＮの物理アドレスの構成要素リストへの変換を要求する。ホストアプリケーションはまた、エンティティのすべてがリモートサイトにあるディスクにデステージされるか、あるいはページがいずれもデステージされないかいずれかであるように、複数の関連した物理書き込みに対して単一のページエンティティとして動作するよう物理ディスクまたはディスクアレイＬＵＮ等、個々の物理装置に指示することができる。
【００２８】
ページ裂け保護プログラムは、例によっては、論理ボリュームマネージャおよびファイルシステム（ＬＶＭ／ＦＳ）の抽象化により不明瞭なアプリケーションの仮想アドレスを、ページに関連する実際の物理ディスク書き込みのピックリストに解決する。ページ裂け保護プログラムにより解決された情報は、制御メッセージにおける送信側アレイＬＵＮに送られる。ＬＶＭ物理ボリュームから論理ボリュームへのマッピングは、アプリケーションデータベースページの完全な内容が単一のリモートディスクボリューム内に常駐するように構成される。
【００２９】
実例では、開始および終了をひとくくりにする制御メッセージを利用して、開始断片および終了断片を識別する。他の実施形態は他の様式の境界を指定し得る。一例では、開始断片は最初の断片を送ることによって暗に示され、最初の断片は、総バイト数または総断片数等、単位総数を示す埋め込みコードを有する。埋め込みコードは、指定のアドレス範囲内の論理オブジェクトを受け取るターゲットＬＵＮ装置も含む。コードに内在するものは、総数の単位を受け取った後に論理オブジェクトまたはページの全体を自動的にデステージするコマンドである。このようにして、コードは明示的なページ終了メッセージまたはコマンドを必要としない。
【００３０】
図３と組み合わせて図４を参照して、フローチャートに、ページ裂けの遠隔記憶を回避するように制御信号を通信するサンプルダイアログの一例を示す。ホストは、複数のパラメータをページ裂け保護プログラムに送ること（４０２）によってトランザクション（４００）を開始する。特定の例では、ホストは仮想記憶アドレスＸに対する３２Ｋバイトの書き込みを開始する意図を示すメッセージを送る。メッセージは、ページ裂け保護プログラムがページ開始メッセージとともにしかるべき物理ＬＵＮを通知することを命令する。ページ裂け保護プログラムは、利用可能なアドレス指定解決技術を用いて、仮想書き込みアドレスを物理アドレスに変換する（４０４）。よってページ裂け保護プログラムは、指定長の論理オブジェクトを指定の仮想記憶アドレスに書き込むアプリケーション要求を受け取ることができる。一例では、解決プログラムは、論理アドレスが、主記憶装置サイトの物理ディスクアレイＬＵＮ  Ｙおよびミラーリング、または遠隔記憶装置サイトのミラーリング物理ディスクアレイＬＵＮ  Ｚそれぞれに３２Ｋバイトを記憶している特定のアドレスに解決される（４０６）ことを決める。アドレス解決プロセス４０６は、仮想書き込みアドレスを変換し、転送長を解決して、論理オブジェクトを複数断片で転送する少なくとも１つの物理記憶装置の少なくとも１つの物理アドレスを指定することができる。
【００３１】
ページ裂け保護プログラムは、ディスクアレイＬＵＮ  ＹおよびディスクアレイＬＵＮ  Ｚを含む個々のアレイすべてに制御メッセージを送る（４０８）。サーバ３１２からＬＵＮ  Ｙへの制御メッセージは主制御ユニット３１８への直接接続を介して渡すことができ、ＬＵＮ  Ｚへの制御メッセージは、主制御ユニット３１８および通信パス３０２を経由して遠隔制御ユニット３２４に渡すことができる。制御メッセージは、コマンドが、リモートミラーキャッシュに保持されるべきであり、すべて一度にデステージされるか、またはまったくデステージされないかのいずれかであるべき論理オブジェクトページの開始であることを表す。制御メッセージは、続くページ終了制御メッセージが論理オブジェクトの終了を示して論理オブジェクトのデステージをアクティブ化するために送られるべきであることをさらに示す。このようにしてミラーキャッシュは物理記憶装置エンティティにデステージされるか、または代替として、論理オブジェクト断片のいずれの部分もデステージされない。
【００３２】
リモートミラーキャッシュにおける論理オブジェクトの完全性を保つ、実例としての方法は、任意の適切な様式でデータを複製するシステムで使用することができる。たとば、方法は、ディスクアレイ間で同期または非同期のデータ複製を利用しているシステムで使用することができる。同様に、方法は、アレイ間に任意のタイプのリンク、たとえば、ファイバチャネル（ＦＣ）、小型コンピュータシステムインタフェース（ＳＣＳＩ）、インターネットＳＣＳＩ（ｉＳＣＳＩ）、エンタープライズシステムコネクションアーキテクチャ（ＥＳＣＯＮ）、および他のリンク規格を有するシステムに使用することもできる。
【００３３】
図５Ａを参照して、概略ブロック図に同期データ複製方法を示す。ホスト５００からプライマリ記憶装置アレイ５０２に発行されたいずれの入出力コマンド５１０も、セカンダリ記憶装置アレイ５０４にコピー（５１２）される。データがセカンダリアレイ５０４のメモリに書き込まれると、入出力がプライマリアレイ５０２に対して承認（５１４）され、それからホスト５００に対して承認（５１６）される。特定の実施形態では、主制御ユニットは、プライマリボリュームに対して書き込み動作を実行し、セカンダリボリュームに対して更新コピー動作を開始し、更新コピー動作の結果がわかった後でのみ、最終終了状態をホストに報告する。プライマリボリューム書き込みあるいはセカンダリボリューム更新コピー動作のいずれかが失敗した場合、主制御ユニットはユニットチェックを報告し、ホストシステムおよびアプリケーションプログラムがプライマリボリュームへの書き込み動作を失敗とみなす。リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ方法は、セカンダリボリュームが一貫しない、すなわち不正確なデータを含まないようにする。
【００３４】
実例に２サイトデータ複製を示し、実例はさらなる複製サイトにも同様に拡張される。２サイトデータ複製方法では、ホストアプリケーションがデータの保全を担当する。入出力コマンドは、アレイ５０２および５０４の両方に書き込まれたときのみにアプリケーション５１６に対して承認されるため、アプリケーションは、最初のコマンドが完了した場合のみ次の入出力コマンドを発行し、したがってデータは順序通りかつ一貫してセカンダリアレイ５０４に書き込まれる。同期複製は、新しい追加サイト毎にアプリケーションの応答時間が長くなることから複数サイトミラーリングにはあまり適していない。
【００３５】
図５Ｂを参照して、概略ブロック図に、記録順序を有する非同期データ複製方法を示す。ホスト５００がプライマリ記憶装置アレイ５０２に発行した入出力コマンドは、コマンドがプライマリ記憶装置アレイ５０２のキャッシュに到達するとすぐに、ホスト５００に対して即座に承認（５２２）される。シーケンス番号が入出力コマンドに付加され、セカンダリアレイ５０４に送られる（５２４）。セカンダリアレイ５０４へのパスは複数のパスまたはルートのいずれも通ることができるため、入出力コマンドが順序通りに到着しないという可能性がある。セカンダリアレイ５０４は、シーケンス番号に従って入力コマンドを並べ替えること、およびデータ記録を正しい順序で加えることを担当する。セカンダリアレイ５０４による管理により、順序通りの一貫したデータベースが確保されるが、故障の場合は大半の現在トランザクションが失われ得る。非同期データ複製は、アプリケーションホストに対する待ち時間の影響が少ない、またはないことから長距離複製により適している。
【００３６】
特定の例では、主制御ユニットは、セカンダリボリュームでの関連する更新コピー動作から独立して、プライマリボリューム動作を完了する。遠隔制御ユニットは、記録セット情報に従ってセカンダリボリュームの更新を管理し、セカンダリボリュームのシーケンス順序付きデータの一貫性を維持する。プライマリボリュームの書き込み動作が失敗した場合、主制御ユニットはユニットチェックを報告し、その動作に対しての非同期記録セットは作成しない。更新コピー動作が失敗した場合、遠隔制御ユニットは、故障のタイプに応じて、影響を受けた対あるいはコンシステンシグループ中のすべての対を任意選択的に中断することができる。中断された対の再開時に、主制御ユニットおよび遠隔制御ユニットは対の再同期をネゴシエーションすることができる。リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ方法は、動作が不正確な情報をセカンダリボリュームに残さないようにする。
【００３７】
図６を参照して、概略ブロック図に非同期データ複製におけるサイドファイルの使用法を示す。非同期複製は、更新発生のシーケンス順序トラッキングを利用して一貫性を確保する。トラッキングは、プライマリボリュームサイドファイル６０６およびセカンダリボリュームサイドファイル６０８において行われる。個々の更新はシーケンス番号を使用して順序付けられ、リモートアレイ６０４に送られる。リモートアレイ６０４は、セット中の次のシーケンス番号を受け取ると、プライマリアレイ６０２に対してシーケンス番号に従ってデータの受信を承認し、影響を受けたシーケンス番号がプライマリボリュームのサイドファイルリスト６０６から除去される。トランザクションがプライマリアレイ６０２とセカンダリアレイ６０４の間で失われた場合、特定のシーケンス番号のデータの再送信を要求することができる。
【００３８】
シーケンス番号は、プライマリアレイ６０２およびリモートアレイ６０４のメモリにおいて管理され、さらなる資源であるサイドファイル６０６および６０８を利用する。プライマリアレイ６０２に対して実行される入出力動作の場合、シーケンス番号および更新により影響を受けたブロックへのポインタを含むエントリが、サイドファイル６０６に追加される。同じブロックが後続の入出力動作で更新された場合、そのブロックの内容もまたサイドファイル６０６において再度記録される。サイドファイルサイズは、プライマリアレイ６０２により実行される入出力動作の数に対する、リモートアレイ６０４へのリンクのパフォーマンスに依存する。サイドファイル６０６がアレイ６０２中の総キャッシュメモリの所定の割合に達した場合、たとえば、低速リンクに起因して入出力動作がキャッシュにあふれてきている場合、ホスト６００からの入出力速度が、サイドファイル６０６の優先を図って制限される。
【００３９】
サイドファイルは通常、通信がプライマリサイト６０２とセカンダリサイト６０４の間に存在する場合にのみ使用される。通信が不通になる場合、または対が中断されている場合、サイドファイルのオーバヘッドは高すぎるとみなされるため、代わりにビットマップを使用して、通常はトラック単位またはシリンダ単位で変更をトラッキングする。
【００４０】
各種実施形態では、非同期記録セットは、プライマリボリューム更新および関連する制御情報、たとえば、プライマリボリューム更新のシーケンス番号を含むことができ、それによって遠隔制御ユニットがセカンダリボリュームの更新一貫性を維持できるようにする。記録セット動作は、主制御ユニットでの記録セットの作成および記憶、遠隔制御ユニットへの記録セットの送信、遠隔制御ユニットへの記録セットの記憶、ならびに遠隔制御ユニットでの記録セットの選択および定着を含むことができる。他の動作としては、サイドファイルの流入制御が挙げられる。
【００４１】
一例では、ホストが書き込み入出力動作を要求すると、主制御ユニットは更新を実行し、記録セットを作成する。記録セットは、更新された記録、シーケンス番号、装置、シリンダ、トラック、およびレコード番号等のレコードの位置、およびレコード長を含むことができる。記録セット（レコードセット）は、主制御ユニットのキャッシュ記憶装置のキューに入れられ、ホスト入出力プロセスから独立して遠隔制御ユニットに送られる。遠隔制御ユニットは、記録セット中のシーケンス番号を使用して、プライマリボリュームの順序でセカンダリボリュームを更新する。シーケンス番号は、主制御ユニットが各コンシステンシグループに作成した記録セット数を識別する。更新された記録以外の記録セット情報も記録され、サイドファイルキャッシュとして知られているキャッシュの領域のキューに入れられる。
【００４２】
例では、主制御ユニットは、主制御ユニットのイニシエータポートを使用して、リモートＩ／Ｏと呼ばれる特別な入出動作を遠隔制御ユニットに発行することにより、記録セットを遠隔制御ユニットに送ることができる。リモートＩ／Ｏは、単一チャネルコマンドを使用して記録セットを効率的に転送するため、主制御ユニットは、非連続シーケンス番号であっても、複数の記録セットを単一リモートＩ／Ｏ呼び出しで送ることができる。遠隔制御ユニットは、キューを維持して、サイドファイル中の記録セットの記憶およびセカンダリボリューム中の記録更新のコミットを制御することにより、記録セットを記憶することができる。遠隔制御ユニットのキューイングは、シーケンス番号を使用して欠けている更新についてチェックすることができる。
【００４３】
ビットマップテーブルは、特定の時点から変更された装置上の記録をトラッキングするために有効な技法である。ビットマップテーブルは、変更されたトラック番号またはシリンダ番号を記録し、通常、変更の順序または詳細に関する情報は保持しない。対が中断される場合、デルタビットマップテーブルがプライマリアレイ６０２およびセカンダリアレイ６０４の両方に保持される。対の同期が再びとられると、変更されたシリンダのみがリモートアレイ６０４にコピーされ、データミラーリングを最新にする。その後、サイドファイルを再び使用して、更新を続ける。再同期中、リモートアレイ６０４上のデータは一貫性および信頼性がないものである。
【００４４】
コンシステンシグループのトラッキングを利用して、正しい動作を確保する。非同期コンシステンシグループは、更新シーケンスの一貫性がリモートサイトにおいて保たれ、確保されているボリューム対のユーザ定義セットである。各非同期ボリューム対はコンシステンシグループに割り当てられる。実例としてのシステムでは、データベースシステムは、各主制御ユニット毎に所定数のコンシステンシグループを構成することを許し、コンシステンシグループのグループベースの動作をサポートする。コンシステンシグループは、複数のボリュームにわたる、データベースの更新シーケンスの一貫性を保てるようにし、故障または災害の場合にリモートサイトでの即座のデータベース復元をやりやすくする。
【００４５】
アプリケーションコマンドは、２つ以上の物理装置の集合を含む。したがって修正動作は、すべての入出力アクティビティが一貫してリモート装置に適用されるという前提に頼ることができる。非同期動作中、装置群中のすべての装置は同じコンシステンシグループを形成する。サイドファイル中のシーケンス番号はコンシステンシグループの粒度レベルで発行されるため、そのコンシステンシグループのプライマリ装置に適用された入出力動作は、同じ順序でセカンダリ装置に適用される。コンシステンシグループ中の装置が更新に利用することができない場合、コンシステンシグループ全体がエラー状態になる。コンシステンシグループは、コンシステンシグループ中のすべての装置に対する書き込みが、それまでのすべての書き込みの準備ができるまでデステージされないように定義され制御される。一貫性は、単一のＬＵＮだけではなくコンシステンシグループ中のすべての装置に適用される。
【００４６】
リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ方法は、初期コピー動作および更新コピー動作等、データベースシステムの様々なリモートコピー動作に使用することができる。初期コピー動作は、一般にホストプロセスから独立して、プライマリボリュームおよびセカンダリボリュームを同期させる。初期コピーは通常、ユーザがボリューム対を追加するときに行われる。新しい対が作成されると、プライマリボリュームの内容全体が、診断および未割り当て代替トラック以外、シリンダ単位でセカンダリボリュームにコピーされる。様々なデータベースシステム実施形態は、初期コピーの際にリモートミラーキャッシュにおける論理オブジェクトの完全性を保つ方法の使用を実施しても、または省いてもよい。初期コピーは一般に、データベースの使用がより制御されている状況で行われるため、データベースシステム実施形態によっては、初期コピーの際にリモートミラーキャッシュにおける論理オブジェクトの完全性を保つ方法に関連するオーバヘッドを省き得る。
【００４７】
更新コピー動作は、ホストが、書き込み入出力動作を、確立されたボリューム対の中のプライマリボリュームに発行するときに行われる。更新コピー動作は、プライマリボリューム入出力動作をセカンダリボリュームに対して繰り返して、ボリューム対の同期性を保つ。リモートミラーキャッシュにおいて論理オブジェクトの完全性を保つ方法の使用は、更新をコピーして正確なデータベース動作を保証する際に有用である。
【００４８】
本開示に各種実施形態について説明したが、これら実施形態は例示として理解されるべきであり、特許請求の範囲を限定しない。述べた実施形態の多くの変形、変更、追加、および改良が可能である。たとえば、当業者は、本明細書に開示した構造および方法の提供に必要なステップを容易に実施し、プロセスパラメータ、材料、および寸法は例としてのみ与えられていることを理解するであろう。パラメータ、材料、および寸法は、所望の構造ならびに変更を実現するように変更することが可能であり、これは特許請求の範囲内である。本明細書に開示した実施形態の変形および変更はまた、併記の特許請求の範囲内にありながら行い得る。たとえば、開示した装置および技法は、任意の適当なかずの記憶要素を有する任意のデータベース構成において使用することが可能である。データベースシステムは磁気ディスク記憶要素を開示しているが、任意の適当なタイプの記憶技術を実施し得る。システムは、様々なオペレーティングシステムおよびデータベースシステムを使用して実施することができる。制御要素は、汎用コンピュータシステム、ワークステーション、サーバ等のソフトウェアまたはファームウェアとして実施し得るが、そうでなければ専用装置および埋め込みシステムで実施してもよい。
【図面の簡単な説明】
【００４９】
【図１】スタートアップの失敗またはデータの破損につながり得る、アプリケーションページ裂け現象およびＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ等のサーバによる処理の一例を示す概略ブロック図である。
【図２】ページ裂け現象を処理するシステムおよび方法の一実施形態を示す概略絵画的表現図である。
【図３】実例となるリモートミラーページ裂けデコミット技法の実施に使用することができるファイバチャネル接続に基づいたデータベースシステムの一例を示す概略ブロック図である。
【図４】遠隔記憶装置のページ裂けを回避する様式で制御信号をやりとりするサンプルダイアログの一例を示すフローチャートである。
【図５Ａ】リモートミラーキャッシュの論理オブジェクト完全性を保つ、実例となる方法に合致した同期データ複製技法を示す概略ブロック図である。
【図５Ｂ】リモートミラーキャッシュの論理オブジェクト完全性を保つ、実例となる方法に合致した非同期データ複製技法を示す概略ブロック図である。
【図６】非同期データ複製でのサイドファイルの使用を示す概略ブロック図である。
【符号の説明】
【００５０】
２０８・・・ホストアプリケーション
２１８・・コントローラ
２２０・・・ディスク
３０２・・・ファイバチャネル接続
３１２・・・プライマリサイトのサーバ
３１４・・・リモートサイトのサーバ
３２０，３２８・・・ターゲット
３２２・・・イニシエータ
３３４・・・コンシステンシグループ
【図１】
2005135405.tif 000003
【図２】
2005135405.tif 000004
【図３】
2005135405.tif 000005
【図４】
2005135405.tif 000006
【図５Ａ】
2005135405.tif 000007
【図５Ｂ】
2005135405.tif 000008
【図６】
2005135405.tif 000009