(57)【特許請求の範囲】
【請求項１】
仮想データベースシステムを作成する方法であって、
複数のデータベースブロックを備えているソースデータベースの異なる時点のコピーである種々の時点コピーを受け取ることと、
前記ソースデータベースの複数の種々の時点コピーについての複数のデータベースブロックをストレージシステムに記憶することであって、該記憶した複数のデータベースブロックの少なくとも一部が前記ソースデータベースの複数の時点コピーに関連していることと、
１つの仮想データベースのために、複数ファイルからなるファイルセットを作成することであって、該ファイルセット内の各ファイルが、前記ソースデータベースの１つの時点コピーに関連した前記ストレージシステム内の前記データベースブロックにそれぞれリンクされており、前記１つの仮想データベースの１以上のデータベースブロックが別の仮想データベースと共有されることと、
前記１つの仮想データベースに関連する前記ファイルセットを、該ファイルセットに対する読み出し及び書き込みが可能なようにデータベースサーバにマウントすること、
を含む方法。
【請求項２】
前記仮想データベースに関連する前記ファイルセット内のデータの読み出しリクエストを、前記データベースサーバから受信することと、
前記ファイルセット内のファイルに関連する少なくとも１つのデータベースブロック内のデータにアクセスすることと、
前記読み出しリクエストに応答して前記データを送信することと、をさらに含む、請求項１に記載の方法。
【請求項３】
前記ソースデータベースの時点コピーを受け取るためのリクエストを送信することをさらに含む、請求項１に記載の方法。
【請求項４】
前記ソースデータベースは生産データベースのストレージレベルのスナップショットである、請求項１に記載の方法。
【請求項５】
前記ソースデータベースは生産データベースを複製する予備データベースである、請求項１に記載の方法。
【請求項６】
前記仮想データベースは第１の仮想データベースであり、前記ソースデータベースは第２の仮想データベースである、請求項１に記載の方法。
【請求項７】
前記ソースデータベースと、前記ソースデータベースの時点コピーを管理するための既定のポリシーとを関連付けることをさらに含む、請求項１に記載の方法。
【請求項８】
前記既定のポリシーは、前記ソースデータベースの時点コピーを受け取るスケジュールを指定する、請求項７に記載の方法。
【請求項９】
前記スケジュールは、前記ソースデータベースの時点コピーを受け取る暦日を指定する、請求項８に記載の方法。
【請求項１０】
前記既定のポリシーは、保存期間後に前記時点コピーを消去するスケジュールを指定する、請求項７に記載の方法。
【請求項１１】
前記既定のポリシーは、前記ストレージシステムの利用可能スペースに基づいて、前記時点コピーの消去を指定する、請求項７に記載の方法。
【請求項１２】
前記ストレージシステムは、バーチャルマシンにおいて稼働する、請求項１に記載の方法。
【請求項１３】
前記ソースデータベースの時点コピーを送信するように構成されたプログラムコードを、前記ソースデータベースに関連する生産データベースシステムに送信することをさらに含む、請求項１に記載の方法。
【請求項１４】
以前の時点コピー受け取り後の前記ソースデータベースにおける変化を示す取引ログを表す情報を、前記ソースデータベースから受け取ることをさらに含む、請求項１に記載の方法。
【請求項１５】
取引ログを表す情報の以前の受け取り後の前記ソースデータベースにおける変化を示す取引ログを表す情報を、前記ソースデータベースから受け取ることをさらに含む、請求項１に記載の方法。
【請求項１６】
既定のポリシーに基づいて前記ソースデータベースに関連する取引ログを管理することをさらに含む、請求項１５に記載の方法。
【請求項１７】
既定のポリシーは、前記ソースデータベースの取引ログを受け取るスケジュールを指定する、請求項１５に記載の方法。
【請求項１８】
前記スケジュールは、前記ソースデータベースの取引ログを受け取る暦日を指定する、請求項８に記載の方法。
【請求項１９】
前記既定のポリシーは、保存期間後に取引ログを消去するスケジュールを指定する、請求項７に記載の方法。
【請求項２０】
前記既定のポリシーは、前記ストレージシステムの利用可能スペースに基づいて、取引ログの消去を指定する、請求項７に記載の方法。
【請求項２１】
前記データベースサーバは第１のデータベースサーバであり、前記ソースデータベースは第２のデータベースサーバであり、前記第１のデータベースサーバのバージョンは前記第２のデータベースサーバのバージョンとは異なる、請求項１に記載の方法。
【請求項２２】
前記データベースサーバは第１のデータベースサーバであり、前記ソースデータベースは第２のデータベースサーバであり、前記第１のデータベースサーバは、前記第２のデータベースサーバが稼働しているするオペレーティングシステムとは異なるオペレーティングシステムで稼働している、請求項１に記載の方法。
【請求項２３】
前記ファイルセットは第１のファイルセットであり、前記仮想データベースは第１の仮想データベースであり、前記データベースサーバは第１のデータベースサーバであり、前記方法は、
前記ソースデータベースの時点コピーに関連する、前記ストレージシステムにおける前記データベースブロックにその各ファイルがリンクされ、第２の仮想データベースのための第２のファイルセットを作成することと、
前記第２の仮想データベースに関連する前記第２のファイルセットを、前記第２のファイルセットからの読み出し、およびそれへの書き込みが可能になるように第２のデータベースサーバにマウントすることと、をさらに含む、請求項１に記載の方法。
【請求項２４】
前記第１のファイルセットに関連する前記記憶したデータベースブロックの少なくとも一部は、前記第２のファイルセットにも関連する、請求項２３に記載の方法。
【請求項２５】
前記第１の仮想データベースへのデータの書き込みリクエストを、前記データベースサーバから受信することと、
前記第１の仮想データベースに関連する前記第１のファイルセット内のファイルに関連するデータベースブロックを特定することと、をさらに含む、請求項２３に記載の方法。
【請求項２６】
前記ファイルセットは第１のファイルセットであり、前記仮想データベースは第１の仮想データベースであり、前記データベースサーバは第１のデータベースサーバであり、前記時点コピーは第１の時点コピーであり、前記方法は、
前記ソースデータベースの第２の時点コピーに関連する、前記ストレージシステムにおける前記データベースブロックにその各ファイルがリンクされている、第２の仮想データベースに関する第２のファイルセットを作成することと、
前記第２の仮想データベースに関連する前記第２のファイルセットを、前記第２のファイルセットからの読み出し、およびそれへの書き込みが可能になるように第２のデータベースサーバにマウントすることと、をさらに含む、請求項１に記載の方法。
【請求項２７】
前記第１のファイルセットに関連する前記記憶したデータベースブロックの少なくとも一部は、前記第２のファイルセットにも関連し、
前記第２の仮想データベースに関連する前記第２のファイルセットにも関連する前記データベースブロックに応答して、前記データベースブロックをコピーすることと、
前記コピーしたデータベースブロックと前記ファイルとをリンクして、前記データを前記コピーしたデータベースブロックに書き込むことと、をさらに含む、請求項２５に記載の方法。
【請求項２８】
前記時点コピーの受け取りは、前記ソースデータベースに関連するデータベースブロックが提供するデータを含む、前記時点コピーに対応するデータストリームの受け取りを含む、請求項１に記載の方法。
【請求項２９】
前記受け取ったデータストリームを解析して、データベースブロックを特定することと、
前記特定したデータベースブロックを記憶することと、をさらに含む、請求項２８に記載の方法。
【請求項３０】
前記時点コピーに対応するデータストリームは、以前の時点コピーの受け取り後に変化した前記ソースデータベース内のデータベースブロックを含む、請求項２８に記載の方法。
【請求項３１】
前記受け取ったデータストリームを解析してデータベースブロックを特定することと、前記データストリームを処理するために、前記データベースブロックのメタデータを解析して前記データベースブロックの全長を決定することと、をさらに含む、請求項２８に記載の方法。
【請求項３２】
前記受け取ったデータストリームを解析してデータベースブロックを特定することと、前記データベースブロックのメタデータを解析して前記データベースブロックを記憶するか否かを決定することと、をさらに含む、請求項２８に記載の方法。
【請求項３３】
前記受け取ったデータストリームを解析してデータベースブロックを特定することと、一時データベースブロック、空データベースブロック、または前記ソースデータベースの時点コピーの以前の取得後から変化しなかったデータベースブロックのいずれかである前記データベースブロックを記憶しないことを決定することと、をさらに含む、請求項２８に記載の方法。
【請求項３４】
階層メモリストレージデバイス内に前記取引ログを表す前記情報を記憶することをさらに含む、請求項１５に記載の方法。
【請求項３５】
前記ファイルセットのマウンティングは、ストレージプロトコルに依存しない、請求項１に記載の方法。
【請求項３６】
前記ストレージシステムに記憶する前に、前記データベースブロックを圧縮することをさらに含む、請求項１に記載の方法。
【請求項３７】
前記ソースデータベースは、生産データベースの一部である、請求項１に記載の方法。
【請求項３８】
前記生産データベースの前記一部は、テーブルスペースを備えている、請求項３７に記載の方法。
【請求項３９】
前記生産データベースの前記一部は、データベーステーブルを少なくとも備えている、請求項３７に記載の方法。
【請求項４０】
前記ファイルセットにリンクされている前記データベースブロックは、前記ソースデータベースの一部を備えている、請求項１に記載の方法。
【請求項４１】
前記ファイルセットにリンクされている前記データベースブロックは、前記ソースデータベースに関連するデータベーステーブルを少なくとも備えている、請求項１に記載の方法。
【請求項４２】
前記仮想データベースは、全ての情報にアクセス可能な権限を有する仮想データベースである、請求項１に記載の方法。
【請求項４３】
前記仮想データベースは、秘密情報ではないと見なされるサブセット情報にアクセス可能な、権限を有さない仮想データベースである、請求項１に記載の方法。
【請求項４４】
前記仮想データベースは、秘密情報を隠す、権限を有さない仮想データベースである、請求項４３に記載の方法。
【請求項４５】
時点コピーとブックマークトークンとを関連付けることと、
前記ブックマークトークンを指定して仮想データベースの作成に用いられる、前記ソースデータベースの前記時点コピーを指定することと、をさらに含む、請求項１に記載の方法。
【請求項４６】
ブックマークトークンを記憶することをさらに含む、請求項４４に記載の方法。
【請求項４７】
前記仮想データベースと、所定の権限を有するユーザへの情報のアクセスを指定する１つ以上の権限とを関連づけることをさらに含む、請求項１に記載の方法。
【請求項４８】
権限は、ポリシー管理を許可する管理者権限、ＶＤＢのプロビジョニングを許可する所有者権限、およびＶＤＢに関連する情報の確認を許可する監査員権限のいずれかである、請求項１に記載の方法。
【請求項４９】
仮想データベースを作成するためのコンピュータ実装システムであって、
コンピュータプロセッサと、前記コンピュータプロセッサを実行するように構成されたコンピュータプログラムモジュールを記憶するコンピュータ可読ストレージ媒体とを備えており、前記コンピュータプログラムモジュールが、
複数のデータベースブロックを備えているソースデータベースの異なる時点のコピーである種々の時点コピーを受け取るように構成された時点コピーマネージャモジュールと、
前記ソースデータベースの複数の種々の時点コピーについての複数のデータベースブロックをストレージシステムに記憶するように構成されたストレージ割当マネージャモジュールであって、該記憶した複数のデータベースブロックの少なくとも一部が前記ソースデータベースの複数の時点コピーに関連している、前記ストレージ割当マネージャモジュールと、
１つの仮想データベースのために、複数ファイルからなるファイルセットを作成するように構成された仮想データベースマネージャモジュールであって、該ファイルセット内の各ファイルが、前記ソースデータベースの１つの時点コピーに関連した前記ストレージシステム内の前記データベースブロックにそれぞれリンクされており、前記１つの仮想データベースの１以上のデータベースブロックが別の仮想データベースと共有される、前記仮想データベースマネージャモジュールと、
前記１つの仮想データベースに関連する前記ファイルセットを、該ファイルセットに対する読み出し及び書き込みが可能なようにデータベースサーバにマウントするように構成されたファイル共有マネージャモジュールと、
を備えるシステム。
【請求項５０】
前記仮想データベースマネージャモジュールは、
前記仮想データベースに関連する前記ファイルセット内のデータの読み出しリクエストを、前記データベースサーバから受信し、
前記ファイルセット内のファイルに関連する少なくとも１つのデータベースブロック内のデータにアクセスし、かつ、
前記読み出しリクエストに応答して前記データを送信するようにさらに構成されている、請求項４９に記載のシステム。
【請求項５１】
前記仮想データベースマネージャモジュールは、
第１の仮想データベースへのデータの書き込みリクエストを、前記データベースサーバから受け取り、
前記第１の仮想データベースに関連する第１のファイルセット内のファイルに関連するデータベースブロックを特定し、
第２の仮想データベースに関連する第２のファイルセットにも関連する前記データベースブロックに応答して、前記データベースブロックをコピーし、かつ、
前記コピーしたデータベースブロックと前記ファイルとをリンクして、前記データを前記コピーしたデータベースブロックに書き込むようにさらに構成されている、請求項４９に記載のシステム。
【請求項５２】
前記時点コピーマネージャモジュールは、前記ソースデータベースの時点コピーを受け取るためのリクエストを送信するようにさらに構成されている、請求項４９に記載のシステム。
【請求項５３】
前記時点コピーマネージャモジュールは、前記ソースデータベースのデータベースブロックが提供するデータを含むデータストリームを含む時点コピーを受け取る、請求項４９に記載のシステム。
【請求項５４】
前記時点コピーマネージャモジュールは、前記受け取ったデータストリームを解析して記憶するデータベースブロックを特定するようにさらに構成されている、請求項４９に記載のシステム。
【請求項５５】
前記データストリームは、以前の時点コピーの受け取り後に変化した前記ソースデータベース内のデータベースブロックを含む、請求項５３に記載のシステム。
【請求項５６】
仮想データベースを作成するためのコンピュータ実行可能コードを記憶するコンピュータ可読記憶媒体であって、前記コードは、
複数のデータベースブロックを備えているソースデータベースの異なる時点のコピーである種々の時点コピーを受け取るように構成された時点コピーマネージャモジュールと、
前記ソースデータベースの複数の種々の時点コピーについての複数のデータベースブロックをストレージシステムに記憶するように構成されたストレージ割当マネージャモジュールであって、該記憶した複数のデータベースブロックの少なくとも一部が前記ソースデータベースの複数の時点コピーに関連している、前記ストレージ割当マネージャモジュールと、
１つの仮想データベースのために、複数ファイルからなるファイルセットを作成するように構成された仮想データベースマネージャモジュールであって、該ファイルセット内の各ファイルが、前記ソースデータベースの１つの時点コピーに関連した前記ストレージシステム内の前記データベースブロックにそれぞれリンクされており、前記１つの仮想データベースの１以上のデータベースブロックが別の仮想データベースと共有される、前記仮想データベースマネージャモジュールと、
前記１つの仮想データベースに関連する前記ファイルセットを、該ファイルセットに対する読み出し及び書き込みが可能なようにデータベースサーバにマウントするように構成されたファイル共有マネージャモジュールと、を備えている、コンピュータ可読記憶媒体。
【請求項５７】
前記ソースデータベースは第１のソースデータベースであり、前記複数のデータベースブロックは第１の複数のデータベースブロックであり、前記複数ファイルからなるファイルセットは第１のファイルセットであり、前記仮想データベースは第１の仮想データベースであり、前記データベースサーバは第１のデータベースサーバであり、
第２の複数のデータベースブロックを備えている第２のソースデータベースの時点コピーを受け取ることと、
前記第２のソースデータベースの前記時点コピーについての複数のデータベースブロックを前記ストレージシステムに記憶することであって、該記憶した複数のデータベースブロックの少なくとも一部が前記第２のソースデータベースの複数の時点コピーに関連していることと、
１つの第２の仮想データベースのために、複数ファイルからなる第２のファイルセットを作成することであって、該複数ファイルからなる第２のファイルセットが、前記第２のソースデータベースの前記時点コピーに関連した前記ストレージシステム内の前記データベースブロックにリンクされていることと、
前記第２の仮想データベースに関連する前記第２のファイルセットを、該第２のファイルセットに対する読み出し及び書き込みが可能なように第２のデータベースサーバにマウントすること、
を含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にデータベースに関するものであり、特に、データベースおよびデータベースに基づくライフサイクルワークフローを管理するためのストレージ効率システムに関するものである。
【背景技術】
【０００２】
データベースは、組織に不可欠なデータを記憶するため、組織のＩＴンフラストラクチャの重要な部分となっている。組織が利用する情報の増大に伴い、情報を記憶するデータベースの管理に要求されるインフラストラクチャの複雑性も増す。インフラストラクチャの複雑性が増すと、データベースおよびデータベースに応じて決まるアプリケーションの管理に要求される資源も増大する。これにより費用が増大する。この費用には、データベースを管理するハードウェアに関する費用に加えて、ハードウェアの維持に必要な補助人員の人件費も含まれ得る。インフラストラクチャの複雑性が増すと、データベースに関連するメンテナンス操作にも影響を及ぼし、例えば、バックアップおよび復旧操作が顕著に長くなる。
【０００３】
組織の標準的なインフラストラクチャ環境では、生産データベースサーバが、組織の日常取引を管理するアプリケーションを稼働する。データベースのコピーにより、生産データベースまたは生産データベースに応じて決まるアプリケーションにおける変化を検証して、生産環境を保護する。生産データベースのコピーは、生産データベースおよび生産データベースに応じて決まるアプリケーションに関連するライフサイクルワークフローのいくつかの段階において要求され得る。例えば、生産データベースに組み込まれる、変更可能なライフサイクルにおける段階は、開発段階、同調段階、検証段階、品質保証段階、認証段階、訓練段階、および段階分け段階を含み得る。段階ごとの生産データベースのコピーには、余分かつ高価なハードウェアインフラストラクチャに加えて、データコピーに必要な何日または何週間という時間に伴う費用が必要となる。ハードウェアの追加にはさらに、床面積の要求並びに電力および冷却に伴う費用などの、ハードウェアの物理的記憶に伴う追加費用が必要となる。余分なハードウェアはまた、通常、利用可能な資源の使用を非効率的にする。
【０００４】
ライフサイクルワークフローは複雑な場合があり、多くの場合に複数のチーム間の連携が必要となる。それ故、ライフサイクルにおける特定段階のサポートなどの特定の目的に使用可能なデータベースの構成には、データベースに関連するさらなる処理が必要となることがある。例えば、データベースは多くの場合に重大な秘密情報を含み、環境管理データベースにとって安全性および完全性が重視すべき事柄となる。この結果、大抵は、異なる段階を操作する異なるチームに要求されるアクセス許可はそれぞれ異なる。例えば、生産データベースサーバを管理する人員がアクセス可能なデータは、多くの場合に、ライフサイクルの検証段階の操作者がアクセス可能なデータとは異なる。これにより、データベースに関連する任意のライフサイクルワークフローの種々の段階における許可の管理がさらに複雑になる。
【発明の概要】
【課題を解決するための手段】
【０００５】
既存のデータベース技術では解決できない要求に対処するために、本発明の実施形態は、ストレージおよび他のコンピュータ資源を効率的に用いる仮想データベースを実現する。仮想データベース（ＶＤＢ）の作成方法は、ソースデータベースから種々の時点コピーを読み出すことを含む。これらの実施形態では、「ソースデータベース」は、企業内のデータベース、例えば、生産データベース、予備データベース、およびライフサイクルにおける任意の他のデータベースの物理的コピーを含む。以下の本発明の詳細な説明では、「生産データベース」と「ソースデータベース」は同一のものを意味し、互いに置換可能である。複数のデータベースブロックがソースデータベースから読み出され、ストレージシステムに記憶される。データベースブロックはデータベースに用いられるデータユニットであり、ストレージに記憶される一定のバイト数を有する。データベースブロックはページとも呼ばれ得る。データベースブロックの一部は、データベースブロックに関するメタデータを記憶する。データベースブロックのメタデータに記憶され得る情報の例は、データベースブロックに記憶されるデータに関連する情報、データベースの一部であるデータベースブロックのオブジェクトに関する情報、またはデータベースブロック内のデータが更新された時を示す情報を含む。データベースブロックが更新された時を示す情報は、それらの更新時刻に基づいてデータベースブロックの相対順序を決定するために利用され得る。ソースデータベースから取得され、ストレージシステムが記憶したデータベースブロックは、ソースデータベースの種々の時点コピーに対応し、データベースブロックの少なくとも一部は、ソースデータベースの複数の時点コピーに関連する。仮想データベース用のファイルセットを作成する。ＶＤＢにおいて作成されたファイルセット内の各ファイルは、ソースデータベースの時点コピーに関連するストレージシステムのデータベースブロックにリンクされている。ＶＤＢに関連するファイルセットがデータベースサーバに組み込まれると、データベースサーバはファイルセットからの読み出し、およびそれへの書き込みが可能になる。一実施形態では、仮想データベースは、別の仮想データベースの時点コピーに基づいて作成され得る。
【０００６】
一実施形態では、ソースデータベースの同一の時点コピーに関連するデータベースブロックに基づいて複数のＶＤＢを作成し得る。代替的に、ソースデータベースの種々の時点コピーに関連する２つのＶＤＢを作成してもよい。ストレージシステムが記憶したデータベースブロックを、互いに異なるＶＤＢに関連するファイルセット間で共有し得る。ストレージシステムが記憶したデータベースブロックは、ソースデータベースの同一の時点コピーに関連するＶＤＢ間、またはソースデータベースの種々の時点コピーに関連するＶＤＢ間で共有され得る。一実施形態では、リンク操作、ローディング、またはプロビジョニング操作の前にスクリプト前操作が実行されてもよい。スクリプト前操作により、ソースデータベースに記憶されない処理情報などのユーザ指定操作が実行可能になる。同様に、リンク操作、ローディング、またはプロビジョニング操作後に、スクリプト後操作が実行され得る。スクリプト後操作はスクリプト前操作に関連し得、スクリプト前操作における処理情報をさらに処理する。
【０００７】
一実施形態では、ＶＤＢに記憶したデータを読み出すための、データベースサーバからのリクエストを受信できる。リクエストされたデータはデータベースブロックからアクセスされ、読み出しリクエストに応答してデータベースサーバに送信される。別の実施形態では、データベースサーバからのリクエストを受信し得、そのデータをＶＤＢに書き込む。ＶＤＢに関連するファイルセット内のファイルに関連するデータベースブロックは、書き込みリクエストと共に送られたデータを書き込むために特定される。特定されたデータベースブロックが第２のＶＤＢにも関連する場合には、データベースブロックをコピーする。コピーしたデータベースブロックをファイルにリンクし、書き込みリクエストに関するデータを、コピーしたデータベースブロックに書き込む。コピーされる元のデータベースブロックが第２のＶＤＢとの関連性を維持するため、第２のＶＤＢは書き込み操作でも変化しなかったデータを確認できる。
【０００８】
本要約および以下の詳細な説明に記述する特徴および利点を全て含む訳ではない。多くのさらなる特徴および利点が、図面、明細書および請求項を確認した当業者に明らかとなる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に従う、生産データベースからデータベースストレージシステムに情報をコピーする方法、およびファイル共有システムを利用してプロビジョニングした仮想データベースを示す図である。
【００１０】
【図２ａ】本発明の実施形態に従う、仮想データベースのソースである生産データベースシステムのデータベースサーバのバージョンとは異なるバージョンの仮想データベースシステムが稼働する方法を示す図である。
【００１１】
【図２ｂ】本発明の実施形態に従う、仮想データベースのソースである生産データベースシステムのデータベースサーバを実行するオペレーティングシステムとは異なるオペレーティングシステムにより実行されるデータベースサーバを用いて仮想データベースシステムが稼働し得る方法を示す図である。
【００１２】
【図３】本発明の実施形態に従う、生産データベースが提供する情報のストレージ効率のよいコピー、および仮想データベースのプロビジョニングを実行するシステム構築を示す概略図である。
【００１３】
【図４】本発明の実施形態に従う、データベースストレージシステムにおける生産データベースのストレージ効率のよいコピーを実現するための、データベースストレージシステムの構成要素と、生産データベースシステムの構成要素とのやりとりを示す図である。
【００１４】
【図５】本発明の実施形態に従う、生産データベースシステムから受け取ったデータストリームをデータベースストレージシステムにおいて処理して、ストレージ効率のより方法でデータを保存する方法を説明するプロセスフローチャートである。
【００１５】
【図６】本発明の実施形態に従う、生産データベースシステムからデータベースストレージシステムに取引ログファイルをコピーして、所定の時点における仮想データベースのプロビジョニングを可能にする方法を説明するプロセスフローチャートである。
【００１６】
【図７】本発明の実施形態に従う、生産データベースシステムと比較したデータベースストレージシステム内の取引ログの記憶に用いられるファイルを示す図である。
【００１７】
【図８】本発明の実施形態に従う、データベースストレージシステムの様々な時点においてデータベースに関するデータを保持する方法を示す図である。
【００１８】
【図９】本発明の実施形態に従う、所定の時点において仮想データベースを作成する方法を説明するプロセスフローチャートである。
【００１９】
【図１０】本発明の実施形態に従う、所定の時点におけるデータベースの読み出し−書き込みコピーを作成した、仮想データベースのプロビジョニングを示す図である。
【００２０】
【図１１】本発明の実施形態に従う、図１０とは異なる時点におけるデータベースの読み出し−書き込みコピーを作成した、仮想データベースのプロビジョニングを示す図である。
【００２１】
【図１２】本発明の実施形態に従う、ストレージシステムデータストアが記憶したデータベースブロックが、異なるＶＤＢにおいて作成されたファイル構造を共有する方法を示す図である。
【００２２】
【図１３】本発明の実施形態に従う、データベースの読み出し−書き込みコピーを作成した、生産データベースシステムからコピーした取引ログに基づく仮想データベースのプロビジョニングを示す図である。
【００２３】
【図１４】ある例示の環境において、データベースまたはデータベースに応じて決まるアプリケーションを変化させる、データベースのライフサイクルワークフローを示す図である。
【００２４】
【図１５】従来方法を用いる、データベースおよびデータベースアプリケーションに関連するプログラムコードの検証および開発のためのワークフローを実施するシステム環境を示す図である。
【００２５】
【図１６】本発明の実施形態に従う、ＶＤＢを用いたデータベースおよびデータベースアプリケーションに関連するプログラムコードの検証および開発のためのワークフローを実施するシステム環境を示す図である。
【００２６】
【図１７】本発明の実施形態に従う、ＶＤＢを用いたデータベースおよびデータベースアプリケーションに関連するプログラムコードの複数の場所における検証および開発のためのワークフローを実施するシステム環境を示す図である。
【００２７】
【図１８ａ】従来方法における、データベースのバックアップおよび復旧のためのワークフローを実施するシステム環境を示す図である。
【００２８】
【図１８ｂ】本発明の実施形態に従う、ＶＤＢを用いたデータベースのバックアップおよび復旧のためのワークフローを実施するシステム環境を示す図である。
【００２９】
【図１９】従来方法における、ある機械から別の機械へのデータベース内の情報のコピーに要求される一般的シナリオ用のワークフローを実施するシステム環境を示す図である。
【００３０】
【図２０】本発明の実施形態に従う、ある機械から別の機械へのデータベース内の情報のコピーに要求される一般的シナリオ用のＶＤＢに基づいてワークフローを実施するシステム環境を示す図である。
【００３１】
【図２１】本発明の別の実施形態に従う、ある機械から別の機械へのデータベース内の情報のコピーに要求されるシナリオ用のＶＤＢに基づいてワークフローを実施するシステム環境を示す図である。
【００３２】
【図２２】本発明の実施形態に従う、ある機械から、生産データベースシステムとは異なる別の機械へのデータベース内の情報のコピーに要求される一般的シナリオ用のＶＤＢに基づいてワークフローを実施するシステム環境を示す図である。
【００３３】
【図２３】従来方法を用いる、データベースからデータウェアハウスおよびデータマートを作成するシナリオ用のワークフローを実施するシステム環境を示す図である。
【００３４】
【図２４】本発明の実施形態に従う、データベースからデータウェアハウスおよびデータマートを作成するシナリオ用のワークフローを実施する、ＶＤＢに基づくシステム環境を示す図である。
【００３５】
【図２５】機械可読媒体から命令を読み出し得、プロセッサまたはコントローラによりその命令を実行し得るコンピューティングマシンの実施形態を示す図である。
【発明を実施するための形態】
【００３６】
図面は、説明のみを目的として本発明の種々の実施形態を示す。下の記述から、本明細書に記載された本発明の原理から逸脱することなく、本明細書に記述する構造および方法の代替的な実施形態が用いられ得ることを当業者は理解する。
【００３７】
仮想データベースシステム
本発明の特定の実施形態では、特定の時点において、生産データベースまたは仮想データベースの状態に基づいて１つ以上の仮想データベースを作成し、その後、所望に応じて、仮想データベースに個別にアクセスおよびそれを修正することができる。データベースは、コンピュータが実施するアプリケーションに利用される、コンピュータにおいて記憶されるデータを含む。データベースサーバは、データベースと相互に通信できるコンピュータプログラムであり、データベースに記憶されたデータへのアクセスなどのデータベースサービスを提供する。データベースサーバは、ＯＲＡＣＬＥ、ＳＹＢＡＳＥ、ＭＩＣＲＯＳＯＦＴ  ＳＱＬ  ＳＥＲＶＥＲ、ＩＢＭのＤＢ２、ＭＹＳＱＬなどが提供するデータベース管理システムなどの市販のプログラムを含む。データベースは、関係モード、オブジェクトモデル、階層モード、またはネットワークモデルなどのデータベースモデルを用いて実施され得る。「生産データベース」という用語は特定例では、この技術の有用な用途を説明するために用いられるが、生産データベースとしてデータベースを用いるかどうかに関わらず、開示する技術は任意のデータベースに用いられ得ることが理解される。実施形態はさらに、生の生産データベースではなく、生産データベースのストレージレベルスナップショット、または生産データベースのクローンを用いて仮想データベースを作成してもよい。仮想データベースは、データベースファイルの物理的実施が、データベースサーバによるデータベースファイルの論理的使用と分離しているという意味で「仮想」である。
【００３８】
一実施形態では、生産データベースが提供する情報を、定期的に等、様々な時間においてストレージシステムにそれぞれコピーする。これらのコピーにより、これら種々の時点（複数の異なる時点）における生産データベースに関連するデータベースファイルをそれぞれ復元できる。この情報は必要な場合にのみコピーされるように、効率的な方法でストレージシステムが管理し得る。例えば、データベースの一部が以前にコピーしたバージョンから変化していない場合には、変化していない部分はコピーする必要がない。時点間において作成した仮想データベースは、その時点で利用可能なデータベース情報を含むファイルセットとして記憶される。各ファイルはデータベースブロックセットおよびデータベースブロックを参照するためのデータ構造を含む。一部の実施形態では、データベースブロックは効率的な記憶のために圧縮され得る。一部の実施形態では、データベースブロックは記憶するデータの安全性を高めるために暗号化された形式でストレージシステムデータストア３９０に記憶されてもよい。データベースサーバに関する要求に応じて、以前の時点における生産データベースの状態に対応する生産データベースに関するデータベースファイルを作成することにより、データベースサーバに仮想データベースを作成できる。仮想データベースに対応するファイルは、ファイル共有機構を用いてデータベースサーバが使用できるようにされ、ファイル共用機構は仮想データベースとストレージシステムが記憶した適切なデータベースブロックとをリンクする。仮想データベースをデータベースサーバに対して利用可能にする処理は、仮想データベースの「プロビジョニング」とも呼ばれる。一部の実施形態では、仮想データベースのプロビジョニングは、仮想データベースに基づいて稼働データベースサーバを構築する処理の管理を含む。複数のＶＤＢが、同一の時点における生産データベースの状態に基づいてプロビジョニングされてもよい。これに対して、種々のＶＤＢが、同一の生産データベースまたは互いに異なる生産データベースの異なる時点における状態に基づいてプロビジョニングされてもよい。一部の実施形態では、プロビジョニングされたデータベースの健全性およびユーザ動作をモニタする。データベースストレージシステム１００には、これらのイベントが通知される。データベースストレージシステム１００は、既定の規則またはユーザ指定規則のいずれかに基づいてこれらのイベントに対処する。例えば、ユーザ動作が仮想データベースの使用可能性に影響を及ぼす場合には、モニタリングコンソールに警告メッセージを表示するか、ユーザに電子メールを送信する。仮想データベースがプロビジョニングされたデータベースサーバは、その後、ストレージシステムが記憶したファイルを読み出すか、そこに書き込むことができる。データベースブロックは、種々の異なるＶＤＢにその各々が関連する異なるファイル間で共有され得る。特に、対応する仮想データベースシステム１３０がデータベースブロック内の情報を読み出すのみで、データベースブロックに書き込まない場合に、データベースブロックは共有される。一実施形態では、仮想データベースマネージャ３７５が、必要な場合にのみデータベースブロックをコピーする。例えば、特定のデータベースブロックが、同一のデータベースブロックを読み出す複数のＶＤＢ間で共有され得る。ただし、仮想データベースシステム１３０の１つがデータベースブロックの書き込みを試みる場合には、書き込む操作が、その仮想データベースシステム１３０に対応するＶＤＢに対するデータベースブロックと、他のＶＤＢに対するデータベースブロックとが異なるようにさせるので、データベースブロックは個々にコピーされる。
【００３９】
図１は情報がどのように生産データベースからデータベースストレージシステムにコピーされるか、および情報がファイル共有システムを用いてどのように仮想データベースとしてプロビジョニングされるかの実施形態を示す図である。生産データベースシステム１１０は、組織のデータを管理する。一部の実施形態では、生の生産データベースではなく、生産データベースのストレージレベルスナップショット、または生産データベースのクローンから情報がコピーされ得る。データベースストレージシステム１００は、以下に詳細に記載するように、１つ以上の生産データベースシステム１１０からデータベースに関連するデータを取得し、効率的な方法でデータを記憶する。データベース管理ユーザインターフェース１４０は、データベース管理者がデータベースストレージシステム１００がサポートする種々の機能を実行できるようにする。
【００４０】
管理システム１４０からのリクエストに応答するか、所定のスケジュールに基づいて、データベースストレージシステム１００はデータに関連するリクエスト１５０を生産データベースシステム１１０に送信し得る。生産データベースシステム１１０はこのリクエストに応答して、生産データベースが記憶している情報をデータストリーム１６０として送信する。リクエスト１５０は定期的に送られ、生産データベースシステム１１０はこのリクエストに応答して、前回の応答１６０の送信後に、生産データベースに記憶したデータの変化を示す情報を送信する。データベースストレージシステム１００は、生産データベースシステム１１０が送信したデータ１６０を受け取って、そのデータを記憶する。データベースストレージシステム１００は、受け取ったデータ１６０を解析して、その情報を記憶するか、その情報が以前の時点におけるデータベースの復旧に有用でない場合にはそれをスキップするか否かを決定できる。データベースストレージシステム１００は、例えば、変化したデータベースブロックのバージョンを保持し、変化していないデータベースブロックを再利用することにより、情報を効率的に記憶する。一実施形態では、データベースストレージシステム１００は階層キャッシュシステムを利用し、そこではキャッシュ読み出し操作、および磁気ディスクへの書き込み操作のログの保持のために、高速の半導体ドライブ（ＳＳＤ）または同等のストレージデバイスが構成される。
【００４１】
仮想データベースを作成するために、データベースストレージシステム１００は、所定の時点における生産データベースシステム１１０に対応する情報を示すファイルを作成する。データベースストレージシステム１００は、ファイル共有システム１２０を利用して仮想データベースシステム１３０に対して対応するファイルを公開１７０する。仮想データベースシステム１３０は、データベースストレージシステム１００が公開１７０したファイルで動作し得るデータベースサーバを稼働する。それ故、ストレージ効率のよい方法で、生産データベースの仮想コピーを所定の時点に対する仮想データベースシステム１３０のために作成する。
【００４２】
図２ａ、図２ｂは仮想データベースのソースである生産データベースシステム１１０とは異なるデータベースサーバのバージョンおよび／またはオペレーティングシステムを、仮想データベースシステム１３０が稼働し得ることを示す図である。データベースストレージシステム１００に記憶される仮想データベースファイルは、データベースサーバ２３０がデータベースサーバ２０５とは異なるバージョンであり、かつ／またはオペレーティングシステム２４０がオペレーティングシステム２１０とは異なる場合でも、仮想データベースシステム１３０がファイルを動作するように、適切に修正される。図２ａに示すように、仮想データベースシステム１３０において稼働するデータベースサーバ２３０のバージョンＶｙは、生産データベースシステム１１０において稼働するデータベースサーバ２０５のバージョンＶｘとは異なる。同様に、図２ｂに示すように、仮想データベースシステム１３０において稼働するオペレーティングシステム２４０はＯＳｙであり、生産データベースシステム１１０において稼働するオペレーティングシステムＯＳｘとは異なる。一実施形態では、サーバ２３０および２０５は、異種のデータベースソフトウェアプログラムを稼働できる。これにより、データベースを稼働するために異なるオペレーティングシステムまたはデータベースサーバのバージョンを試みる能力が与えられる。この能力により、データベースおよび／またはアプリケーションのアップグレード、パッチング、またはデータ移動において、生産システムにいかなる影響をも与えることなく、操作を容易に検証できる。操作は、その後、生産システムに配置される前に、隔離環境で認証され得る。一部の実施形態では、データベースストレージシステム１００は、ホストコンピュータにおいて複数のオペレーティングシステムを同時に稼働可能であるプラットフォーム仮想ソフトウェアまたはサーバ仮想ソフトウェアにより提供されるバーチャルマシンにおいて実行され得る。
【００４３】
システム構築
図３は生産データベースから情報のストレージ効率のよいコピーを作成すること、およびその情報を利用して１つ以上の仮想データベースのプロビジョニングの実行に適したシステム環境を示すハイレベルブロック図である。システム環境は、１つ以上の生産データベースシステム１１０、データベースストレージシステム１００、管理システム１４０、および１つ以上の仮想データベースシステム１３０を備えている。図３に示すシステムは、必要に応じて、ネットワーク上で互いに通信できる。
【００４４】
生産データベースシステム１１０は、通常、組織により利用され、その日常取引を保持する。例えば、オンライン書籍販売サイトは、生産システム１１０内の書籍注文、書籍返却、または在庫管理に関する全ての進行中の取引を保存できる。生産システム１１０は、データベースサーバ３４５、生産ＤＢデータストア３５０、ベンダーインターフェースモジュール３３５、および生産システムライブラリ３８５を含む。代替的な構成では、生産データベースシステム１１０は、異なるおよび／または追加のモジュールを含んでもよい。
【００４５】
生産ＤＢデータストア３５０は、企業の日常取引を示す情報などに相当し得る、データベースに関連するデータを記憶する。データベースサーバ３４５は、データベースサービスおよびアプリケーションプログラミングインターフェース（ＡＰＩ）を提供するコンピュータプログラムであり、生産ＤＢデータストア３５０が記憶したデータを管理する。生産システムライブラリ３８５は、生産データベースシステム１１０から情報を抽出するのに有用なＡＰＩを備える。ベンダーインターフェースモジュール３３５は、ベンダーが規定するＡＰＩ、例えば、以前の時点から変化したデータベースブロックを取得するＡＰＩに相当し、データベースサーバ３４５が提供する機能をカスタマイズする。ベンダーインターフェースモジュールの例には、ＲＭＡＮ  ＡＰＩを実施するベンダーであるＯＲＡＣＬＥが提供するデータベースサーバのプログラムコードがある。ＭＩＣＲＯＳＯＦＴのＳＱＬ  ＳＥＲＶＥＲまたはＩＢＭのＤＢ２などの他のベンダーが提供するデータベースサーバも、類似のＡＰＩを有する。一実施形態では、ベンダーインターフェースモジュール３３５は、ファイル共有システム１２０に類似するファイル共有システムを用いてデータベースストレージシステム１００において生産データベースシステム１１０の生産ＤＢデータストア３５０をマウントする（利用可能に取り付ける）。データベースストレージシステム１００に生産ＤＢデータストア３５０をマウントすることにより、生産データベースシステム１１０が記憶した情報を、データベースストレージシステム１００に転送できる。
【００４６】
生産システムライブラリ３８５は、ベンダーインターフェースモジュール３３５の要求に応じて、種々の方法により実装され得る。一実施形態では、ベンダーインターフェースモジュール３３５は、生産システムライブラリ３８５に実装された機能を呼び出すために生産システムライブラリ３８５をロードする。例えば、生産システムライブラリ３８５は、Ｃ／Ｃ＋＋実行可能プログラム、またはＣ／Ｃ＋＋プログラムが生成した２進コードとやりとりするＪＡＶＡ（登録商標）  ＮＡＴＩＶＥ  ＩＮＴＥＲＦＡＣＥを利用するＪＡＶＡ（登録商標）プログラムにより呼び出され得る実行可能プログラムコードを含む「．ｓｏ」または「．ＤＬＬ」ファイル拡張子を有する共有のオブジェクトファイルである。代替的に、生産システムライブラリ３８５は、ＪＡＶＡ（登録商標）プログラミング言語を用いて実装され得、「．ｊａｒ」拡張子を有するファイルとして生産データベースシステム１１０にインストールされ得る。ＪＡＶＡ（登録商標）プログラムは、実行用に生産データベースシステム１１０において稼働するＪＡＶＡ（登録商標）  ＶＩＲＴＵＡＬ  ＭＡＣＨＩＮＥを要求する。別の実施形態では、生産システムライブラリ３８５の一部は、実行可能な「．ｓｏ」の共有オブジェクトファイルとして実装され得、生産システムライブラリ３８５の別の部分は、「．ｊａｒ」ファイルとしてインストールされたＪＡＶＡ（登録商標）プログラムとして実装され得る。
【００４７】
ベンダーインターフェースモジュール３３５は、データベースストレージシステム１００からのリクエストに応答して、リクエストされた情報を生産ＤＢデータストア３５０から収集し、収集した情報をデータベースストレージシステム１００に返す。ベンダーインターフェースモジュール３３５は、生産ＤＢデータストア３５０から情報を取得するためのリクエストをデータベースサーバ３４５に送信できる。ベンダーインターフェースモジュール３３５は、生産システムライブラリ３８５のプログラムコードをロードして、それを起動してそのデータストリームを、さらなる処理のためにデータベースストレージシステム１００に送信する。一部の実施形態では、ベンダーインターフェースモジュール３３５は、必要なデータベースブロックを取得するためのリクエストをデータベースサーバ３４５に送信する代わりに、生産ＤＢデータストア３５０と直接通信してもよい。他の実施形態では、ベンダーインターフェースモジュール３３５は、生の生産データベースではなく、生産データベースのストレージレベルスナップショットまたは生産データベースのクローンから必要なデータベースブロックを取得できる。
【００４８】
データベースストレージシステム１００は、生産データベースシステム１１０に利用可能な情報を取得してそれを記憶する。取得された情報は、データベースが記憶しているデータを含むデータベースブロック、取引ログ情報、データベースに関連するメタデータ情報、データベースのユーザに関連する情報などを含む。取得情報はさらに、データベースに関連する環境設定ファイルを含み得る。例えば、データベースはベンダー固有の環境設定ファイルを利用して、データベースに関連する初期化パラメータを含む種々の設定パラメータを指定できる。環境設定ファイルのコピーにより、ソース生産データベースに類似する設定パラメータをＶＤＢに設定可能になる。一部の実施形態では、データベース管理者はユーザインターフェース３９５を用いて設定パラメータファイルを変更し、特定の使用シナリオ用の設定にＶＤＢをカスタマイズできる。例えば、生産データベースは、特定のキャッシュサイズを用いるデータベースサーバ３４５によりアクセスされ得、一方、対応するＶＤＢは、異なるキャッシュサイズを用いるデータベースサーバ３６０によりアクセスされ得る。
【００４９】
取得情報はさらに、データベースを用いるアプリケーションに関連する情報を含み得、例えば、統合業務ソフト（ＥＲＰ）アプリケーションはデータベースを用いて、ＥＲＰアプリケーションに特有のデータを有し得る。ＥＲＰアプリケーションデータを取得することにより、生産データベースシステムに基づいて作成されたＶＤＢにおいて、類似のＥＲＰアプリケーションが実行可能になる。これは検証および開発などを目的として、生産環境に類似する環境用のＶＤＢを作成する場合の使用シナリオにおいて有益となる。データベース管理者はユーザインターフェース３９５を用いて、生産環境に特有の情報をコピーするための論理に加えて、仮想データベースシステム１３０として用いるＶＤＢに、情報を適切にインストールするための論理を指定できる。
【００５０】
一部の実施形態では、管理者権限を有するユーザなどの生産データベースのユーザに関する情報は、固有のＡＰＩを用いるか、生産データベースにおける固有のスクリプトを実行することにより取得できる。ユーザに関する情報は、システム内のＶＤＢのライフサイクル管理を容易にするために用いられ得る。一実施形態では、データベース管理者はユーザインターフェース３９５を用いて、ユーザアカウントの作成、およびそれのアクセス許可に関する情報を指定できる。例えば、ＶＤＢがテスト目的で作成される場合には、テスト組織用のＶＤＢにおいてテストユーザが作成され得、一方、ＶＤＢが生産データベースの予備として作成される場合には、生産サポート規則を有するユーザのみがアクセスできるようにするべきである。一部の実施形態では、ユーザが権限を有するＶＤＢをプロビジョニングできるか否かはアクセス許可により決定され得る。権限を有するＶＤＢの一例は、社会保障番号またはクレジットカード情報などの非公開情報（権限を有さないユーザがアクセスできない情報）へのフルアクセスを有するＶＤＢである。これに対応する権限が不要なＶＤＢは、秘密または暗号化した非公開情報を有するＶＤＢである。権限を有するＶＤＢの別の例は、ユーザが意識せずにアクセス可能な極秘データを有するＶＤＢである。対応する権限が不要なＶＤＢは、暗号化された秘密情報を有するＶＤＢである。
【００５１】
一部の実施形態では、アクセス権は、管理者、所有者および監査員の３レベルに簡易化される。管理者は、データベースおよびホストを含む全ての管理オブジェクトを完全に制御できる。管理者に利用可能な制御にはポリシー管理が含まれる。所有者は資源を利用するためのアクセスを有し、例えば、ＶＤＢをプロビジョニングできる。監査員は、ログは確認できるが、システム資源を消費する権限はない場合がある。
【００５２】
ストレージシステムデータストア３９０が記憶したデータは、仮想データベースシステム１３０に公開され得、仮想データベースシステム１３０が、生産データベースシステム１１０が記憶した生産データベースのコピーとしてデータを処理することを可能にする。データベースストレージシステム１００は、時点コピーマネージャ３１０、取引ログマネージャ３２０、インターフェースマネージャ３３０、システム構成マネージャ３１５、ストレージ割当マネージャ３６５、ファイル共有マネージャ３７０、仮想データベースマネージャ３７５、およびストレージシステムデータストア３９０を含む。代替的な構成では、データベースストレージシステム１００は、異なるおよび／または追加のモジュールを含んでもよい。
【００５３】
時点コピーマネージャ３１０は、ベンダーインターフェースモジュール３３５にリクエストを送信することにより、生産データベースシステム１１０と相互に通信し、生産ＤＢデータストア３５０が記憶したデータベースの時点コピー（「ＰＩＴコピーとも呼ばれる」）を示す情報を取得できる。時点コピーマネージャ３１０は、生産データベースシステム１１０から取得したデータをストレージシステムデータストア３９０に記憶する。時点コピーマネージャ３１０が取得したデータは、生産ＤＢデータストア３５０からコピーしたデータベースのデータベースブロック（またはページ）に対応する。生産ＤＢデータストア３５０から情報を取得する第１のＰＩＴコピーのリクエスト後のＰＩＴコピーリクエストは、データベース内の以前のリクエストから変化したデータのみを取得してもよい。第１のリクエストにより収集されたデータは、第２のリクエストにおいて収集されたデータと組み合わさって、第２のリクエスト用の生産ＤＢデータストア３５０からデータを取得した時点に対応するデータベースのコピーを再構成する。
【００５４】
取引ログマネージャ３２０は、生産データベースシステム１１０が記憶した取引ログの一部を取得するためのリクエストを生産データベースシステム１１０に送信する。一部の実施形態では、取引ログマネージャ３２０からのリクエストは、ベンダーインターフェースモジュール３３５に送信される。ベンダーインターフェースモジュール３３５からの、取引ログマネージャ３２０が取得したデータは、ストレージシステムデータストア３９０に記憶される。一実施形態では、取引ログに関するリクエストは、取引ログに関する以前のリクエストの処理後に変化した、生産データベースシステム１１０内の取引ログのみを取得する。時点コピーマネージャ３１０が取得したデータベースブロックは、取引ログマネージャ３２０が取得した取引ログと組み合わされて、種々の時点のコピー（以下、「時点コピー」という）が作成された種々の時のうちのいずれかである或る過去の時に対応する、生産システム１１０内のデータベースのコピーを再構成するために用いられ得る。
【００５５】
ストレージ割当マネージャ３６５は、生産データベースシステム１１０から取得したデータを保存する機能を有する。例えば、時点コピーマネージャ３１０は、ストレージ割当マネージャのＡＰＩを呼び出して、生産データベースシステム１１０から取得したデータブロックを保存できる。ストレージ割当マネージャ３６５は、生産データベースシステム１１０から取得し得るデータブロック各々の種々のバージョンを追跡する。所定の時点においてストレージ割当マネージャ３６５がリクエストされ、所定の時点前に取得したデータブロックの最新バージョンが提供され得る。ストレージ割当マネージャ３６５は、データブロックのコピーを構成するためにも用いられ得る。データブロックが読み出しのみを目的としてコピーされる場合には、ストレージ割当マネージャ３６５は、完了したデータブロックを参照するポインタを維持するのに十分なストレージのみを割り当てる。しかしながら、コピーされたデータブロックも書き込む場合には、ストレージ割当マネージャ３６５は、データブロックを実際にコピーするのに十分なストレージを割り当て、元のデータブロックの更新を回避する。
【００５６】
ファイル共有マネージャ３７０は、ストレージシステムデータストア３９０が記憶したファイルを、データベースストレージシステム１００と接続可能なネットワーク上のコンピュータ全体で共有できるようにする。ファイル共有マネージャ３７０は共有ファイル用のファイル共有システム１２０を利用する。共有ファイル用のシステムの例には、ネットワークファイルシステム（ＮＦＳ）がある。共有ファイル用のシステムは、ファイバーチャンネルストレージエリアネットワーク（ＦＣ−ＳＡＮ）、ネットワーク接続ストレージ（ＮＡＳ）、またはそれらの組み合わせおよび変形例を利用できる。共有ファイル用のシステムは、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）プロトコル、インターネット小型コンピュータ用周辺機器インターフェース（ｉＳＣＳＩ）プロトコル、ファイバーチャンネルプロトコル、または他の類似のおよび関連するプロトコルに基づくものでもよい。一部の実施形態では、データベースストレージシステム１００は論理ボリュームマネージャを利用できる。ファイル共有マネージャ３７０を用いてストレージシステムデータストア３９０に記憶されたファイルの共有により、仮想データベースシステム１３０などのリモートコンピュータが、共有ファイル内のデータにアクセスできる。リモートシステムはストレージシステムデータストア３９０が共有するファイルの読み出し、かつそれへの書き込みができる。一実施形態では、ファイルは、ＮＴＦＳと呼ばれるＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのファイルシステムまたはＵＮＩＸ（登録商標）ファイルシステム（ＵＦＳ）などの所定のファイルシステムディスクレイアウトを模倣するフォーマットにおいて組織される。
【００５７】
仮想データベースマネージャ３７５は、仮想データベースシステム１３０用の仮想データベースを作成するためのリクエストを受信する。仮想データベースを作成するリクエストは、管理システム１４０を利用するデータベース管理者により送信され得、生産データベースシステム１１と仮想データベースシステム１３０とを特定し、作成されるべき仮想データベースに対応する過去の時点を含む。仮想データベースマネージャ３７５は、作成される仮想データベースに対応する必要なファイルを作成し、そのファイルを仮想データベースシステム１３０と共有する。仮想データベースシステム１３０のデータベース管理者は、生産データベースシステム１１０のデータベース管理者とは別人でもよい。
【００５８】
インターフェースマネージャ３３０は、管理システム１４０を用いて必要な情報を表示する。データベース管理ユーザは、ストレージシステムデータストア３９０に利用可能な情報を確認し、さらにはデータベースストレージシステムが実行可能な機能を実行できる。例えば、データベース管理者は、種々の生産データベースシステム１１０から取得した、ストレージシステムデータストア３９０が記憶した種々の生産データベースを確認できる。別の例として、データベース管理者は、特定の時点において生産データベースシステム１１０が記憶したデータベースのＰＩＴコピーを生成するリクエストをデータベースストレージシステム１００に送信できる。一実施形態では、インターフェースマネージャ３３０は、外部アプリケーションがデータベースストレージシステム１００内の情報にアクセスできるようにする。例えば、データベースストレージシステムは、第三者ベンダーがデータベースストレージシステム１００に基づいてアプリケーションを書き込み可能なアプリケーションプログラミングインターフェース（ＡＰＩ）を提供できる。一実施形態では、インターフェースマネージャ３３０は、データベースストレージシステム１００に利用可能な情報にウェブアプリケーションがアクセス可能なウェブサービスを提供する。例えば、データベースストレージシステムは、クラウドコンピュータ環境の一部でもよい。第三者ベンダーはウェブサービスを利用して、本明細書に記載する様々なワークフローシナリオなどの、ＶＤＢに基づく様々なワークフローシナリオを実施できる。これにより、ＶＤＢに基づくワークフローシナリオの自動化が可能になる。
【００５９】
システム構成マネージャ３１５は、管理システム１４０を用いるデータベース管理者が、データベースストレージシステム１００の構成を設定または変更できるようにする。例えば、データベースストレージシステムが初期またはその後に設定される場合に、システム構成マネージャ３１５は、データベース管理ユーザまたは代理人が、生産データベースシステム１１０およびそれと接続する仮想データベースシステム１３０を指定できるようにする。システム構成マネージャ３１５はさらに、生産データベースシステム１１０内のデータベースのＰＩＴコピーを時点コピーマネージャ３１０が取得するスケジュールに加えて、生産データベースシステム１１０からのオンライン取引ログの更新を取引ログマネージャ３２０が取得する頻度および時間を指定するポリシーを適切な役割および権限を有するユーザが設定できるようにする。一実施形態では、スケジュールは、ＰＩＴおよびログ取得機能を実行する１日のうちの頻度および時間を指定するか、同じ機能を実行する暦日を指定する定期スケジュールでもよい。
【００６０】
一実施形態では、データベース管理者がポリシーを規定し得る。このポリシーは、生産データベースシステム１１０からの時点コピーのローディング、生産データベースシステム１１０からの取引ログのローディング、データベースの時点コピーおよび取引ログ情報を含む、データベースストレージシステム１００からの情報の消去および仮想データベースシステムのプロビジョニングに関連する種々の操作のためにシステム構成マネージャ３１５に記憶される。ポリシーは特定の操作を実行するための規則を特定する。例えば、ポリシーは、既定のスケジュールに基づいて実行される操作を指定できる。ポリシーは、生産データベースに蓄積したＰＩＴコピーの数に基づいて、データベースストレージシステム１００が記憶したＰＩＴコピーを消去するタイミングを決定できる。ポリシーは利用可能なストレージを測定して、情報を消去するタイミングを決定できる。例えば、利用可能なストレージ量が閾値未満である場合には、選択されたデータベースの古いＰＩＴコピーを消去できる。ポリシーはさらに、情報を消去する前に、用いる生産データベースの優先度を指定でき、例えば、優先度の高いデータベースの情報を消去する前に、優先度の低いデータベースの情報を消去する。特定のワークフローシナリオでは、ポリシーは、生産データベースから新規の情報を取得するタイミング、ＶＤＢ情報を自動的に更新するタイミング、および新規の情報に基づいて更新されたＶＤＢをプロビジョニングするタイミングを決定できる。
【００６１】
仮想データベースシステム１３０は、データベースサーバ３６０およびＶＤＢシステムライブラリ３８０を含む。データベースサーバ３６０の機能はデータベースサーバ３４５と類似し、データベースサービスおよびアプリケーションプログラミングインターフェース（ＡＰＩ）を提供するコンピュータプログラムであり、データストア３５０が記憶したデータを管理する。データベースサーバ３６０が管理するデータは、ファイル共有システム１２０を利用してデータベースストレージシステム１００と共有される、ストレージシステムデータストア３９０に記憶され得る。ＶＤＢシステムライブラリ３８０は、データベースストレージシステム１００が送信するリクエストを処理するためのプログラムコードを含む。代替的な構成では、仮想データベースシステム１３０は異なるおよび／または追加のモジュールを含んでもよい。
【００６２】
図４は生産データベースシステム１１０内のデータベースが記憶したデータの時点コピーを実現するための、データベースストレージシステム１００と生産データベースシステム１１０とのやりとりを示す図である。時点コピーマネージャ３１０は、生産データベースシステム１１０のデータベースに関連するデータを取得するためのリクエスト４０５を、生産データベースシステム１１０のベンダーインターフェースモジュール３３５に送信する。一実施形態では、リクエスト４０５は、２つのネットワーク装置間でデータを交換可能なセキュアシェルまたはＳＳＨネットワークプロトコルを利用して送信される。リクエスト４０５は管理システム１４０からのリクエストに応答して送信されてもよいし、定期スケジュール機能により送信されるように構成されてもよい。例えば、データベースストレージシステム１００は、毎日所定の時間に生産データベースシステム１１０にリクエスト４０５を送信するように構成されてもよい。図４に示すシステム環境は、生産データベースシステム４８０において常に実行される、データベースストレージシステム１００専用の処理を要求しない。このデータベースストレージシステム１００に情報を送信するための専用の処理は、生産システムの重要な資源の所望しない消費を招く場合があるため、生産データベースシステム４８０にとって有益である。それ故、データベースストレージシステムは生産データベースシステム４８０から情報が必要なときは常に、リクエスト４０５および４５０を送信する。
【００６３】
生産データベースシステム４８０は、リクエストされたデータを時点コピーマネージャ３１０に送信する。リクエスト４０５が、生産データベースシステム１１０が記憶したデータベースに関連するデータに関する最初のリクエストである場合には、生産データベースシステム４８０は、返答としてデータベース全体のデータを送信する。生産データベースシステム４８０はその後のリクエスト４０５に応答して、以前のリクエスト４０５に応答した最後の応答４３０の送信後に変化したデータベースブロックのデータのみを送信する。
【００６４】
一実施形態では、ベンダーインターフェースモジュール３３５は、応答４３０に要求される情報を収集するためのリクエスト４１０をデータベースサーバ３４５に送信する。ベンダーインターフェースモジュール３３５はさらに、生産システムライブラリ３８５における利用可能なプログラムコードをロードし得る。データベースサーバは、必要なデータを要求するリクエスト４１５をデータストア３５０に送信し、それの応答４２０であるリクエストしたデータを受け取る。データベースサーバ３４５は、リクエスト４１０に応答して、リクエストされたデータ４２５をベンダーインターフェースモジュール３３５に送信する。ベンダーインターフェースモジュール３３５は、データベースサーバから受け取ったデータ４２５を、時点コピーマネージャ３１０に処理され得るフォーマットにパッケージするため、生産システムライブラリ３８５に呼び出し４７０を送信する。生産システムライブラリ３８５は、時点コピーマネージャ３１０用に適切にフォーマットした、リクエストされたデータストリーム４３０を送信する。生産システムライブラリ３８５は、データベースサーバが送信した情報４２５を、時点コピーマネージャ３１０に送信４３０する。生産システムライブラリ３８５のプログラムコードにより動作するベンダーインターフェースモジュール３３５は、データベースストレージシステム１００に処理されるデータストリームを構築する。
【００６５】
他の実施形態では、生産システムライブラリ３８５と連係するベンダーインターフェースモジュール３３５が、要求されるデータをデータストア３５０から直接取得し、時点コピーマネージャ３１０にデータ４３０を送信してもよい。通常、必要な情報を抽出するための適切なＡＰＩをデータベースサーバ３４５がサポートする場合に、これらの実施形態は有益である。これらの実施形態では、生産システムライブラリ３８５は、データストア３５０が記憶したデータベースのファイル構造を解析するコード、さらにはデータストア３５０が記憶したデータベースブロックに関連するメタデータを処理するコードを含み、以前の時点から変化したデータベースブロックを検出する。
【００６６】
応答４３０は、データストア３５０内の複数のファイルに記憶され得るデータベースブロックを含むデータストリームである。応答４３０に相当するデータストリームは、異なるデータベースブロックに関連する情報をインタリーブし得、例えば、異なるファイル間で取得されたデータベースブロックをインタリーブし得る。それ故、時点コピーマネージャ３１０のプログラムコードは、データストリーム内で受け取ったデータベースブロックの任意の特定の順序を仮定することなく、データストリームを処理する。これらのデータベースブロックは、異なるデータベースにも属し得る。
【００６７】
図５は時点コピーマネージャ３１０における、生産データベースシステム１１０から受け取ったデータストリームの処理を説明するプロセスフローチャートを示す。時点コピーマネージャ３１０は、最後のＰＩＴコピー後に変化したブロックを含むデータストリームを受け取る５１０。時点コピーマネージャ３１０はデータストリームを処理し、データストリーム内のデータベースブロックを特定する５１５。各データベースブロックは、そのブロックが属するデータベースオブジェクト、データベースブロックのサイズ、データベースブロックが取得されたファイル、データベースブロックが記憶されたファイルにおけるオフセット、およびデータベースブロックが生産データベースシステム１１０のデータベース内で更新される順序を特定するログシーケンス番号などの、データベースブロックに関連する情報を含むメタデータを含む。
【００６８】
時点コピーマネージャ３１０は、各データベースブロックに関するメタデータを解析して、ストレージシステムデータストア３９０にデータベースブロックを記憶する必要があるか、またはそれを排除すべきかを決定する５２０。例えば、データベースブロックのメタデータにおけるログシーケンス番号は、生産システムライブラリ３８５がデータストリームと共にデータベースブロック４３０を送信する場合でさえも、生産システムライブラリ３８５から受け取った最後の応答４３０からデータベースブロックが全く更新されていないことを示す。それ故、ブロックをストレージシステムデータストア３９０に記憶する必要はなく、それをスキップしてもよい。記憶する必要のないデータベースブロックの他の例は、一時データベースブロック、セッション特定データベースブロック、およびそこにデータが書き込まれていない空データベースブロックを含む。記憶する必要のないデータベースブロックの別の例は、意味を有さないか、データベースソフトウェアにアクセスできないデータベースブロックを含む。別の例は、データベースソフトウェアにより、削除、空または無効であるとマークされたデータベースブロックを含む。
【００６９】
前述の実施形態では、生産データベースシステム４８０が送信した情報４３０は、データストリームがデータベースストレージシステム１００により受け取られた後、排除された不要なブロックに含まれた。他の実施形態では、生産システムライブラリ３８５がデータストリームを構築する間、不要なブロックの一部または全てが排除されてもよい。この実施形態では、生産データベースシステム４８０がデータベースストレージシステム１００に送信するデータストリーム４３０は、２つのシステム間の通信を効率的にするためにサイズが縮小される。
【００７０】
記憶する必要のないデータベースブロックのスキップに加えて、記憶したデータベースブロックを圧縮することにより、データベースストレージシステムは、同一のデータベースに対応するデータに関する生産データベースシステムと比較して、データベースファイルに要求されるストレージにおいて有意な節約を実現できる。例えば、ストレージシステムデータストア３９０内の生産データベースに対応するデータが占有するストレージスペースは、生産ＤＢデータストア３５０内の生産データベースが占有するスペースの４分の１であり得る。生産データベースシステムに対応する全情報が、最初のＰＩＴコピーにより取得されることに留意されたい。その後のＰＩＴコピーは、生産ＤＢ内の変化した情報のみを取得し、最初のＰＩＴコピーに含まれる情報よりもはるかに少なくなり得る。
【００７１】
時点コピーマネージャ３１０が、データストリーム内のデータベースブロックをスキップできることを決定した場合５２５には、時点コピーマネージャ３１０は、処理する次のデータベースブロックの特定５１５に進む。実施形態では、時点コピーマネージャ３１０は、ストリームメタデータに利用可能なサイズのデータベースブロックを用いて、データストリーム内のデータベースブロックの境界を特定する。各ブロックはその後、この境界に従い処理される。
【００７２】
時点コピーマネージャ３１０が、データストリーム内のデータベースブロックをデータストレージシステムデータストア３９０に記憶する必要があると決定した場合には、時点コピーマネージャ３１０はデータベースブロックメタデータを解析して、データベースブロックをデータベースファイル、およびファイル内の適切な位置にマッピングする５３０。時点コピーマネージャ３１０は、ストレージ割当マネージャ３６５にリクエスト４３５を送信して、データベースブロックを保存する５３５。ストレージ割当マネージャ３６５は、データベースブロックに関連する適切なファイルをストレージシステムデータストア３９０に記憶４４０する。時点コピーマネージャ３１０は、データストリームが完全に処理されたか否かを確認する５４０。データストリームに未処理データが残っている場合には、時点コピーマネージャ３１０は、処理のための次のデータブロックの特定に進む。
【００７３】
ストレージ割当マネージャ３６５は、それが異なる時点において更新された場合には、データベースブロックのデータに対応する、ストレージシステムデータストア３９０内のデータベースブロックのいくつかの異なるバージョンを維持できる。データベースブロックを保存したファイルは、ファイルに関連するメタデータおよびデータベースブロックのシーケンスを含むファイルヘッダを有する。各ベンダー固有データベースサーバ３４５は、それ自体が処理可能なファイルセットとしてデータベース情報を組織化する。ファイルセットを用いた情報のデータベースのための組織化はベンダー固有でもよく、データベースストレージシステムは、ファイルのベンダー固有組織内のデータベース情報を組織化するためのプログラム論理を組み込む。時点コピーマネージャ３１０は、データストア３５０内のデータベースのファイルセットに類似し得るファイル構造セットを作成する。ただし、ストレージシステムデータストア３９０内の情報は、異なる時点における更新情報にその各々が対応する、データベースブロックの複数のバージョンを含み得る。一実施形態では、ストレージ割当マネージャ３６５は、データベースブロックが時点間において更新された場合にのみ、データベースブロックをコピーするような効率的な方法により、ファイルに関連するデータベースブロックを記憶する。例えば、ブロックＢ１が時間Ｔ１で更新されるが、時間Ｔ２では更新されず、一方、ブロックＢ２が時間Ｔ１およびＴ２の両方で更新される場合には、ストレージシステムデータストア３９０のデータ構造は、時間Ｔ２に対するデータベースブロックＢ１のコピーを保持しないが、時間Ｔ２に対するデータベースブロックＢ２のバージョンを保持する。
【００７４】
図４はさらに、取引ログマネージャ３２０と生産システムライブラリ３８５とのやりとりを示す。取引ログマネージャ３２０は、生産データベースシステム１１０のデータベース内の取引ログにおける、以前の時点からの増分変化を取得する。一実施形態では、リクエスト４４５はセキュアシェルまたはＳＳＨネットワークプロトコルを利用して送信される。リクエスト４４５は情報が要求されるデータベースを特定し、取引ログ情報を以前に受け取った時点に対応する時間値を与え得る。生産システムライブラリ３８５は、リクエスト４４５に応答して、リクエストされた情報４５０を取引ログマネージャ３２０に送信する。ベンダーインターフェースモジュール３３５は、前述のようにデータベースサーバ３４５ＡＰＩを呼び出すか、データストア３５０と直接通信することにより、リクエストされた情報を取得できる。生産データベースシステム１１０から取得したデータベースログの増分変化はマネージャ３２０が保存し、これは、ストレージシステムデータストア３９０に情報を記憶４４０するストレージ割当マネージャ３６５にリクエスト４６０を送信することによって行われる。
【００７５】
図６は生産データベースシステム１１０からデータベースストレージシステム１００に取引ログファイルをコピーする処理を示す。取引ログマネージャ３２０は、前回の更新の受け取り後に更新された取引ログを取得するためのリクエストを生産データベースシステム１１０に送信する６００。取引ログマネージャ３２０は、生産データベースシステム１１０からの応答をデータストリームとして受け取る６１０。取引ログマネージャ３２０は受け取ったデータストリームを解析して、取引ログデータを書き込むログファイルを決定する６２０。データストリーム内の受け取ったデータを複数のログファイルに書き込む必要がある可能性がある。取引ログマネージャ３２０は、データストリームからのオンライン取引ログデータを適切なログファイルに書き込む６３０。
【００７６】
一実施形態では、取引ログマネージャ３２０は一回のログファイルを更新と次の更新間、所定時間待機し６４０、取引ログの更新に関する新規の更新があるか否かを確認する次のリクエストを、生産データベースシステム１１０に送信する６５０。この時間間隔中に生産データベースが更新されなかった場合には、生産データベースシステム１１０は、その旨を取引ログマネージャ３２０に通知する。この時間間隔中に利用可能な取引ログが新規に更新されなかった場合には、取引ログマネージャ３２０はもう一度その時間間隔待機する６４０。取引ログの更新を示す生産データベースシステム１１０からの応答が得られた場合には、取引ログマネージャ３２０は、取引ログの次の更新を取得するための次のリクエストを生産データベースシステム１１０に送信する６００。
【００７７】
取引ログの増分変化は、時点コピーマネージャ３１０が実行する時点コピーよりもはるかに頻繁に取引ログマネージャ３２０が取得できる。例えば、時点コピーマネージャは、生産データベースシステム１１０が記憶した時点データベースを１日に一度コピーし得、一方、取引ログマネージャ３２０は、取引ログの増分変化を５分ごとに取得し得る。取引ログの増分変化を高い頻度で取得することにより、時点コピーマネージャ３１０が時点コピーを実行する時間である時点間で、生産データベースシステム１１０からデータベースのコピーを再作成する能力が得られる。
【００７８】
生産データベースシステム１１０は、取引ログファイルを循環方式で再利用し得、これにより、以前のログファイルを上書きできる。ただし、データベースストレージシステム１００は異なるログファイルへの書き込みを開始するために、データが現在書き込まれているログファイルを閉じることを決定する度に新規のログファイルを作成する。図７は生産データベースシステム１１０のログファイルと、データベースストレージシステム１００のログファイルとを比較する図である。生産データベースシステムのログファイル７１０は、オンライン取引ログファイルに相当する。通常、オンライン取引ログの記憶用に限られた数のファイルが割り当てられる。例えば、図７には、オンライン取引ログの記憶用に、生産データベースシステム１１０には、３つのファイル７１０（ａ）、７１０（ｂ）および７１０（ｃ）が割り当てられる。
【００７９】
図７に示す矢印７３０は、所定の時間Ｔｉ（時間Ｔ１、Ｔ２およびＴ３は単調に増加すると仮定する）において、生産データベースシステム１１０に取引ログが書き込まれた取引ログファイルの変化を示す。例えば、時間Ｔ１において、生産データベースシステム１１０はファイル７１０（ａ）への取引ログの書き込みを停止し、ファイル７１０（ｂ）への取引ログの書き込みを開始した。同様に、時間Ｔ２において、生産データベースシステム１１０はファイル７１０（ｂ）への取引ログの書き込みを停止し、ファイル７１０（ｃ）への取引ログの書き込みを開始した。時間Ｔ３において、生産データベースシステム１１０はファイル７１０（ｃ）への取引ログの書き込みを停止し、取引ログファイル７１０（ａ）を再利用することを決定した。取引ログファイルを再利用する前に、生産データベースシステム１１０は、その取引ログファイルにある取引ログが確実に適切なデータベースに適用されるようにする。時間Ｔ４、Ｔ５およびＴ６におけるログファイルの変化は、前述の変化に類似する。それ故、生産データベースシステムは、通常、循環方式において取引ログファイルを再利用し、ストレージを再利用することができる。
【００８０】
データベースストレージシステムは、取引ログに基づいてログ保持ポリシーが決定した非常に長い時間履歴情報を保持するため、ログファイルデータに関しては循環再利用方式を利用しない。取引ログに基づく履歴情報を保持することにより、過去の時点におけるＶＤＢを作成する能力が得られる。過去の時点に対応するデータベーススナップショットの復旧に必要な取引ログが利用可能である限り、過去の時点におけるＶＤＢを作成できる。取引ログファイルの循環再利用に基づく方式は、時間的に前の取引ログを上書きする。それ故、ログファイルに循環再利用方式を利用するデータベースシステムは、取引ログが上書きされていない最近の時点に関する取引ログに基づいてデータベーススナップショットのみを復旧できる。
【００８１】
データベースストレージシステム１００が記憶したログファイル７２０は、保持されたログファイルである。矢印７４０は、生産データベースシステム１１０の取引ログファイル７１０から、データベースストレージシステム１００の保持されたログファイル７２０への情報の転送を示す。各矢印７４０は、取引ログマネージャ３２０から生産データベースシステム１１０に送信されたリクエスト４４５のいくつか、および取引ログマネージャ３２０が処理し、記憶した、生産データベースシステム１１０から送信された応答４５０のいくつかに対応し得る。
【００８２】
例えば、矢印７４０（ａ）は、時間間隔Ｔ１からＴ２間のログファイル７１０（ａ）から７２０（ａ）への情報のコピーを示す。時間Ｔ２において、生産データベースシステムは、ファイル７１０（ｂ）への取引ログの書き込みを開始した。データベースストレージシステムは新規のログファイル７２０（ｂ）を作成し、矢印７４０（ｂ）は、ファイル７１０（ｂ）からログファイル７２０（ｂ）への取引ログ情報の転送を示す。前述の処理が継続するが、時間Ｔ３において、生産データベースシステムがログファイル７１０（ａ）の再利用を開始するが、データベースストレージシステムは新規のログファイル７２０（ｄ）を作成する。矢印７４０（ｄ）はログファイル７２０（ｄ）への取引ログ情報のコピーを示す。それ故、生産データベースシステム１１０の同一の取引ログファイルからの取引ログ情報は、異なる時間においてデータベースストレージシステム１００内の複数のログファイルにコピーされ得る。例えば、取引ログファイル７１０（ａ）内の情報は、Ｔ０とＴ１との間においてログファイル７２０（ａ）にコピーされ、Ｔ３とＴ４との間においてログファイル７２０（ｄ）にコピーされ、時間Ｔ６とＴ７との間においてログファイル７２０（ｇ）にコピーされる。データベースストレージシステム１００は、ログ保持ポリシーが決定するような可能な限り長い時間取引ログ情報を保持するために、ログファイルの再利用を回避する。これによりユーザは、取引ログ情報が利用可能な以前の時点においてデータベースのスナップショットを再作成できる。
【００８３】
図８はストレージシステムデータストア３９０が記憶した、異なる時点における種々の生産データベースシステム１１０から取得した情報を示す。図８は生産データベースシステム１１０から取得した、２つのデータベース、すなわちＤＢ１およびＤＢ２に関連する情報を示す。情報８５０はデータベースＤＢ１が取得したデータに相当し、情報８６０はデータベースＤＢ２が取得したデータに相当する。情報８５０または８６０はデータベースブロックセットおよび取引ログセットを含む。情報８５０（ａ）は、生産データベースシステム１１０から取得した、データベースＤＢ１の最初のＰＩＴコピーに相当する。情報８５０（ｂ）は、最初のＰＩＴコピー後にデータベースＤＢ１の最初の取引ログ更新に相当し、情報８５０（ｃ）は、最初のＰＩＴコピー後のデータベースＤＢ１の第２の取引ログ更新に相当する。情報８５０（ｄ）はデータベースＤＢ１の第２のＰＩＴコピーに相当する。情報８５０（ｄ）は、最初のＰＩＴのコピーが生成された後、データベースＤＢ１内で変化したデータベースブロックのみを記憶する。情報８５０（ｅ）は、第２のＰＩＴコピー後のデータベースＤＢ１の第１の取引ログ更新に相当する。同様に、情報８６０はデータベースＤＢ２に相当する。情報８５０に付随して示す時間Ｔｉは、情報がその構成内でコピーされた時間を示す。ＰＩＴコピーマネージャ３１０が実行するＰＩＴコピー（ログが更新されていない８５０（ａ）または８５０（ｄ）など）においては、時間Ｔｉは、ＰＩＴのコピー前にデータベースブロックを最後に更新した時間を示す。８５０（ｂ）、８５０（ｃ）または８５０（ｅ）などのログ更新に対応する情報においては、時間Ｔｉは、記憶された対応する取引ログセットにおける最後の取引ログの時間を示す。
【００８４】
図８に示す矢印８１０は、仮想データベースマネージャ３７５が実行する、情報８５０に基づくデータベースの読み出し／書き込みコピーに相当するファイルを作成するステップを示す。矢印８３０は、ファイル共有システム１２０を通じて、仮想データベースシステム１３０に対してファイル８７０を利用可能にするステップを示す。図９は仮想データベースを作成する処理のフローチャートである。仮想データベースマネージャ３７５は、仮想データベースシステム１３０に用いる仮想データベースを作成するリクエストを受信する９０５。ＶＤＢを作成するリクエストは、管理システム１４０が受信し得る。ＶＤＢを作成するリクエストは、生産データベースシステム１１０およびＶＤＢとして利用可能とされる必要のある対応するデータベース、ＶＤＢを作成する必要のある仮想データベースシステム１３０、並びにデータベーススナップショットがＶＤＢとして作成される過去の時点Ｔｎの詳細を含み得る。
【００８５】
仮想データベースマネージャ３７５は、Ｔｎよりも以前のＴｊに関する最近のＰＩＴコピーを特定する９１０。仮想データベースマネージャ３７５は、ＴｊからＴｎの期間に更新されたログファイルの一部をさらに特定する９１５。特定したＰＩＴコピー内のデータベースブロックおよびログファイルの適切な一部をストレージ効率よくコピーすることにより、読み出し／書き込みファイル構造８７０を作成する９２０。ＰＩＴコピーに基づいて作成されたＶＤＢに適切な取引ログを適用することにより、ＰＩＴコピー後の時点間のソースデータベースのスナップショットを作成できる。したがって、ＰＩＴコピーは定期的に、例えば毎日作成され得るが、取引ログを以前のＰＩＴコピーに適切に適用することにより、ＰＩＴコピー間の任意の時点におけるＶＤＢを作成できる。例えば、特定の日付の真夜中に生産データベースにおいてＰＩＴコピーが生成された場合がある。しかしながら、ＶＤＢは、午前１０時２５分などの１日のうちの特定のそれ以降の時間に、その特定の時間にＰＩＴがコピーされていないが、生産データベースの状態に基づいて作成され得る。真夜中からその特定の時間までの生産データベースの変化は、取引ログから取得される。
【００８６】
ファイル構造のストレージ効率のよいコピーを実現する機構を本明細書にさらに記載する。仮想データベースマネージャ３７５は、読み出し／書き込みファイル構造の操作情報を、関連する仮想データベースシステム１３０に送信する９３５（図８の矢印８３０に示す）。一部の実施形態では、仮想データベースマネージャ３７５は、リクエストをファイル共有マネージャ３７０に送信することにより、ファイル構造を仮想データベースシステム１３０に対して利用可にする。ファイル共有マネージャ３７０はこれに応答して、ファイル共有システム１２０を利用して仮想データベースシステム１３０と適切なファイルを共有する。仮想データベースマネージャ３７５はまた、適切な保持したログをデータベースブロックに適用することにより、新規の仮想データベースの復旧を実行するリクエストを仮想データベースシステム１３０に送信する９３０。一部の実施形態では、データベースサーバが仮想データベースシステム１３０を起動する際に、データベースはその復旧を自動的に実行する。
【００８７】
図１０はＶＤＢに対応する読み出し／書き込みファイル構造を作成するための、ストレージ効率のよいコピーの作成方法を示す。図１０に示す構造１０１０は、生産データベースシステム１１０のデータベースに対応するファイルを示す。構造ＦｉおよびＧｉは、それぞれ、ファイル１０１０に記憶されるデータベースブロックを示す（ＦｉはＦ１、Ｆ２、Ｆ３などを意味し、同様に、ＧｉはＧ１、Ｇ２、Ｇ３などを意味する）。矢印１０１５は種々の時点ＴｉにおけるＰＩＴコピー作成の処理を示す。時間Ｔ０において作成される最初のＰＩＴコピー１０３０には、データベースの全てのデータベースブロックのコピーが必要となる。例えば、Ｆ１ｉはブロックＦｉのコピーを示し、Ｇ１ｉはブロックＧｉのコピーを示す。時間Ｔ１において作成されるＰＩＴコピー１０３５は、前回のＰＩＴコピー後に変化したブロックのみをコピーし、最初のＰＩＴコピーよりもはるかに少ないデータのコピーで済む。同様に、時間Ｔ２において別のＰＩＴコピー１０４０が、以前のＰＩＴコピー１０３５後に変化したデータベースブロックのみをコピーすることにより作成される。
【００８８】
ＰＩＴコピー１０４０が図１０に示す構成における最後のＰＩＴコピーであると仮定すると、時点Ｔ２においてＶＤＢファイル構造１０５０が作成される。構造１０５０が作成されると、データを記憶する実際のデータベースブロックを示すポインタとしてブロックＶ１１〜Ｖ２５が実装され得る。例えば、Ｖ１１はブロックＦ１の情報を示し、ブロックＦ１が時間Ｔ１およびＴ２におけるコピー中に更新されなかったため、Ｆ１１を指す。Ｖ１２はブロックＦ２の情報を示し、時間Ｔ１においてＦ２が更新されたため、ブロックＦ２２を示す。同様に、Ｖ１３は時間Ｔ２において更新されたブロックＦ３に対応し、ブロックＦ３３を指す。
【００８９】
図１１は時点Ｔ１において作成されたファイル構造１１５０を示す。ブロックＦ３に対応するＵ１３は、時点Ｔ１においてブロックＦ３が更新されなかったため、Ｆ１３を指すことに留意されたい。また、Ｕ１４は時間Ｔ１においてコピーされたブロックＦ４に対応するブロックＦ２４を指す。ＰＩＴコピー１０４０が時点Ｔ１後に作成されたので、構造１１５０のいずれもＰＩＴコピー１０４０を指さない。
【００９０】
図１２は、ストレージシステムデータストア３９０が記憶したデータベースブロックが、異なるＶＤＢにおいて作成されたファイル構造と共有される方法を示す。図１２は図１０および図１１に示すような、ＶＤＢ用に作成された生産データベースシステム１１０のファイル１００５に対応するファイル構造を示す。図１２に示すように、ファイル構造Ｃ５０のブロックＶ１３およびＶ１４は、時間Ｔ１においてＶＤＢファイル１１５０と共有されないブロックＦ３３およびＦ３４である最新コピーを指す。しかしながら、Ｔ２におけるＶＤＢファイル１０５０のブロックＶ１１は、Ｔ１におけるＶＤＢファイル１１５０のブロックＵ１１とブロックＦ１１を共有する。同様に、１０５０のブロックＶ１２は、１１５０のブロックＵ１２とデータベースブロックＦ２２を共有する。複数のＶＤＢに渡るブロックの共有利用により、ストレージシステムデータストア３９０が記憶したデータを効率的に利用できる。ＶＤＢの１つが共有のデータベースブロックへの書き込みを試みる場合には、書き込みを試みるＶＤＢに共有のデータベースブロックのコピーが作成される。データベースブロックを共有していた残りのＶＤＢは、元のデータベースブロックを共有し続ける。それ故、コピーされたデータベースブロックにおけるいかなる変化も、データベースブロックに書き込んでいるＶＤＢに固有であるため、残りのＶＤＢには認識されない。
【００９１】
ＶＤＢはソースとして別のＶＤＢの時点コピーを用いても作成され得る。例えば、仮のＶＤＢ１が作成され、仮想データベースシステム１３０にプロビジョニングされると仮定する。仮想データベースシステム１３０が最初にデータベースブロックを書き込むときには、そのＶＤＢに関連するデータベースブロックがコピーされる。ＶＤＢ１の時点コピーも所定のスケジュールに基づいて作成される。これによりユーザは、ＶＤＢ１の時点コピーに基づいて第２の仮想データベースＶＤＢ２を作成できる。ＶＤＢ１の取引ログも記憶することにより、ユーザは、ＶＤＢ１の時点コピー間であり得るＶＤＢ１の任意の以前の状態に基づいて第２の仮想データベースＶＤＢ２を作成できる。
【００９２】
図１３は更に、Ｔ２以前の時点Ｔ１＋ｔ２に対するデータベーススナップショットに対応する、ＶＤＢファイル構造１３５０内へのログファイルの組み込みを示す。図１３に示すように、ログファイルデータＬ１は時間Ｔ１＋ｔ１において取引ログマネージャ３２０によりコピーされ、ログファイルデータＬ２は時間Ｔ１＋ｔ２においてコピーされる。生産データベースシステム１１０に書き込まれる追加のログデータＬ３はコピーされたように示されておらず、Ｔ１＋ｔ２後の時間に、データベースストレージシステムにコピーされ得る。ＶＤＢ用に作成したファイル構造１３５０は、Ｌ１およびＬ２として示される、時間Ｔ１とＴ１＋ｔ２との間にコピーされたログ情報に相当する適切なログファイルデータを指す構造ＶＬ１１を含む。仮想データベースシステム１３０においてデータベースサーバが起動すると、構造Ｖ１１が指すログが、データベース復旧処理を利用してデータベースブロック１０３５に適用され得る。
【００９３】
図１０に示す構造１０５０、図１１に示す構造１１５０、または図１３に示す構造１３５０が読み出し／書き込み構造であるため、仮想データベースシステム１３０はこれらの構造からの読み出し、そしてそれへの書き込みが可能になる。仮想データベースシステム１３０がブロックＶｉｊに書き込むと、データベースブロック用のスペースが割り当てられ、割り当てられたスペースに対応するデータベースブロックのデータがコピーされる。例えば、仮想データベースシステム１３０がブロックＶ１１に書き込む場合には、スペースが割り当てられ、割り当てられたブロックにブロックＦ１１がコピーされる。それ故、ブロックＦ１１の元のコピーが読み出し専用コピーとして維持され、仮想データベースシステム１３０は、それ自体のために特定的に作成された適切なデータベースブロックのコピーを書き込みことができる。これは、対応する仮想データベースシステム１３０がデータベースブロックに書き込む場合のみ、データベースブロックのコピーを作成する怠惰なメカニズムとみなされ得る。仮想データベースシステム１３０が書き込むブロックの数が、ＶＤＢのブロック総数の小さな一部分であり得るので、前述の構造はストレージ効率の高い方法でＶＤＢに関連するデータを記憶する。仮想データベースシステム１３０によって書き込まれないデータベースブロックは、特定の仮想データベースシステム１３０のためにコピーをせず、いくつかの仮想データベースシステム間で共有され得る。
【００９４】
ＶＤＢ操作
図１４はデータベースまたはデータベースに依存するアプリケーションを変化させる、ワークフロー内のデータベースのライフサイクルの一例を示す図である。図１４に示すように、生産データベース１４０５のコピーは、開発、調整、検証、品質保証、認証、訓練、および段階分けを含むいくつかの目的のために作成される。従来の方法による多量のデータベースのコピーを作成することは、遅い過程であり得る。さらに、種々の機械におけるデータベースの種々のコピーの稼働は、ハードウェアの非効率的な使用に繋がる。データベースの物理コピーを作成する代わりに仮想データベースを作成することにより、データベースに関連する様々なワークフローシナリオは簡易化され、高効率となり得る。複数の仮想データベースがデータベースストレージシステム１００に記憶され得、システムの資源の利用が効率的になる。
【００９５】
ＶＤＢに基づくワークフローシナリオにおいて実行されるステップは、従来のシステムを用いた同一のワークフローシナリオにおいて実行される操作とは顕著に異なり得る。これらのステップは、データベースストレージシステム１００のデータベース管理者が実行してもよいし、スクリプトを利用して自動的に実行されてもよい。仮想データベースに関連する種々の操作を下に説明する。
【００９６】
リンク操作は、生産データベースシステム１１０内のデータベースへのアクセスに必要な情報を、データベースストレージシステム１００のシステム構成マネージャ３１５に提供する操作である。データベースへのアクセスに必要な情報を用いることにより、データベースストレージシステム１００は、生産データベースシステム１１０からデータを取得できる。この情報は、データベース名、データベースをホストする生産データベースシステム１１０のネットワークアドレス、およびアクセス制御情報を含み得る。リンク操作の一部として、データベースストレージシステムは生産データベースシステム１１０と通信して、データベース情報を認証できる。データベースストレージシステム１００は、生産データベースシステム１１０内のリンクしたデータベースからデータベースブロックを取得し、それをストレージシステムデータストア３９０に記憶できる。ストレージシステムデータストア３９０に記憶されたデータベースブロックは、仮想データベースの作成に用いることができる。一部の実施形態では、リンク操作は、ソースデータベース全体ではなく、ソースデータベースの一部のみがコピーされる必要があることを指定できる。例えば、リレーショナルデータベースでは、ソースデータベースの一部はテーブルスペース、１つ以上のテーブルセット、テーブルのサブセット、またはテーブルサブセットのセットをであり得る。一実施形態では、ユーザはデータベースの一部をコンピュータ処理するためのスクリプトを指定できる。
【００９７】
ロード操作は、データベースストレージシステム１００内のストレージに用いられるデータを、生産データベースシステム１１０のデータベースから取得する操作である。データベースは、ロードできるようにするには、データベースストレージシステム１００にリンクされる必要がある。ロード操作がデータベースのデータを最初に取得するときは、データベースに利用可能なデータ全体を取得する。この結果、最初のロード操作は遅くなり得、データベースのサイズおよび当業界のハードウェア状態に基づくネットワーク回線容量次第では、数時間または数日間かかる可能性もある。その後のロード操作は、データベース内における以前のロード操作からの変化のみを取得するため、はるかに短時間で済む場合もある。ロード操作は定期的に実行され、継続してデータベースの変化を取得する。ロード操作は、データベースのデータベースブロックおよび／または以前の時点後に更新されたデータベースを示す取引ログを取得できる。ロード操作に要求される入力は、前もってリンクされているデータベースを特定する情報を含む。ソースデータベースの一部のみがリンク操作により特定されると、その部分のみがロードされる。
【００９８】
ロード操作はまた、ＶＤＢに利用可能な情報を増加的に更新できる。データベースストレージシステム１００が生産データベースシステム１１０から取得した情報は、定期的に更新され得る。データベースストレージシステムに利用可能な、生産データベースシステム１１０から取得した情報が更新されると、仮想データベースシステム１３０にプロビジョニングされた情報も更新され得る。仮想データベースシステム１３０がＶＤＢ内のデータを更新してもよい。この場合には、増大したロードは仮想データベースシステム１３０による更新を特定し、それと生産データベースシステム１１０から取得した変化とを比較する。２つの更新セットに不一致が無い場合には、生産データベースシステム１１０の変化をＶＤＢに適用することにより、ロード操作は成功する。不一致がある場合には、不一致のレポートがデータベース管理者に示され、不一致を解決するために、データベース管理者に入力が要求される。一実施形態では、２つのソース間の更新の不一致は、２つの更新による影響を受けたデータベースブロックを特定することにより検出される。データベースブロックの２つの更新セット間にオーバーラップが無い場合には、データベースストレージシステム１００は不一致が無いと判断する。ソースデータベースの一部のみがリンク操作において特定された場合には、その一部の変化のみがロードされる。
【００９９】
プロビジョニング操作は、データベースストレージシステム１００内の仮想データベースを作成し、それを仮想データベースシステム１３０に対して利用可能にする。仮想データベースは、ソースデータベースの時点コピー、または別の仮想データベースの時点コピーに基づいて作成され得る。ＶＤＢ用の１つ以上の読み出し／書き込みファイルが作成され、ファイル共有システム１２０を利用して仮想データベースシステム１３０と共有され得る。読み出し／書き込みファイルは、ストレージシステムデータストア３９０が記憶したデータベースブロックを示す構造を含む。プロビジョニング操作に要求される入力は、以前にリンクされかつロードされたデータベースまたは既存のＶＤＢを特定する情報、データベースの所望の状態に対応する以前の時点、仮想データベースがプロビジョニングされる仮想データベースシステム１３０を特定する情報を含む。一部の実施形態では、ＶＤＢの一部がプロビジョニングされてもよい。同様に、種々のＶＤＢの一部が共にプロビジョニングされ、新規のＶＤＢを形成してもよい。他の実施形態では、アプリケーション特有の連携方式を用いて、いくつかのＶＤＢが一群として共にプロビジョニングされてもよい。これらの一群に適したプロビジョニングは、アプリケーション論理もしくはプロビジョニングの設定、またはその連携を含み得る。
【０１００】
ブックマーク操作は、１つ以上の仮想データベースにおける、アプリケーションとして重要な時点をマークする。結果生じた「ブックマーク」は、プロビジョニング操作を導くために用いられ得る。この操作は、通常、ユーザまたは管理システム１４０を介して外部プログラムによりトリガされる。データベースストレージシステム１００は、結果生じた「ブックマーク」をデータベースストレージシステム１００が記憶すると、トークンを返す。その後、ユーザまたは外部プログラムはＶＤＢまたはＶＤＢの群を、返されたトークンを利用して同一のアプリケーションにとって重要な時点にプロビジョニングできる。例えば、外部プログラムは、大量のバッチ処理動作の直後などの特定状態における生産データベースの捕捉を所望する場合がある。ユーザは管理システム１４０を通じてブックマーク操作を呼び出して、返送されたトークンを保存できる。その後、ユーザは保存したトークンを供給することにより、ＶＤＢを同一の状態にプロビジョニングできる。一部の実施形態では、トークンは文字列の形態でもよい。
【０１０１】
リフレッシュ操作は、ソースデータベースシステム１１０からの最新情報に基づいてＶＤＢを定期的に更新するデータベースストレージシステム１００に対応する操作である。例えば、ＶＤＢはユーザが確認するレポートを生成するレポートティングシステムにおいて用いられ得る。リフレッシュ操作は、１日１回などの定期的に、生産データベースシステム１１０から最新情報を自動的にロードする。リフレッシュ中のＶＤＢは停止される。ＶＤＢは生産データベースシステム１１０の最新の時点コピーと共に更新され、再起動される。それ故、対応する仮想データベースシステム１３０のユーザは、生産データベースシステム１１０内のデータの最新の時点コピーに基づいた最新レポートを確認できる。一実施形態では、生産データベースシステム１１０から取得した時点コピー間において取得した取引ログに基づいてＶＤＢをリフレッシュしてもよい。リフレッシュ操作に要求される入力は、リフレッシュされるべきＶＤＢ、およびデータをリフレッシュするスケジュールを特定する情報を含む。
【０１０２】
スクリプト前操作は、別のデータベースストレージシステム１００の操作の実行前に、特定タスクを実行する専用命令の実行に相当する操作である。例えば、スクリプト前操作は、ＶＤＢをプロビジョニングするか、生産データベースサーバ１１０からデータベースをロードする前に実行され得る。データベースは、データベース外部に記憶された特定用途向けデータを要求するアプリケーションと共に用いられ得る。データベースがリフレッシュまたはロードされると、スクリプト前操作が実行され、特定用途向けデータがデータベースストレージシステム１００にロードされ得る。スクリプト前操作に関する入力は、実行される操作、およびスクリプト前操作がその前に実行される、データベースストレージシステム１００の操作の詳細を指定する実行可能スクリプトを含み得る。
【０１０３】
スクリプト後操作は、データベースストレージシステム１００の操作の実行後に、特定タスクを実行する専用命令の実行に対応する操作である。例えば、スクリプト後操作は、ＶＤＢを仮想データベースシステム１３０にプロビジョニングした後に実行され得る。生産データベースシステム１１０内のデータベースを用いたアプリケーションの検証および開発は、検証または開発仮想データベースシステム１３０を利用した類似のアプリケーションを実行することにより行われ得る。このシナリオでは、スクリプト前操作により生産データベースサーバ１１０からコピーされた特定用途向けデータはさらに、対応するアプリケーションを実行する仮想データベースシステム１３０にもコピーされる。データベースストレージシステム１００から仮想データベースシステム１３０に特定用途向けデータをコピーする命令は、プロビジョニング操作後のスクリプト後操作として実行される。スクリプト後操作における入力は、実行される操作、およびスクリプト後操作がその後に実行されるデータベースストレージシステム１００の操作の詳細を指定する実行可能スクリプトを含む。
【０１０４】
プレスクリプトおよびスクリプト後操作は、種々のＶＤＢ操作に関連し得る。例えば、スクリプト前操作はリフレッシュ操作の前に実行されてもよいし、対応するスクリプト後操作はリフレッシュ操作後に実行されてもよく、リフレッシュ操作前／後における特有情報のコピー／インストールが可能になる。同様に、スクリプト前／スクリプト後操作は、とりわけリンク、ロード、プロビジョン、およびエクスポートを含む他のＶＤＢ操作に関連し得る。例えば、ソースデータベースからのデータのリンク操作またはローディング中に、スクリプト前／スクリプト後操作により、データベーステーブルの列または行を含むデータを圧縮、マスキングまたは削除することによりデータをそぎ落とすことができる。前スクリプトおよび後スクリプトは、ソースデータベースおよび／またはＶＤＢを利用したアプリケーションに関連するアプリケーションデータを処理できる。前スクリプトおよび後スクリプトは、ＶＤＢのプロビジョニングに関連するシステム環境の課題を管理でき、ＶＤＢのプロビジョニング前／後の始動／停止機能を実行できる。
【０１０５】
共有操作は、別のユーザがＶＤＢにアクセスするための許可に対応する操作である。一実施形態では、共有操作は、新規のＶＤＢを作成し、それを新規のユーザまたはユーザセットと共有するためにプロビジョニングするステップを含み得る。例えば、検証および開発環境では、ＶＤＢを利用した開発が特定の段階に達した後に、ＶＤＢはテストユーザ内で共有され得る。共有操作に要求される入力は、共有するＶＤＢの情報、ＶＤＢを共有するユーザを特定する情報、およびユーザに与えられた許可レベルを特定するアクセス制御情報を含み得る。
【０１０６】
エクスポート操作は、データベースに利用可能な情報を、あるコンピュータから別のコンピュータにコピーする操作である。通常、情報はデータベースとして組み立てるためにターゲットコンピュータにコピーされる。段階分け操作は、データベース情報を段階分けサーバにコピーするエクスポート操作に対応する操作である。段階分けサーバは、通常、生産環境におけるデータベースまたはデータベースアプリケーションへの変更を利用する前に、データベースのシステムレベルを検証するために用いられる。エクスポート操作における入力は、エクスポートされるＶＤＢを特定する情報、およびＶＤＢからデータがエクスポートされるターゲットマシンを特定する情報を含む。
【０１０７】
マスク操作は、データベース内の情報をコピーするときに、データベースの特定の情報を変更またはスキップする操作である。例えば、データベースをコピーするときに、ソース内の秘密情報はターゲットにはコピーされ得ない。別の例では、データベースをプロビジョニングするときに、データは暗号化される。秘密情報の例はクレジットカード情報または社会保障番号を含む。データベース情報が隠されたシナリオの例は、テスト目的の生産データベースのコピーを含む。ＶＤＢを用いて検証するデータベースのユーザは、生産データベースシステム１１０に記憶されている秘密情報を必要としない場合がある。ソースデータベースからコピーするデータを変換可能な他の操作は、圧縮および暗号化を含む。圧縮操作は、元の情報を保存するが、記憶時により小さいスペースを占有するようにデータのフォーマットを変換する操作である。暗号化操作は、暗号化情報をデコードする論理を有さないアプリケーションが読み出せないフォーマットにデータを変換する操作である。マスク、圧縮、または暗号化操作に対する入力は、ソースＶＤＢおよびターゲットデータベースを特定する情報を含む。ターゲットデータベースはそれ自体をＶＤＢとしてもよいし、データを従来のシステムにエクスポートしてもよい。
【０１０８】
消去操作は、ＶＤＢから不要な情報を削除する。通常、膨大なスペースを占有し、もはや必要としない情報を消去する。例えば、データベースは、長期間システム内で発生しているイベントに関連するイベントデータを記憶し得る。もはや必要としない古いデータ、またはアーカイブしたデータはデータベースから消去し得る。データベース情報がコピー操作から削除されるべき情報をスキップすることによりコピーされるときに、消去操作が実行される。消去操作における入力は、ソースＶＤＢおよびターゲットデータベースを特定する情報を含み得る。ターゲットデータベースはそれ自体をＶＤＢとしてもよいし、従来のデータベースでもよい。
【０１０９】
抽出、変換、およびロード（ＥＴＬ）操作は、データ保管プロジェクトにおいて実行される標準的な操作を指す。抽出ステップはソースからデータを取得し、変換ステップは操作上の特定の要求に基づいてデータを修正し、ロード操作はデータをターゲットシステムにロードする。ＥＴＬ操作に要求される入力は、ソースデータベースを特定する情報、ターゲットデータベースを特定する情報、およびデータ変換に実行される操作情報を含む。ＥＴＬ操作における入力は、ソースＶＤＢおよびターゲットデータベースを特定する情報を含んでもよい。ターゲットデータベースはそれ自体をＶＤＢとしてもよいし、従来のデータベースでもよい。
【０１１０】
複製操作は、ソースストレージシステムが記憶したデータの変化をターゲットストレージシステムに伝える。複製されるデータはＶＤＢ、または１つ以上の生産データベースシステム１１０から取得したデータベースブロックに対応する、ストレージシステムデータストア３９０が記憶したデータでもよい。ソースおよびターゲットストレージシステムは、複製操作用に適切に設定されなければならない。ソースストレージシステムにおける複製用のプログラムコードは、ソースストレージシステムが記憶するデータの変化を定期的に特定し、その変化をターゲットストレージシステムに送る。同様に、ターゲットストレージシステムにおけるプログラムコードは、ソースストレージシステムからの変化を受け取り、その変化を適切に処理し組み込むことができる。複製は、例えば、ソースストレージシステムからのデータをターゲットストレージシステムにミラーリングすることにより、可用性を高くするために用いることができる。何らかの理由でソースストレージシステムを使用できない場合でも、ターゲットストレージシステムは利用可能である。複製操作における入力は、ソースシステムおよびターゲットシステムを特定する情報を含み得る。
【０１１１】
バックアップ操作は、ストレージシステムに利用可能なデータをコピーして、元のデータが消失した場合に、元のストレージシステムの情報を復旧するためにストレージシステムのバックアップコピーが用いられるようにする操作である。復旧操作はバックアップコピーに利用可能な情報を再生して、情報を復旧する。バックアップの作成以降の元のストレージシステムにおけるいかなる変更も、更新情報が何らかの形式で保存されない限り、消失する可能性があることに留意されたい。一部の実施形態では、バックアップ情報は、可能性として遅い取得速度で、例えばテープバックアップシステムなどの大量のストレージシステムに記憶される。
【０１１２】
本明細書に定義した概念に基づく他のＶＤＢ操作がデータセンターのワークフローの自動化のために定義され用いられ得る。ＶＤＢ操作は、既存のＶＤＢ操作を組み合わせることでも作成され得る。ＶＤＢまたはデータベースストレージシステム１００に基づく前述の操作を利用する種々のワークフローシナリオを下に説明する。ワークフローシナリオごとに、従来のシステムに基づくシナリオの簡単な記述が、仮想データベースに基づくシナリオと比較される。
【０１１３】
検証および開発ワークフロー
図１５は従来のデータベースを用いた生産環境に基づく検証および開発用のシナリオを示す。図１５に示すように、生産データベースシステム１５０５は生産環境に用いられるデータベース１５００を含む。従来のシステムにおける生産環境に用いられるソフトウェアの検証および開発は、データベースに記憶されるデータ１５００の複数のコピーを要求する場合がある。図１５に示すように、データベース１５００は開発システム１５１０のデータストア１５１５にコピー１５５０される。一定期間中に開発システム１５１０において開発動作が実行され得る。データストア１５１５内のデータベースは定期的に、ソフトウェアおよび／またはデータベースを検証すために検証システム１５２０内のデータストア１５２５にさらにコピーされる。検証システム１５２０において生じた問題は、さらなる開発動作を要求し得るものとしてフィードバック１５７５され得る。開発および検証処理は複数回繰り返され得る。特定段階において、データベースは検証システム１５２０から、性能検証、システムインテグレーション、認証、およびユーザ承認を含み得る品質保証を実行する品質保証（ＱＡ）システム１５３０のデータストア１５３５にコピーされ得る。ＱＡシステム１５３０に基づくフィードバック１５７０は、開発システム１５１０を用いたさらなる開発を要求し得る。開発、検証、およびＱＡの全体処理は複数回繰り返され得る。十分なＱＡ検証が実行されると、データベースは段階分けシステム１５４０のデータストア１５４５にさらにコピーされ得る。ソフトウェアまたはデータベース内の最後の変化は、アップグレード手段などにより、生産データベースシステム１５０５に伝達１５６０される。
【０１１４】
図１６は仮想データベースに基づく検証および開発ワークフローのためのシナリオを示す。図１５に記述したワークフローにおけるデータベースのコピーを要求するいくつかのステップは、仮想データベースを用いることにより省略され得る。生産データベースシステム１５０５のデータベース１５００は、データベースストレージシステム１００にリンクおよびロード１６６５される。データベース１５００に対応する仮想データベースは、開発システム１６１０にプロビジョニング１６４０される。開発システム１６１０用に作成された仮想データベースは、スケジュールに基づいて複数回リフレッシュ１６７０され得る。ＶＤＢにおける開発動作が特定段階に至ると、ＶＤＢが検証システム１６１５と共有されて、それによりユーザは検証システム１６１５に適切にアクセスできる。開発ＶＤＢと検証ＶＤＢとの共有は、開発ＶＤＢの時点コピーに基づく検証ＶＤＢの作成を含み得る。検証システム１６１５からのフィードバック１５７５は、プロビジョン１６４０、リフレッシュ１６７０、および共有１６４５操作の反復を要求し得る。開発および検証が特定段階に至ると、ＶＤＢはさらにＱＡシステム１６３０とも共有１６５０され、データストア１６３５に記憶される。検証または開発ＶＤＢとＱＡシステムとの共有は、対応する検証／開発ＶＤＢの時点コピーに基づくＱＡ  ＶＤＢの作成を要求し得る。代替的に、開発ＶＤＢはＱＡシステムにエクスポートされる。ＶＤＢはまた、段階分けシステム１６４０のデータストア１６４５に直接段階分け１６５５されてもよい。
【０１１５】
いくつかの組織では、ワークフローに伴う種々の動作が、異なる物理的位置で実行され得る。例えば、生産サーバが組織のある場所に位置し、一方、開発および検証が組織の別の場所で実行され得る。開発および検証を実行する他の場所は離れた場所であり得、これにより、２つの場所間のネットワーク通信が遅くなる。このシナリオでは、図１５に示す開発システム１５１０および検証システム１５２０はある場所で利用可能であり、生産システム１５００、ＱＡシステム１５３０、および段階分けシステム１５４０を含むシステムの残りの要素は異なる場所で利用可能となる。
【０１１６】
図１７はこのシナリオにおける種々のシステム間のやりとりを示す図である。図１７に示すように、場所は、第１の場所１７６５および第２の場所１７６０と名付けられる。データベースストレージシステム１７１５は第１の場所１７６５で利用可能であり、第２のデータベースストレージシステム１７０５は第２の場所１７６０で利用可能である。生産データベースシステム１５０５に記憶されるデータベースは、第１の場所１７６５のデータベースストレージシステム１７１５にリンクおよびロード１７７５される。データベースに対応するデータは、データベースストレージシステム１７１５からデータベースストレージシステム１７０５に複製１７２５される。複製操作１７２５はまた、マスキング、消去、圧縮、および暗号化を含む他の操作と組み合わされ得る。開発／検証が離れた場所で実行され、第２の場所１７６０のユーザが生産データベースに利用可能な特有情報にアクセスできない場合があるので、情報は隠され、消去される必要が生じ得る。情報はまた、ネットワーク上をデータが移動する時間を短縮するために圧縮され得、データの流用を防ぐために暗号化され得る。データベースは開発システム１６１０にプロビジョニング１７４０およびリフレッシュ１７７０され、必要に応じて、検証システム１６１５と共有１７４５される。ストレージシステムデータストア１７１０が記憶したデータベースにおける検証および開発による変更は、データベースストレージシステム１７１５に伝達され、ストレージシステムデータストア１７２０に記憶され得る。これらの変更の伝達は、圧縮および暗号化と組み合わされ得る複製１７３０操作により実行され得る。データベースストレージシステム１７１５内の更新されたデータベースは、ＱＡシステム１６３０にエクスポート１７５０され、かつ／または段階分けシステム１６４０にクスポート１７５５される。
【０１１７】
バックアップおよび復旧
図１８ａはデータベースのバックアップおよび復旧のためのシナリオを示す。企業内の複数のデータベースシステム１８１０は、バックアップシステム１８１５のデータストア１８２０にコピー１８２５される。バックアップシステム１８１５は、大容量ディスク記憶装置などの持続性メモリ内のバックアップデータを記憶し得、かつ／またはテープバックアップ装置を用いることができる。従来のシステムでは、操作コピー１８２５は、データベース１８１０内のデータベースブロックのコピー、またはデータベース１８１０内のデータの１つ以上のファイルへのエクスポート、データストア１８２０内に記憶されるようにそれらのファイルをバックアップシステム１８１５コピーすることに対応する。いくつかのデータベースシステム１８１０は、システムにおけるデータベースのスナップショットを記憶し得、これもバックアップが要求される。データベースシステム１８１０は、別のデータベースシステムを利用してデータベースをミラーリングし、ミラーリングしたデータベース内の変化を元のデータベース１８１０と同期させる。ミラーリングしたデータベースは、バックアップシステム１８１５にバックアップされる必要があり得る。いくつかのシステムでは、故障および災害からデータを保護するために、データベース１８１０と共に追加の予備データベースが用いられ得る。予備データベースもまたバックアップシステム１８１５を用いてバックアップされ得る。データベースのバックアップを支援するベンダー固有のユーティリティの例は、ＯＲＡＣＬＥデータベースと共に用いられるＲＭＡＮがある。
【０１１８】
図１８ｂは従来のバックアップおよび復旧に必要とされる構成に取って代わる、データベースストレージシステム１８９０を用いたデータベースの復旧のシナリオを示す。この実施形態では、データベースストレージシステム１８９０は、それ自体がデータベースシステム１８６５内のデータベース１８６０のコピーのためのストレージとして機能する。コピー操作１８２５が、リンクおよびロード操作１８３０に変更されている。データベースストレージシステム１８９０がサポートするリンクおよびロード操作を利用する利点は、完全および増分バックアップと比較して、データベース１８６０からデータベースストレージシステム１８９０に転送するデータ量がはるかに少ないことである。さらに、リンクおよびロード操作１８３０を利用して実行されるデータベース１８６０のその後の更新は、完全なロードを繰り返す必要はなく、継続してデータベース１８６０内の変化のみが転送される。この結果、データベース１８６０からストレージシステムデータストア１８４０に移動するデータ量は、バックアップソリューションと比較してはるかに少ない。それ故、ストレージシステムデータストア１８４０内のデータが占有するストレージスペースは大幅に減少され、データベース１８６０からストレージシステムデータストア１８４０へのデータの転送は大幅により短時間で完了する。
【０１１９】
別の実施形態では、ストレージシステムデータストア１８４０に利用可能なデータは、バックアップシステム１８４５を用いてバックアップ１８５５される。バックアップ操作１８５５は、最初は、ストレージシステムデータストア１８４０に利用可能なデータ全体をコピーし、その後、ストレージシステムデータストア１８４０に記憶されているデータの増分変化のみをコピー１８５５できる。ストレージシステムデータストア１８４０に記憶されているデータ量は、データベース１８６０の変化のみを記憶しているため、従来のバックアップシステム１８１５のデータストア１８２０に記憶されているデータ量よりもはるかに少なくなり得る。それ故、ストレージシステムデータストア１８４０のデータのバックアップ１８５５に費やされる時間と、データベース１８６０内のデータのストレージシステムデータストア１８４０へのリンク／ロードに要求される時間との和は、大企業において、特に、ロードおよびソースデータベースが要求する時間に関して、バックアップ操作１８２５に費やされる時間よりもはるかに短くなり得る。
【０１２０】
データベース複製の保持
いくつかのワークフローシナリオでは、ソースデータベース内の情報を、ターゲットデータベースに定期的にコピーする。例えば、災害によるソースデータベースの破壊に備えて（災害復旧として知られる処理）、ソースデータベースから情報の復旧に用いられるターゲットデータベースに情報をコピーし得る。情報は１つ以上のデータベースにもコピーされ得、ユーザによるデータの有用性が向上する。例えば、メンテナンスまたは他の理由によりソースデータベースを停止する場合には、ターゲットデータベースをユーザに対して使用可能にする。一部の使用シナリオでは、ソースデータベースからレポート目的に用いられるターゲットデータベースに情報をコピーする。生産データベースシステムにおけるレポートの実行は、データベースに相当量の負荷がもたらされる。取引処理に生産データベースシステムが用いられるため、レポート生成のために、生産データベースシステムのデータベースと同期する異なるサーバが用いられることが好ましい。ターゲットデータベースは頻繁に更新され、レポートインフラストラクチャを利用して最新レポートを提供する。ソースデータベースからターゲットデータベースへの情報のコピーを要求する別のシナリオとして、ある機械から別の機械へのデータベースの移動がある。データベースの移動は、企業がソフトウェアをより新しいバージョンにアップグレードする場合に要求され得る。例えば、より新しいバージョンのオペレーティングシステム、より新しいバージョンのデータベース管理システム、より新しいバージョンのアプリケーションへのアップグレード、または新規のハードウェアへのアップグレードをする場合である。データベースはまた、例えば、ある会社が別の会社に買収された場合に、ある物理的位置から別の位置への移動が要求され得る。
【０１２１】
図１９は１つ以上のソースデータベースシステム１９０５からターゲットデータベースシステム１９０５に情報をコピーするシステム環境を示す。図１９はソースデータベースシステム１９０５のソースデータストア１９３５から、ターゲットデータベースシステム１９１０のターゲットデータストア１９４０への情報のコピーまたは転送１９５０を示す。他の実施形態では、１つのソースデータストア１９３５の情報が、２つ以上のターゲットデータストア１９４０に転送されてもよい。代替的に、２つ以上のソースデータストア１９３５の情報が、１つのターゲットデータストア１９４０に転送１９５０されてもよい。
【０１２２】
転送速度、転送頻度、転送される情報の種類などの、コピー１９５０操作に関連する種々のパラメータは、特定シナリオに依存し得る。ソースデータベースシステム１９０５およびターゲットデータベース１９１０は、第１の場所１９５５および第２の場所１９６０に示すなどの地理的に別々の位置である物理的位置に配置され得る。通常、異なる物理的位置に配置された機械は、同じ物理的位置に配置された機械と比較してネットワークの通信速度が遅い。本明細書に記載した実施形態は、同じ物理的位置に配置されたソースおよびターゲットデータベースシステムにも、互いに異なる位置に配置されたそれらにも適用される。
【０１２３】
図２０は図１９に示すような従来実施されるワークフローシナリオを実行するための、データベースストレージシステム１００に記憶された仮想データベースに基づくシステム環境を示す。図２０に示すように、ソースデータストア１９３５が記憶したデータベース内のデータは、ソースデータベースストレージシステム２００５のストレージシステムデータストア２０２５にリンクおよびロード２０２０される。操作２０２０は、ソースデータベースシステム１９０５の更新に基づいて、ストレージシステムデータストア２０２５のデータを更新するために実行されるその後のロード操作を含み得る。ソースデータベースストレージシステム２００５のストレージシステムデータストア２０２５内のデータは、ターゲットデータベースストレージシステム２０１０のトレージシステムデータストア２０３０に送信２０１５される。操作２０１５は、ストレージシステムデータストア内の全情報をコピーするコピー操作、バックアップ操作、またはストレージシステムデータストア２０２５の更新を、ストレージシステムデータストア２０３０に増加的にコピーする複製操作であり得る。
【０１２４】
データベースの移動のシナリオでは、操作２０１５は、ストレージシステムデータストア２０２５のデータ全体をコピーし得る。複製のシナリオでは、ストレージシステムデータストア２０２５の変更が、ストレージシステムデータストア２０３０に定期的にコピーされ得る。ストレージシステムデータストア２０３０の変更は、リフレッシュ操作を利用してターゲットデータベースシステム１９１０にプロビジョニングされたＶＤＢに適用され得る。ターゲットデータベースシステム１９１０による任意の変更がＶＤＢになされると、その変更はストレージシステムデータストア２０２５に戻るように伝達され得る。
【０１２５】
操作２０３０により、ストレージシステムデータストア２０３０に記憶されているデータベースを、ターゲットデータベースシステム１９１０が利用できるようになる。高可用性システムのシナリオでは、操作２０３０は、ストレージシステムデータストア２０３０からターゲットデータベースシステム１９１０へのＶＤＢのプロビジョニングに対応し得る。災害復旧のシナリオでは、操作２０３０は、ターゲットデータベースシステム１９１０へのデータベースのエクスポートに対応し得る。図２０に示すように、ソースデータベースストレージシステム２００５が、ＶＤＢシステム２０４０にＶＤＢをプロビジョニング２０３５し得る。ターゲットデータベースストレージシステム２０１０内のデータを使用して同等のＶＤＢが作成され、ＶＤＢシステム２０５０にプロビジョニング２０４５され得る。ソースデータベースストレージシステム２００５内のＶＤＢに対するいかなる変更も、ストレージシステムデータストア２０２５に自動的に保存され、転送操作２０１５によりターゲットデータベースストレージシステム２０１０に伝達される。
【０１２６】
一実施形態では、ターゲットデータベースストレージシステム２０１０は、操作２０１５前の、図３に示す全てのモジュールを有してもよい。別の実施形態では、図３に示すデータベースストレージシステムのモジュールを有さない機械が、ターゲットデータベースストレージシステム２０１０として用いるために提供され得る。例えば、ユーザは、必要なソフトウェアの全てはインストールされていない新しい機械を、データベースストレージシステム１００として機能するように提供することができる。この実施形態では、操作２０１５は、データベースストレージシステムのモジュールを実現するプログラムコードを、ストレージシステムデータストア２０２５に記憶されているデータと共にターゲットマシンにコピーする。ターゲットマシンにコピーされたプログラムコードがインストールされ、実行用に用意される。それ故、ターゲットデータベースストレージシステム２０１０として用いられるように提供された機械が、データベースストレージシステム１００のモジュールを実行するために準備される。ストレージシステムデータストア２０２５に記憶されているデータベースに関連するデータがストレージシステムデータストア２０３０にコピーされた後、ターゲットデータベースストレージシステム２０１０はＶＤＢの関連操作、例えば、仮想データベースの作成、またはＶＤＢシステム２０５０への仮想データベースのプロビジョニング２０４５を実行できる。
【０１２７】
図２１は図１９に示すような従来実施されるワークフローシナリオを実行するための、データベースストレージシステム１００に基づくシステム環境の別の実施形態を示す。ソースデータベースシステム１９０５は、データベースストレージシステム２１０５に直接リンクおよびロード２１１０される。図２１に示すように、データベースストレージシステム２１０５は、ソースデータベースの記憶場所１９５５とは異なる場所１９６０または物理的位置において利用可能であるか、２つのシステムが同一の場所に配置されてもよい。ソースデータベースシステム１９０５のソースデータストア１９３５にたいする変更は、定期的にデータベースストレージシステム２１０５にロード２１１０される。データベースストレージシステム２１０５は、災害復旧に利用され得る、ソースデータストア１９３５のデータベースのコピーとして機能する。データベースストレージシステム２１０５に仮想データベースが作成され得、ＶＤＢシステム２１５０に利用可能なようにプロビジョニングされ得る。
【０１２８】
一実施形態では、データベースストレージシステム２１０５はまた、それがソースデータベースシステム１９０５がダウンした場合に用いられ得る予備システムとして機能する、高可用性シナリオに用いられ得る。データベースストレージシステム２１０５は、ＶＤＢを作成して、作成したＶＤＢをＶＤＢシステム２１５０にプロビジョニング２１１５することにより、予備データベースとして機能する。対応するソースデータベースシステム１９０５が停止した場合には、ＶＤＢシステム２１５０は予備データベースとして機能し得る。ソースデータベースシステム１９０５が処理したデータベースリクエストは、ソースデータベースシステム１９０５が停止している間に、ＶＤＢシステム２１５０により処理することができる。ソースデータベースシステム１９０５がリクエストを直ぐに処理できる場合には、ＶＤＢシステム２１５０によってなされたＶＤＢへの変更は、ソースストレージシステムにエクスポートされる。ＶＤＢシステム２１５０からソースデータベースシステム１９３５に変更が適用された後、データベースリクエストはソースデータベースシステム１９０５に転用されてもよい。
【０１２９】
図２２は図１９に示すような従来実施されるワークフローシナリオを実行するための、データストレージシステムに基づくシステム環境の別の実施形態を示す。いくつかの企業では、ソースデータベースシステム１９０５からターゲットデータベースシステム１９１０にデータを複製する既存のシステムを備えている。それ故、図２１に示すようにソースデータベースシステム１９０５から直接データベースストレージシステム２２００にデータをリンクおよびロードする必要がない場合がある。図２２に示すリンクおよびロード２２６５操作は、ソースデータベースシステム１９０５から情報がコピーされているターゲットデータベースシステム１９１０において利用可能な情報を用いて実行され得る。データベースストレージシステムからのデータのリンク操作およびローディングは、ソースデータベースシステム１９０５への負荷を伴うことがあるが、ターゲットデータベースシステム１９１０などのミラーリングされたシステムからの適切な情報を取得することにより回避され得る。これにより、データベースストレージシステム２２００に必要な情報を提供している間、ソースストレージシステム１９０５には影響を及ぼさない。
【０１３０】
データウェアハウスを管理するためのワークフロー
図２３はデータベースに利用可能なデータを用いてデータウェアハウスおよびデータマートを作成するシステム環境示す。生産データベースシステム２３０５は、データストア２３３０が記憶した１つ以上のデータベース内の取引に基づく最新情報を含む。１つ以上の生産データベースシステム２３０５からの情報は、解析目的のために、操作可能データストア２３１０のデータストア２３４０に同化２３８０される。操作可能データストア２３１０内のデータは、抽出変換およびロード（ＥＴＬ）システム２３５５によりさらに処理される２３８５。ＥＴＬシステム２３５５によって処理されたデータは、データウェアハウスシステム２３１５に送られる２３７５。ＥＴＬシステム２３５５は、処理のためにデータを一時的に記憶できる。ＥＴＬシステム２３５５が実行する処理により、データはデータウェアハウスシステム２３１５特有のレポートおよび解析操作に有用な特定の形式で、データウェアハウスシステム２３１５のデータストア２３６０に記憶される。データストア２３６０に記憶されるデータサブセットは、特定の目的用のためのデータサブセットの解析を意図して、データマートシステム２３２０のデータストア２３６５のストレージのためにコンピュータ処理２３７０され得る。データは、前述のいくつかのシステムのデータストアに記憶されているので、バックアップシステム２３２５を用いてバックアップ２３５０され得、バックアップデータストア２３３５に記憶され得る。前述の処理は、データが変化しない場合でも、異なるシステム間で同一データの複数のコピーを保持できる。そうでないと、データの記憶にはいくつかの異なるコンピュータシステムが用いられ、それにより資源の利用が非効率的となる。
【０１３１】
図２４は図２３に示すような従来実施されるワークフローシナリオを実行するための、データベースストレージシステム１００に基づくシステム環境の実施形態を示す。生産データベースシステム２３０５のデータストア２３３０内のデータベースは、データベースストレージシステム２４００にリンクおよびロード２４５０される。最初のロード操作２４５０後のロード２４５０は、データストア２３３０内の対応するデータベースにおいて変更されたデータのみを転送する。仮想データベースを、操作可能データストア２３１０として用いるために、作成し、プロビジョニング２４５５することができる。ＥＴＬシステム２３５５は、操作可能データストア２３１０に関連するＶＤＢから取得したデータを処理２３８５し、処理したデータをデータウェアハウスシステム２３１５に送る２３７５する。データウェアハウス２３１５のデータストア２３６０に記憶されているデータは、データベースストレージシステム２４００にリンクおよびロード２４６０される。データベースストレージシステム２４００はＶＤＢを、データマートシステム２３２０に用いられるように作成し、プロビジョン２４７０できる。操作可能データストア２３１０、ＥＴＬシステム２３５５、およびデータマートシステム２３２０を含むシステムは、対応するデータベースを局所的に記憶する必要はなく、データベースを記憶するためにストレージシステムデータストア２４９０を利用できる。さらに、前述のワークフロー内の種々のデータベースのバックアップ処理は、バックアップシステム２３２５のデータストア２３３５にストレージシステムデータストア２４９０をバックアップ２４６５することにより達成できる。図１８に示すバックアップのワークフローシナリオにおいて記述したように、図２４に示すようなデータベースストレージシステム２４００を用いて実行されるバックアップは、図２３に示すような種々のシステムが実行する個々のバックアップよりも効率的となり得る。ストレージシステムデータストア２４９０のバックアップは効率的である。なぜならば、ストレージシステムデータストア２４９０がデータのコピーを効率的に記憶するため、バックアップするデータ量が大幅に減少し、さらには、単一のシステムからのデータの転送は、複数のシステムからのデータ転送よりも効率的であるからである。
【０１３２】
コンピューティングマシン構築
図２５は機械可読媒体からの命令を読み出し得、プロセッサ（またはコントローラ）によりその命令を実行し得る機械の実施形態の構成要素を示すブロック図である。特に、図２５は本明細書に記述する任意の１つ以上の手法を機械に実行させるための命令２５２４（例えば、ソフトウェア）を実行し得るコンピュータシステム２５００の例示の形態における機械の図表を示す。代替的な実施形態では、機械はスタンドアロンデバイスとして動作するか、あるいは他の機械に接続（例えば、ネットワーク接続）してもよい。ネットワーク配置では、機械はサーバ−クライアントネットワーク環境におけるサーバ機械またはクライアント機械として動作し得るか、ピアツーピア（または分散）ネットワーク環境におけるピア機械として動作し得る。
【０１３３】
機械は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、またはその機械が取得し得る機能を指定する命令２５２４（順次又はそれ以外で）を実行可能な任意の機械であり得る。さらに、単一機械のみを示したが、「機械」という用語は、本明細書に記述した任意の１つ以上の手法を用いて命令２５２４を個別にまたは共同で実行する機械の任意の集合も含み得る。
【０１３４】
例示のコンピュータシステム２５００は、バス２５０８を通じて互いに通信するように構成されたプロセッサ２５０２（例えば、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、１つ以上の無線周波数集積回路（ＲＦＩＣ）、またはこれらの任意の組み合わせ）、メインメモリ２５０４、およびスタティックメモリ２５０６を含む。コンピュータシステム２５００は、画像表示装置２５１０（例えば、プラズマ表示パネル（ＰＤＰ）、液晶表示装置（ＬＣＤ）、プロジェクタ、またはブラウン管（ＣＲＴ））をさらに含んでもよい。コンピュータシステム２５００は、これもまたバス２５０８を通じて互いに通信するように構成された英数字入力デバイス２５１２（例えば、キーボード）、カーソル制御デバイス２５１４（例えば、マウス、トラックボール、ジョイスティック、運動センサ、または他のポインティング機器）、ストレージユニット２５１６、信号発生デバイス２５１８（例えば、スピーカ）、およびネットワークインターフェースデバイス２５２０をさらに含んでもよい。
【０１３５】
ストレージユニット２５１６は、本明細書に記載された任意の１つ以上の手法または機能を具現化する命令２５２４（例えば、ソフトウェア）を記憶する機械可読媒体２５２２を含む。命令２５２４（例えば、ソフトウェア）は、コンピュータシステム２５００によるその実行中、メインメモリ２５０４またはプロセッサ２５０２（例えば、プロセッサのキャッシュメモリ）に完全または少なくとも部分的に存在してもよく、メインメモリ２５０４およびプロセッサ２５０２が機械可読媒体を構成してもよい。命令２５２４（例えば、ソフトウェア）は、ネットワークインターフェースデバイス２５２０を通じて、ネットワーク２５２６上で送信または受信され得る。
【０１３６】
例示の実施形態には単一媒体である機械可読媒体２５２２を示したが、「機械可読媒体」という用語が命令（例えば、命令２５２４）を記憶可能な単一媒体または複数の媒体（例えば、集中データベース、分散データベース、または関連するキャッシュおよびサーバ）を含むことは言うまでもない。「機械可読媒体」という用語もまた、機械が実行する命令（例えば、命令２５２４）を記憶でき、本明細書に開示する任意の１つ以上の手法を機械に実行させる任意の媒体を含むものとして理解される。「機械可読媒体」という用語は、限定されないが固体メモリ、光媒体、および磁気媒体形態のデータ保存場所を含む。
【０１３７】
さらなる設定の考慮
本明細書全体を通して、複数の事例が、単一の事例として記述した構成要素、操作、または構造を実現してもよい。１つ以上の方法の個々の操作を別々の操作として示し、記述したが、１つ以上の個々の操作を同時に実行してもよく、操作は記述した順序に実行される必要はない。例示の構成における個々の構成要素として示した構造および機能は、組み合わせた構造または構成要素として実現することができる。同様に、単一の構成要素として示した構造および機能性を、個々の構成要素として実現してもよい。これらおよび他の変形、変更、追加および改善は本明細書の主題の範囲内である。
【０１３８】
特定の実施形態を論理もしくは複数の構成要素、モジュール、または機構を含むものとして本明細書に記載した。モジュールはソフトウェアモジュール（例えば、機械可読媒体または伝送信号を具現化するコード）として構成してもよいし、ハードウェアモジュールとして構成してもよい。ハードウェアモジュールは特定の操作を実行可能な有形装置であり、特定の方法により構成または配置され得る。例示的な実施形態では、１つ以上のコンピュータシステム（例えば、スタンドアロン、クライアント、またはサーバコンピュータシステム）、またはコンピュータシステムの１つ以上のハードウェアモジュール（例えば、プロセッサまたはプロセッサの一群）は、本明細書に記載した特定の操作を実行するように動作するハードウェアモジュールとして、ソフトウェア（例えば、アプリケーションまたはアプリケーション部）により構成され得る。
【０１３９】
種々の実施形態では、ハードウェアモジュールは、機械的または電子的に実装されてもよい。例えば、ハードウェアモジュールは、特定の操作を実行するための、永久的に構成された専用回路または論理（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）などの専用プロセッサ）を含み得る。ハードウェアモジュールはまた、特定の操作を実行するための、ソフトウェアにより一時的に構成された（例えば、汎用プロセッサまたは他のプログラマブルプロセッサに含有される）プログラマブル論理または回路を含み得る。専用および永久的に構成された回路、または一時的に構成された（例えば、ソフトウェアにより構成された）回路において、ハードウェアモジュールを機械的に実施するか否かは、費用および時間を考慮して決定され得ることが理解される。
【０１４０】
それ故、「ハードウェアモジュール」という用語が、本明細書に記載した特定の操作を実行する特定の方法により動作する、物理的にかつ永久的に構成された（例えば、配線で接続された）、または一時的に構成された（例えば、プログラムされた）実在物である有体物を含有することが当然ながら理解される。本明細書に用いられる「ハードウェア実装モジュール」は、ハードウェアモジュールを意味する。ハードウェアモジュールが一時的に構成された（例えば、プログラムされた）実施形態を考慮すると、ハードウェアモジュール各々は、任意の一事例において後に構成または例示化される必要はない。例えば、ハードウェアモジュールがソフトウェアを用いて構成される汎用プロセッサを備えている場合には、汎用プロセッサは、様々な時間においてそれぞれが異なるハードウェアモジュールとして構成され得る。それ故、ソフトウェアはプロセッサを構成し、例えば、時間の一事例において特定のハードウェアモジュールを構成し、種々の時間の事例における種々のハードウェアモジュールを構成する。
【０１４１】
ハードウェアモジュールは他のハードウェアモジュールに情報を送り、かつそれからの情報を受け取り得る。それ故、記述したハードウェアモジュールは通信可能に接続され得る。このようなハードウェアモジュールが複数同時に存在する場合には、ハードウェアモジュールを（例えば、適切な回路およびバスを通じて）接続する信号伝送を通じて通信が達成され得る。複数のハードウェアモジュールが様々な時間において構成、またはインスタンス化される実施形態では、このようなハードウェアモジュール間の通信は、例えば、ストレージを通じて、および複数のハードウェアモジュールがアクセスするメモリ構造内に情報を取得することによって達成される。例えば、１つのハードウェアモジュールが、操作を実行し、それが通信可能に接続するメモリデバイス内の操作の出力を記憶できる。さらなるハードウェアモジュールが、その後、メモリデバイスにアクセスして、記憶した出力を取得および処理できる。ハードウェアモジュールはさらに、入力または出力デバイスとの通信を起動し得、情報資源に対する動作を実行する（例えば、情報の収集）。
【０１４２】
本明細書に記載した例示の方法における種々の操作は、少なくとも部分的に、（例えば、ソフトウェアにより）一時的に構成されたか、永久的に構成された１つ以上のプロセッサを利用して、関連操作を実行できる。一時的に構成されたか、永久的に構成されたかに関わらず、このようなプロセッサは、１つ以上の操作または機能を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書に参照するモジュールは、一部の例示的な実施形態では、プロセッサ実装モジュールを備えている。
【０１４３】
同様に、本明細書に記載した方法は、少なくとも部分的にプロセッサにより実施される。例えば、方法の操作の少なくとも一部は、プロセッサまたはプロセッサ実装ハードウェアモジュールのいずれかにより実行され得る。操作の特定の動作は、１つ以上のプロセッサ間で分配され得、単一機械に存在するだけでなく、複数の機械にわたっても分配され得る。いくつかの例示的な実施形態では、１つ以上のプロセッサは（例えば、家庭環境もしくはオフィス環境内の位置、またはサーバファームとして）単一位置に配置されてもよいが、他の実施形態では、プロセッサは複数位置に配置されてもよい。
【０１４４】
１つ以上のプロセッサはまた、「クラウドコンピュータ」環境内の関連操作の性能をサポートするように、または「サービス型ソフトウェア」（ＳａａＳ）として動作し得る。例えば、少なくとも一部の操作は、（プロセッサを含む機械の例として）コンピュータ群により実行され得る。これらの操作はネットワーク（例えば、インターネット）および１つ以上の適切なインターフェース（例えば、アプリケーションプログラムインターフェース）を通じてアクセス可能である。
【０１４５】
操作の特定の動作は、１つ以上のプロセッサ間で分配され得、単一機械に存在するだけでなく、複数の機械にも分配される。いくつかの例示的な実施形態では、１つ以上のプロセッサまたはプロセッサ実装モジュールは、（例えば、家庭環境もしくはオフィス環境内の位置、またはサーバファームとして）単一の地理的位置に配置されてもよい。他の例示的な実施形態では、１つ以上のプロセッサまたはプロセッサ実装モジュールサは、複数の地理的位置にわたって割り当てられてもよい。
【０１４６】
本明細書の一部は、機械メモリ（例えば、コンピュータメモリ）内のビットまたは２値デジタル信号として記憶されたデータの操作のアルゴリズムまたは象徴の観点から示される。これらのアルゴリズムまたは記号的表現は、それらの研究における本質を当業界の他の技術者に与えるために、データ処理分野の当業者が用いる技術の例として示される。本明細書に用いる「アルゴリズム」は、所望の結果を導く操作または類似の処理の首尾一貫したシーケンスである。この文脈では、アルゴリズムおよび操作は、物理量の物理的処置を伴う。通常、このような物理量は、必ずしもこれらに限らないが、機械による記憶、アクセス、転送、結合、比較、または他の処理を実行可能な電気、磁気、または光信号という形式であり得る。主に共通使用の理由から、「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数字」、「数詞」などの言葉を用いてこれらの信号を示すことが場合によっては好都合である。ただし、これらの言葉は、単に好都合な名称であり、適切な物理量に関連するものである。
【０１４７】
他に明確に記載しない限り、「処理」、「計算」、「算出」、「決定」、「提示」、「表示」などの言葉を用いた本明細書の記述は、メモリ（例えば、揮発性メモリ、非揮発性メモリ、またはそれらの組み合わせ）、レジスタ、または情報を受け取り、記憶、送り、または表示する他の機械部品の１つ以上の物理量を示すデータ（例えば、電子、磁気、または光学）を操作または変換する機械（例えば、コンピュータ）の機能または処理を意味し得る。
【０１４８】
本明細書に用いる「一実施形態」または「１つの実施形態」といった言い回しは、その実施形態との関連で記載された特定の要素、特徴、構造、または特性が、少なくとも一部の実施形態に含まれることを意味する。本明細書の様々な位置に記載する句「一実施形態では」は、全て同一の実施形態を必ずしも意味する訳ではない。
【０１４９】
一部の実施形態は、「連結された」および「接続された」という表現、さらにはこれらの派生語を用いて記述され得る。これらが互いに同義語として意図されていないことが理解されることは言うまでもない。例えば、いくつかの実施形態で用いられる「接続された」という用語は、２以上の要素が互いに直接に物理または電気接触していることを意味し得る。別の例では、いくつかの実施形態は、２以上の要素が直接に物理または電気接触していることを示す「連結された」という用語を用いて記述され得る。しかし、「連結された」という用語は、２以上の要素が、互いに直接には接触していないが互いに共同動作または通信することも意味することがある。実施形態はこれらの文脈により限定されない。
【０１５０】
本明細書に用いる「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」という用語またはこれらのあらゆる変形語は、包括的な含有を含むように意図される。例えば、要素の列挙を含む処理、方法、部品、または装置は、必ずしもこれらの要素のみに限定されず、明示的に列挙されてない、またはこのような処理、方法、部品、または装置に元々備えられている他の要素を含み得る。さらに、明確に逆に規定しない限り、「または」は含有を意味し、排他的な「または」は意味しない。例えば、条件「ＡまたはＢ」は、下記のいずれかの条件を満たす。すなわち、「Ａが真であり（または、存在している）、かつＢが偽である（または、存在していない）」、「Ａが偽であり（または、存在していない）、かつＢが真である（または、存在している）」、または「ＡおよびＢが共に真である（または、存在している）」である。
【０１５１】
また、本明細書における要素および構成要素の記述に、不定冠詞「ａ」または「ａｎ」を用いている。これは単に便宜上のためであり、本発明の範囲の一般的な意味を与えるためである。この記述は、「１つの」または「少なくとも１つの」を包含するように読まれるべきであり、また、単数は、それが複数を含意しないことが明らかでない限り、複数も包含する。
【０１５２】
当業者は、本明細書読了後、ストレージマネージャに記憶される生産データベースの時点コピーから仮想データベースを作成するシステムおよび処理のための追加の代替構造および機能の設計を理解する。それ故、特定の実施形態およびアプリケーションを示し、記述したが、開示する実施形態が、本明細書に開示する正確な構造および構成要素に限定されないことが理解される。本明細書に開示する方法および装置の配置、操作、および詳細に関する種々の変更、変化、および変形が、添付の請求項に定義された精神および範囲から逸脱することなく、達成され得ることは当業者に明らかである。
【図１】
0005591938.tif 000002
【図２ａ】
0005591938.tif 000003
【図２ｂ】
0005591938.tif 000004
【図３】
0005591938.tif 000005
【図４】
0005591938.tif 000006
【図５】
0005591938.tif 000007
【図６】
0005591938.tif 000008
【図７】
0005591938.tif 000009
【図８】
0005591938.tif 000010
【図９】
0005591938.tif 000011
【図１０】
0005591938.tif 000012
【図１１】
0005591938.tif 000013
【図１２】
0005591938.tif 000014
【図１３】
0005591938.tif 000015
【図１４】
0005591938.tif 000016
【図１５】
0005591938.tif 000017
【図１６】
0005591938.tif 000018
【図１７】
0005591938.tif 000019
【図１８ａ】
0005591938.tif 000020
【図１８ｂ】
0005591938.tif 000021
【図１９】
0005591938.tif 000022
【図２０】
0005591938.tif 000023
【図２１】
0005591938.tif 000024
【図２２】
0005591938.tif 000025
【図２３】
0005591938.tif 000026
【図２４】
0005591938.tif 000027
【図２５】
0005591938.tif 000028