(57)【要約】  方法は、複数のデータ記憶装置にわたってデータベースからのデータを格納するために記述され、各データ記憶装置は、相互に連結したコンピュータシステムのグループ内の対応するコンピュータシステムによってのみアクセスされることができる。本方法によれば、データベースの識別子が受信される。ストレージ階層インスタンスの識別子も受信され、ストレージ階層インスタンスは、各データ記憶装置内に１つまたは複数の格納先の論理的表現を含む。データベースの識別子およびストレージ階層インスタンスの識別子の受取に応答して、データベースからのデータは、ストレージ階層インスタンスによって論理的に表わされる格納先の２つ以上に格納され、データが格納される２つ以上の格納先の各々は、データ記憶装置が対応する１つの中にある。
2012504295.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ記憶装置にわたってデータベースからのデータを格納する方法であって、各データ記憶装置は相互に連結したコンピュータシステムのグループの対応するコンピュータシステムによってのみアクセスされることができ、前記方法は、
前記データベースの識別子を受信するステップと、
ストレージ階層インスタンスの識別子を受信するステップであって、前記ストレージ階層インスタンスは、前記データ記憶装置の各々に１つまたは複数の格納先の論理的表現を含むステップと、
前記データベースの前記識別子と前記ストレージ階層インスタンスの前記識別子とを受信することに応答して、前記ストレージ階層インスタンスによって論理的に表わされる２つ以上の前記格納先の前記データベースからのデータを格納するステップであって、データが格納される前記２つ以上の格納先の各々は、前記データ記憶装置の対応する１つの中にあるステップと
を具えたことを特徴とする方法。
【請求項２】
前記ストレージ階層インスタンスによって論理的に表わされる２つ以上の前記格納先の前記データベースからのデータを格納するステップは、
前記２つ以上の格納先の各々の前記データベースからのデータの同一のフラグメントのコピーを格納するステップ
を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記ストレージ階層インスタンスを生成するステップをさらに具え、
前記ストレージ階層インスタンスを生成するステップは、
前記ストレージ階層インスタンスの前記識別子を受信するステップと、
前記データ記憶装置の各々の内の前記１つまたは複数の格納先の各々の識別子を受信するステップと、
前記ストレージ階層インスタンスの前記識別子と前記データ記憶装置の各々の内の前記１つまたは複数の格納先各々の前記識別子とを受信することに応答して、前記ストレージ階層インスタンスを前記データ記憶装置の各々の内の前記１つまたは複数の格納先に関連づけるステップと
を含むことを特徴とする請求項１記載の方法。
【請求項４】
前記ストレージ階層インスタンスを変更するステップをさらに具え、
前記ストレージ階層インスタンスを変更するステップは、
前記ストレージ階層インスタンスの前記識別子を受信するステップと、
前記ストレージ階層インスタンスによって論理的に表わされない前記データ記憶装置の少なくとも１つの内の少なくとも１つの格納先の識別子を受信するステップと、
前記ストレージ階層インスタンスの前記識別子と前記ストレージ階層インスタンスによって論理的に表わされない前記少なくとも１つの格納先の前記識別子とを受信することに応答して、前記ストレージ階層インスタンスが前記少なくとも１つの格納先を論理的に表わすように、前記ストレージ階層インスタンスに前記少なくとも１つの格納先を関連づけるステップと
を含むことを特徴とする請求項１記載の方法。
【請求項５】
前記ストレージ階層インスタンスを変更することに応答して、前記少なくとも１つの格納先の前記データベースからのデータを格納するステップ
をさらに具えたことを特徴とする請求項４記載の方法。
【請求項６】
前記ストレージ階層インスタンスを変更するステップをさらに具え、
前記ストレージ階層インスタンスを変更するステップは、
前記ストレージ階層インスタンスの前記識別子を受信するステップと、
前記ストレージ階層インスタンスによって論理的に表わされる少なくとも１つの格納先の識別子を受信するステップと、
前記ストレージ階層インスタンスの前記識別子と前記ストレージ階層インスタンスによって論理的に表わされる前記少なくとも１つの格納先の前記識別子とを受信することに応答して、前記ストレージ階層インスタンスがもはや前記少なくとも１つの格納先を論理的に表わさないように前記ストレージ階層インスタンスから少なくとも１つの格納先を分離するステップと
を含むことを特徴とする請求項１記載の方法。
【請求項７】
前記ストレージ階層インスタンスを変更することに応答して、前記少なくとも１つの格納先からの前記データベースからデータを削除するステップ
をさらに具えたことを特徴とする請求項６記載の方法。
【請求項８】
その中に格納された制御論理を有するコンピュータ可読媒体を含むコンピュータプログラムプロダクトであって、前記制御論理は、
請求項１〜７のいずれかに記載の方法のステップを実行するように配置されたコンピュータ可読プログラム
を具えたことを特徴とするコンピュータプログラム。
【請求項９】
複数の相互に連結したコンピュータシステムと、
複数のデータ記憶装置であって、前記データ記憶装置の各々は、前記相互に連結したコンピュータシステムの対応する１つに接続されかつそれに単独でアクセス可能であるデータ記憶装置と、
前記相互に連結したコンピュータシステムの少なくとも１つの上で実行するコンピュータプログラム論理と
を具え、
前記コンピュータプログラム論理は、
データベースの識別子を受信し、かつストレージ階層インスタンスの識別子を受信するように構成されたコマンドプロセッサ（１１１２）であって、前記ストレージ階層インスタンスは前記データ記憶装置（２０４）の各々の内の１つまたは複数の格納先（１６０４）の論理的表現を含む、前記コマンドプロセッサと、
前記コマンドプロセッサ（１１１２）による前記データベースの前記識別子と前記ストレージ階層インスタンスの前記識別子の受信に応答して、前記ストレージ階層インスタンスによって論理的に表わされた２つ以上の前記格納先（１６０４）の前記データベースからのデータを格納するように設定されたデータ仮想化マネージャ（１６１２）であって、データが格納される前記２つ以上の格納先（１６０４）の各々は、前記データ記憶装置（２０４）の対応する１つの中にある、データ仮想化マネージャと
を含むことを特徴とするシステム。
【請求項１０】
前記コマンドプロセッサは、前記ストレージ階層インスタンスの前記識別子を受信し、前記データ記憶装置の各々の内の前記１つまたは複数の格納先の各々の識別子を受信し、前記ストレージ階層インスタンスの前記識別子と前記データ記憶装置の各々の内の前記１つまたは複数の格納先の各々の前記識別子を受信することに応答して、前記データ記憶装置の各々の内の前記１つまたは複数の格納先に前記ストレージ階層インスタンスを関連づけるようにさらに構成されること
を特徴とする請求項９記載のシステム。
【請求項１１】
前記コマンドプロセッサは、前記ストレージ階層インスタンスの前記識別子を受信し、前記ストレージ階層インスタンスによって論理的に表わされない前記データ記憶装置の少なくとも１つの内の少なくとも１つの格納先の識別子を受信し、前記ストレージ階層インスタンスの前記識別子と前記ストレージ階層インスタンスによって論理的に表わされない前記少なくとも１つの格納先の識別子とを受信することに応答して、前記ストレージ階層インスタンスが前記少なくとも１つの格納先を論理的に表わすように前記ストレージ階層インスタンスに前記少なくとも１つの格納先を関連づけるようにさらに構成されること
を特徴とする請求項９記載のシステム。
【請求項１２】
前記データ仮想化マネージャは、前記ストレージ階層インスタンスへの前記少なくとも１つの格納先の関連づけに応答して、前記少なくとも１つの格納先の前記データベースからのデータを格納するようにさらに構成されることを特徴とする請求項１１記載のシステム。
【請求項１３】
前記コマンドプロセッサは、前記ストレージ階層インスタンスの前記識別子を受信し、前記ストレージ階層インスタンスによって論理的に表わされる少なくとも１つの格納先の識別子を受信し、前記ストレージ階層インスタンスの前記識別子と前記ストレージ階層インスタンスによって論理的に表わされる前記少なくとも１つの格納先の前記識別子とを受信することに応答して、前記ストレージ階層インスタンスがもはや前記少なくとも１つの格納先を論理的に表わさないように前記ストレージ階層インスタンスからの前記少なくとも１つの格納先を分離するようにさらに構成されることを特徴とする請求項９記載のシステム。
【請求項１４】
前記データ仮想化マネージャは、前記ストレージ階層インスタンスからの前記少なくとも１つの格納先の分離に応答して、前記少なくとも１つの格納先から前記データベースからのデータを削除するようにさらに構成されることを特徴とする請求項１３記載のシステム。
【請求項１５】
前記データ仮想化マネージャは、前記相互に連結したコンピュータシステムの２つ以上の上で実行するデータ仮想化マネージャエージェントへの送信コマンドにより、前記ストレージ階層によって論理的に表わされる２つ以上の前記格納先の前記データベースからのデータを格納するように構成されることを特徴とする請求項９記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースサーバシステムのためのストレージ階層に関する。
【背景技術】
【０００２】
データベースサーバは、一般的にクライアントと呼ばれる他のコンピュータプログラムまたはコンピュータにデータベースサービスを提供するように構成されるコンピュータプログラムである。そのようなデータベースサービスは、例えば、データベースにデータ格納すること、データベースからデータを取り出すこと、データベースに格納されたデータを修正すること、または、データベースに格納されたデータの管理および利用に関連する他のサービスを実行することを含んでもよい。これらの機能を実行するために、データベースサーバは、データベースに格納されたデータのサーチ、ソート、およびインデクシングなどのような機能を実行するように構成しもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
そのようなサーバが十分な性能、高い可用性およびスケーラビリティを提供するのは、データベースサーバの管理者およびユーザのためである。さらに、そのようなサーバは、使用、管理および運営のしやすさを提供する必要がある。
【課題を解決するための手段】
【０００４】
この発明の概要は、以下の「発明の詳細な説明」においてさらに述べる概念を選択して簡略化した形式で紹介するために提供される。この「発明の概要」は、請求項の内容の重要な特徴または主要な特徴を同定するようには意図されないし、請求項の内容の範囲を限定するために用いられるようにも意図されない。
【０００５】
本明細書に記述された方法は、複数のデータ記憶装置にわたるデータベースからのデータを格納するための方法であり、各データ記憶装置には、相互に連結したコンピュータシステムのグループ内の対応するコンピュータシステムのみアクセスすることができる。その方法によると、データベースの識別子が受信される。ストレージ階層インスタンス（ｓｔｏｒａｇｅ  ｔｉｅｒ  ｉｎｓｔａｎｃｅ）の識別子も受信され、ストレージ階層インスタンスは、各データ記憶装置の内に１つまたは複数の格納先の論理的表現（ｌｏｇｉｃａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を含む。データベースの識別子およびストレージ階層インスタンスの識別子の受信に応答して、データベースからのデータは、ストレージ階層インスタンスによって論理的に表わされる格納先の２つ以上に格納され、データが格納される２つ以上の格納先の各々は、データ記憶装置が対応する１つの中にある。
【０００６】
システムもまた本明細書に記述されている。そのシステムは、相互に連結された複数のコンピュータシステムおよび複数のデータ記憶装置を含む。データ記憶装置の各々は、相互に連結されたコンピュータシステムの対応する１つに接続され、単独でそれにアクセス可能である。そのシステムは、相互に連結されたコンピュータシステムの少なくとも１つの上で実行するコンピュータプログラム論理を、さらに含む。コンピュータプログラム論理は、コマンドプロセッサおよびデータ仮想化マネージャ（ｄａｔａ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｍａｎａｇｅｒ）を含む。コマンドプロセッサは、データベースの識別子を受信し、かつストレージ階層インスタンスの識別子を受信するように構成され、ストレージ階層インスタンスは、各データ記憶装置内に１つまたは複数の格納先の論理的表現を含む。データ仮想化マネージャは、データベースの識別子、およびコマンドプロセッサによるストレージ階層インスタンスの識別子の受信に応答して、ストレージ階層インスタンスによって論理的に表わされる格納先の２つ以上にデータベースからのデータを格納するように構成され、データが格納される２つ以上の格納先の各々は、データ記憶装置が対応する１つの中にある。
【０００７】
コンピュータプログラムプロダクトもまた、本明細書に記述されている。このコンピュータプログラムプロダクトは、処理装置が複数のデータ記憶装置にわたるデータベースからのデータを格納することを可能にするために、その上にコンピュータプログラム論理を記録するコンピュータ可読媒体を含み、各データ記憶装置は、相互に連結されたコンピュータシステムのグループ内の対応するコンピュータシステムによってのみアクセスされることができる。コンピュータプログラム論理は、第１の手段、第２の手段および第３の手段を含む。第１の手段は、処理装置がデータベースの識別子を受信することを可能にするためにある。第２の手段は、処理装置がストレージ階層インスタンスの識別子を受信することを可能にするためにあり、ストレージ階層インスタンスは、各データ記憶装置内に１つまたは複数の格納先の論理的表現を含む。第３の手段は、データベースの識別子およびストレージ階層インスタンスの識別子の受信に応答するストレージ階層インスタンスによって論理的に表わされる２つ以上の格納先にプロセッサがデータベースからのデータを格納することを可能にするためにあり、データが格納される２つ以上の格納先の各々は、データ記憶装置の対応する１つの中にある。
【０００８】
さらに、本発明の様々な実施形態の構成および動作だけでなく、本発明のさらなる特徴および有利性も、添付の図面に関連して詳細に以下で記述される。本発明が本明細書に記述された特定の実施形態に限定されないことに留意されたい。そのような実施形態は、説明の目的のみのために本明細書に示される。付加的な実施形態は、本明細書に包含される教示に基づいて、当業者に明らかになるであろう。
【図面の簡単な説明】
【０００９】
添付の図面は、本明細書に組込まれて明細書の一部分を形成し、本発明を図示し、記述と共に、本発明の原理について説明し、かつ当業者が本発明をなし得て、かつ使用することを可能にする役目をさらに担う。
【００１０】
【図１】本発明の実施形態を実行できるデータベースシステムの一例のブロック図である。
【図２】データベースサーバのインスタンスおよびクラスタインフラストラクチャロジックの対応するインスタンスを含むブリック（Ｂｒｉｃｋ）が、単一コンピュータシステム上にインストールされ実行されるデータベースシステムのブロック図である。
【図３】２つ以上のブリックが同一のコンピュータシステム上にインストールされ実行されるデータベースシステムのブロック図である。
【図４】複数の格納先を含むデータ記憶装置のブロック図である。
【図５】クラスタインフラストラクチャロジック（ｃｌｕｓｔｅｒ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｌｏｇｉｃ）の代表的なインスタンスを表示するブロック図である。
【図６】クラスタインフラストラクチャロジックのインスタンス内に含むことができる１つまたは複数のマネージャを表示するブロック図である。
【図７】クラスタインフラストラクチャロジックのインスタンス内に含まれる複数のエージェントを表示するブロック図である。
【図８】テーブルとそこから取り出されたパーティションとの間の関係を示す図である。
【図９】パーティションとそこから取り出されたフラグメントとの間の関係を示す図である。
【図１０】異なるコンピュータシステムに関連したデータ記憶装置にわたり分散されるクローンのデータベースシステムのブロック図であり、そのクローンは物理的フラグメントの明示を含むものである。
【図１１】ストレージ階層インスタンスを生成、変更、または削除することに関連する機能を実行することに関与できる構成要素を表すブロック図である。
【図１２】ストレージ階層が生成されることができる方法の一例のフローチャートを表す。
【図１３】ストレージ階層インスタンスで１つまたは複数の新規の格納先を関連づけるために、既存のストレージ階層インスタンスを変更することができる方法の一例のフローチャートを表す。
【図１４】ストレージ階層インスタンスからの１つまたは複数の格納先を分離するために、既存のストレージ階層インスタンスを変更することができる方法の一例のフローチャートを表す。
【図１５】既存のストレージ階層インスタンスを削除することができる方法の一例のフローチャートを表す。
【図１６】ストレージ階層インスタンスへのデータベースの割り当て、およびそれにしたがってデータベースからのデータの格納に関連する機能の実行に関連できる構成要素を表すブロック図である。
【図１７】データベースをストレージ階層インスタンスに関連づけ、およびそれにしたがってデータベースからのデータを格納できる方法のフローチャートを表す。
【図１８】本発明の様々な態様を実装するために使用することができるプロセッサベースのコンピュータシステムの一例を表す。
【００１１】
本発明の特徴および有利性は、図面と共に以下で記述される「詳細な説明」からより明らになるであろう。その図面では、参照文字は対応する要素を全体にわたって識別する。図面において、同様の参考番号は、一般に、同一の、機能的に類似した、および／または構造上同様の要素を示す。１つの要素が最初に出現する図面は、対応する参照番号内の最左の桁（複数可）によって示す。
【発明を実施するための形態】
【００１２】
Ａ．オペレーティング環境の例
図１は、本発明の実施形態を実装できるデータベースシステム１００の一例のブロック図である。図１に示すように、システム１００は、ブリック１０２1、１０２2、１０２3、…、１０２nで示された複数のブリックを含み、ここでｎはシステム１００内のブリックの総数を示す。各ブリックは、データベースサーバ１１２のインスタンス、および通信的にそれに連結されるクラスタインフラストラクチャロジック１１４のインスタンスを含む。具体的には、ブリック１０２1は、データベースサーバ１１２1のインスタンス、および通信的にそれに連結されるクラスタインフラストラクチャロジック１１４1のインスタンスを含み、ブリック１０２2は、データベースサーバ１１２2のインスタンス、および通信的にそれに連結されるクラスタインフラストラクチャロジック１１４2のインスタンスを含む、等々である。システム１００は、３つ以上のブリックを含んでいるように示されているが、システム１００が２つのブリックのみまたは３つのブリックのみしか含まないこともできることは理解されよう。図１にさらに示されるように、各ブリック１０２1〜１０２nは、通信インフラストラクチャ１０４を介して、他の全てのブリック１０２1〜１０２nに接続される。
【００１３】
各データベースサーバインスタンス１１２1〜１１２nは、他のコンピュータプログラムまたはコンピュータにデータベースサービス（それはクライアントとして本明細書に参照される）を提供するように構成されるコンピュータプログラムのインスタンスを含む。そのようなデータベースサービスは、例えば、データベースにデータ格納すること、データベースからデータを取り出すこと、データベースに格納されたデータを修正すること、またはデータベースに格納されたデータの管理および利用に関連する他のサービスを実行することを含んでもよい。これらの機能を実行するために、各データベースサーバインスタンス１１２1〜１１２nは、データベースに格納されたデータのサーチ、ソート、およびインデクシングなどの機能を実行するように構成してもよい。一実施形態において、本発明はそのようには限定されていないが、各データベースサーバ１１２1〜１１２nのインスタンスは、米国ワシントン州、レドモンドのマイクロソフト社によって発行されるＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）の１つの版を含む。
【００１４】
クラスタインフラストラクチャロジック１１４1〜１１４nの各インスタンスは、データベースサーバインスタンス１１２1〜１１２nと対話する、すべてのユーザおよび／またはクライアントに単一システムイメージが提示されるように、複数のデータベースサーバインスタンス１１２1〜１１２nが単独の論理データベースシステムとして相互に動作することを可能にするように構成されるコンピュータプログラム論理を含む。クラスタインフラストラクチャロジック１１４1〜１１４nの各インスタンスも、単独のデータベースに関連したデータが複数のデータベースサーバインスタンス１１２1〜１１２nによって同時に格納され、取り出され、修正され、そうでなければ処理されることを可能にするように構成される。
【００１５】
データベースシステム１００の１つの実装において、図１に示されるデータベースサーバインスタンス１１２1〜１１２nおよび対応するクラスタインフラストラクチャインスタンス１１４1〜１１４nの各々の組み合わせは、対応するプロセッサベースのコンピュータシステム上にインストールされ、他の機能だけでなく前述の機能も実行するためにその上で実行される。１つのそのようなプロセッサベースのコンピュータシステムの例は、図１８を参照して本明細書に記述される。
【００１６】
例えば、図２は、データベースサーバインスタンス１１２1およびクラスタインフラストラクチャ論理インスタンス１１４1を含むブリック１０２1が、シングルプロセッサベースのコンピュータシステム２０２上でインストールされ実行されるデータベースシステム１００の１つの実装のブロック図である。図２に示すように、コンピュータシステム２０２は、通信インフラストラクチャ１０４および１つまたは複数のデータ記憶装置２０４に接続される。１つの実装において、データ記憶装置（複数可）２０４は、コンピュータシステム２０２にのみアクセス可能である。そのような実装において、データベースシステム１００のコンテキスト内のデータベースサーバインスタンス１１２1によって格納され、取り出され、修正され、そうでなければ処理される任意のデータベースデータも、コンピュータシステム２０２に接続されたデータ記憶装置（複数可）２０４上に格納されるであろう。
【００１７】
データ記憶装置（複数可）２０４は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ：シリアルアドバンストテクノロジーアタッチメント）インタフェース、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ：スモールコンピュータシステムインタフェース）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ：シリアル接続ＳＣＳＩ）インタフェース、またはファイバチャンネルインタフェースなどのような標準インタフェースを介してコンピュータシステム２０２に直接接続されることができるハードドライブ、光ドライブ、または他の型のドライブに限定されることなく、任意の型のＤＡＳ（ｄｉｒｅｃｔ−ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ：直接接続ストレージ）装置を含んでもよい。データ記憶装置（複数可）２０４は、さらに、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：記憶域ネットワーク）を介してアクセス可能な任意の型のデータ記憶装置、または任意の形式のＮＡＳ（ｎｅｔｗｏｒｋ−ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ：ネットワーク接続ストレージ）を含んでもよい。
【００１８】
データベースシステム１００の代替の実装において、２つ以上のブリックが同一のプロセッサベースのコンピュータシステム上にインストールされ実行されてもよい。そのような実装のブロック図は、図３に示される。図３に示すように、複数のブリック１０２1〜１０２m（各ブリックは対応するデータベースサーバインスタンスおよびクラスタインフラストラクチャ論理インスタンスを含む）は、シングルプロセッサベースのコンピュータシステム３０２上にインストールされ実行される。コンピュータシステム３０２上にインストールされたブリックの数（ｍで示された）は、データベースシステム１００内のブリックの総数（ｎで示された）未満であることが好適である。図３にさらに示すように、コンピュータシステム３０２は、通信インフラストラクチャ１０４および１つまたは複数のデータ記憶装置３０４に接続される。１つの実装において、データ記憶装置（複数可）３０４は、コンピュータシステム３０２にのみアクセス可能である。そのような実装において、データベースシステム１００のコンテキスト内のデータベースサーバインスタンス１１２1〜１１２mによって格納され、取り出され、修正され、そうでなければ処理される任意のデータベースデータも、コンピュータシステム３０２に接続されたデータ記憶装置（複数可）３０４上に格納されるであろう。データ記憶装置（複数可）３０４上に格納されたデータベースデータは、ブリック１０２1〜１０２m間で共有されない。むしろ、各ブリックには、図３にデータ記憶３０６1〜３０６mとして示される、それ自身の対応するデータ記憶がある。例えば、データベースデータがデータ記憶装置（複数可）３０４内のファイルに格納されれば、各ファイルは１つのブリック１０２1〜１０２m以外には排他的であろう。別の例として、データベースデータが生の記憶フォーマットに格納されれば、データ記憶装置（複数可）３０４内の物理ディスクは、ブリック１０２1〜１０２mが対応するもの以外には排他的であろう。
【００１９】
図１〜図３において、通信インフラストラクチャ１０４は、１つのコンピュータシステムから別のコンピュータシステムに対してデータを伝えることができる任意の通信インフラストラクチャも表すように意図される。例えば、１つの実装において、通信インフラストラクチャ１０４は、ギガビットイーサネット技術、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）（登録商標）技術などを使用して実行される高速ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ローカルエリアネットワークを含む。しかしながら、これらの例は、限定的には意図されない。また、他の通信インフラストラクチャが使用されてもよい。
【００２０】
図４は、図２を参照して上で説明したようなデータ記憶装置（複数可）２０４または図３を参照して上で説明したような任意のデータ記憶装置（複数可）３０４のいずれかを表わすことができるデータ記憶装置４００のブロック図である。図４に示すように、データ記憶装置４００は、複数の格納先４０２1、４０２2、…、４０２iを含む。各々のそのような格納先は、例えば、データ記憶装置４００が接続されているコンピュータシステムに関連したファイルシステムにより識別可能でアクセス可能な量を含んでもよい。各々のそのような格納先は、さらに１つまたは複数のボリュームを含むストレージの論理装置を含んでもよい。各々のそのような論理装置は、ＬＵＮ（ｌｏｇｉｃａｌ  ｕｎｉｔ  ｎｕｍｂｅｒ：論理装置番号）を使用して識別してもよい。
【００２１】
図５は、複数のクラスタインフラストラクチャ論理インスタンス１１４1〜１１４nの単独の表現インスタンス１１４をより詳細に示すブロック図である。図５に示すように、クラスタインフラストラクチャロジック１１４1〜１１４nの各インスタンスは、複数のエージェント５０２を含み、状況に応じて１つまたは複数のマネージャ５０４を含む。
【００２２】
各マネージャ（複数可）５０４は、複数のデータベースサーバインスタンス１１２1〜１１２nが単独の論理データベースシステムとして相互に動作ことを可能にし、かつ単独のデータベースに関連したデータが複数のデータベースサーバインスタンス１１２1〜１１２nによって同時に格納され、取り出され、修正され、そうでなければ処理されることを可能にすることが必要なある機能の性能を制御するように構成される。図６に示すように、マネージャ５０４は、構成マネージャ６０２、データ仮想化マネージャ６０４、グローバルデッドロックマネージャ６０６およびトランザクション調整マネージャ６０８の１つまたは複数を含んでもよい。
【００２３】
構成マネージャ６０２は、キークラスタマネージャであり、他のマネージャおよびエージェントの起動およびシャットダウン、クラスタの再構成などのようなクリティカルアクティビティを組み合わせる。
【００２４】
データ仮想化マネージャ６０４は、データ仮想化に関与する。そのような利用者データに関連したメタデータをどこに配列しなければならないかだけでなく、すべての利用者データをどこに配列しなければならないかに関して決定する。さらに、データ仮想化マネージャ６０４は、スケーラビリティを達成し、かつボトルネックを無効にする目的のためのロードバランスにも関与する。データ仮想化マネージャ６０４は、データの可用性およびアラインメントに対するスケーラビリティを交換するポリシーを実行する。
【００２５】
データベースシステム１００の１つの実装において、各々の前述のマネージャ型のインスタンスは、クラスタインフラストラクチャロジック１１４1〜１１４nのｎ個のインスタンスのサブセット内のみに含まれる。したがって、例えば、データ仮想化マネージャ６０４のインスタンスは、ｎが２以上である実装において、クラスタインフラストラクチャロジックの２つのインスタンス１１４1〜１１４n内のみに含まれていてもよい。万一現在実行しているマネージャが障害を起こせば、これは資源を節約する役目をするだけでなく、ある程度の冗長度を可能にする。各マネージャ型の１つのインスタンスだけが、任意の所定時刻に決定することを許可される。各マネージャは、クラスタインフラストラクチャロジック１１４1〜１１４nの各々のインスタンス内にあるエージェントに対応するインスタンスへの送信コマンドおよびクラスタインフラストラクチャロジック１１４1〜１１４nの各々のインスタンス内にあるエージェントに対応するインスタンスからの受信情報により、その任命された機能を実行するように構成される。図７に示すように、これらのエージェント５０４は、構成マネージャエージェント７０２、データ仮想化マネージャエージェント７０４、グローバルデッドロックマネージャエージェント７０６およびトランザクション調整マネージャエージェント７０８を含む。
【００２６】
データベースシステム１００は、複数の異なるコンピュータシステム（各々は単独の論理データベースにアクセスするために使用することができる）上で実行する複数のデータベースサーバインスタンス１１２1〜１１２nを提供することにより、部分的に高い可用性を達成する。データベースサーバインスタンス、またはそれが実行しているコンピュータシステムが障害を起こした場合、異なるコンピュータシステム上で実行する１つまたは複数の他のデータベースサーバインスタンスを用いて、データベースサービスを取得してもよい。
【００２７】
データベースシステム１００は、異なるコンピュータシステム上で実行されるブリック１０２1〜１０２nに関連した複数のデータ記憶装置にわたるデータベースからのデータを格納することにより高まる性能を達成し、その結果、そのようなデータを処理することに関連した作業負荷をコンピュータシステムにわたって分散することができる。データベースシステム１００は、それに関連する１つのコンピュータシステムおよび／またはデータ記憶装置（複数可）が故障した場合に同一のデータの代替のコピーが異なるコンピュータシステムおよび関連するデータ記憶装置（複数可）を介してアクセスできるように、データ記憶装置にわたって同一のデータベースデータのコピーを格納することにより、さらに高い可用性を達成する。これらの概念は、図８〜１０に関連して図示される。
【００２８】
具体的には、図８は、データベース内のテーブル８０２を表し、それは、例示的な行８１２のような一連の行を含む。各データベースサーバインスタンス１１２1〜１１２nは、ユーザにそのようなテーブルを生成する能力を与えるように構成され、更に、行のグループを生成するためにそのようなテーブルを分割する（パーティションと呼ばれる）ように構成される。例えば、図８にさらに示されるように、テーブル８０２は、第１のパーティション８０４および第２のパーティション８０６に分割してもよい。
【００２９】
データ仮想化マネージャ６０４は、さらに各パーティションをフラグメントと呼ばれる行のより小さなグループに分割するように構成される。例えば、図９に示されるように、第１のパーティション８０４は、第１のフラグメント９０２、第２のフラグメント９０４および第３のフラグメント９０６に分割してもよい。フラグメントは、論理構成体である。フラグメントの物理的発現は、クローンと呼ばれる。
【００３０】
データ仮想化マネージャ６０４は、性能を改善し、かつ高い可用性を提供するために、異なるコンピュータシステムに関連したデータ記憶装置にわたってクローンを分散するように、さらに構成される。データ仮想化マネージャ６０４は、冗長因子に基づいてデータ記憶装置にわたって生成され分散されるためにクローンの数を決定してもよい。冗長因子は、実行に左右されるシステム管理者またはユーザが設定してもよい。
【００３１】
例えば、図１０は、データベースシステム１０００として示されたデータベースシステム１００の１つの実装のブロック図であり、異なるコンピュータシステムに関連したデータ記憶装置にわたってクローンは分散される。図１０に示されるように、ブリック１０１４を実行するコンピュータシステム１０１０は、データ記憶装置１０１２に接続され、ブリック１０２４を実行するコンピュータシステム１０２０は、データ記憶装置１０２２に接続され、および、ブリック１０３４を実行するコンピュータシステム１０３０は、データ記憶装置１０３２に接続される。コンピュータシステムは、通信インフラストラクチャ１００４を介して接続される。図９の第１のフラグメント９０２がクローン１００２1、１００２2および１００２3として物理的に示され、図９の第２のフラグメント９０４がクローン１００４1、１００４2および１００４3として物理的に示され、図９の第３のフラグメント９０６がクローン１００６1、１００６2および１００６3として物理的に示されるものと仮定する。
【００３２】
図１０に示されるように、データ仮想化マネージャ６０４は、各データ記憶装置１０１２、１０２２および１０３２に対して各フラグメントに関連した１つのクローンをそれぞれ分散している。例えば、クローン１００２1は、データ記憶装置１０１２内に格納され、クローン１００２2は、データ記憶装置１０２２内に格納され、クローン１００２3は、データ記憶装置１０３２内に格納される。その結果、各コンピュータシステムが処理を実行するために必要データに対してローカルアクセスを有するので、第１のパーティション８０４を構成する３つのフラグメント９０２、９０４および９０６のすべての上で動作するあらゆる処理に関連した作業負荷は、コンピュータシステム１０１０、１０２０、１０３０にわたって容易に分散することができる。更に、万一コンピュータシステム１０１０、１０２０および１０３０のいずれかの１つ、またはその関連するデータ記憶装置が障害を起こしたならば、フラグメント９０２、９０４および９０６によって論理的に表わされるデータは、他のコンピュータシステムおよび関連するデータ記憶装置のいずれかを介して、まだなおアクセス可能である。
【００３３】
データベースシステム１０００のアーキテクチャは、システム１０００内の各コンピュータシステムが必要なデータベースデータにアクセスし処理するために他のコンピュータシステムのいずれかとも共有リソースを共有しないので、「共有なし（ｓｈａｒｅｄ  ｎｏｔｈｉｎｇ）」アーキテクチャと称してもよい。アーキテクチャは、好ましくは新規のコンピュータシステムおよびデータ記憶装置の追加を通じて容易なスケールアウトを可能にする。
【００３４】
Ｂ．ストレージ階層
ある従来のデータベースサーバは、特定のデータベースに関連したデータが格納されるべき物理的位置を指定することをユーザに求めている。ストレージ仕様は、例えば、１つまたは複数のデータベースファイルを含んでもよい。データベース生成処理の一部として物理的な格納先を指定することをユーザに求めてもよい。
【００３５】
前節に記述されているようなデータベースシステム１００に対して、そのようなスキームを拡張することは、多くの問題を提起する。例えば、データベースの作成者が、ブリック１０２1〜１０２nが実行しているコンピュータシステムに関連した各種のデータ記憶装置に、データベースに関連したデータがどのようにして格納されるべきであるかを指定することを義務づけられれば、データベースシステム１００の単一システムイメージ主義に反するであろう。
【００３６】
更に、データベースシステム１００が多くのコンピュータシステムおよび多くの関連するデータ記憶装置を含めるために拡大される場合、すべてのデータ記憶装置にわたって指定する格納先に関連した複雑性は、それに比例して増加する。
【００３７】
さらに、上述のように、データベースシステム１００に関連した目的は、高い可用性である。これは、複数の異なるコンピュータシステムに関連した、複数の異なるデータ記憶装置にわたって同一のデータベースデータの多重表現の協調的生成および保存を通して、データベースシステム１００に部分的に達成される。この生成と保存のスキームは、ブリックの障害などのような問題のシームレスなハンドリングを可能にする。ユーザがデータベースに関連したデータが格納されるべき正確な物理的位置を指定することを可能にすることは、そのような自動的な生成および保存の機能を妨害または無効にするかもしれない。
【００３８】
なおさらに、ユーザがデータベースに関連したデータが格納されるべき物理的位置を指定することを義務づけられるデータベースシステムにおいて、ユーザは、単独のデータベースに関連した複数ファイルが異なる物理的位置に格納される場合に生じるファイル名の急増という問題点に対処することを義務づけられるかもしれない。
【００３９】
本発明の実施形態は、提供するシステム全体にわたる論理的なストレージコンテナ（ストレージ階層と名付けられた）により前述の問題点の各々に対処する。各ストレージ階層は、論理的に１つまたは複数の格納先を表わす。ストレージ階層によって論理的に表わされる格納先は、複数の異なるデータ記憶装置内に存在してもよく、各々の複数の異なるデータ記憶装置は、相互に連結したコンピュータシステムのグループ内の対応するコンピュータシステムにのみアクセス可能であってもよい。データベースシステム１００などのようなシステムは、有利には、ストレージ階層の用途によってデータベースシステム１００の一部であるすべてのブリック上のユーザに単一システムイメージを提示することができる。
【００４０】
ストレージ階層を提供することにより、本発明の実施形態は、ユーザによって直接扱うことができるストレージのための単一システムの抽象的概念を提供する。従って、ユーザは、多数のデータ記憶装置にわたってデータを格納することに関連した、きめの細かい細部および複雑性に関係する必要がない。そのような単一システムの抽象的概念は、データベースシステム全体にわたるストレージ要求に対処する際の、使用、管理および運営をユーザに容易に提供する。更に、ストレージ階層で作動することに関与する複雑性は、有利には、データベースシステムのサイズに関係なく一定のままである。
【００４１】
データ仮想化マネージャ６０４などのようなソフトウェア構成要素は、複数の異なるデータ記憶装置にわたってストレージ階層の用途によってデータベースデータの生成および格納のための責任をさらに負うことができる。その結果、ユーザは、データベースに関連したデータが格納されるべき正確な物理的位置の指定に関係する必要がない。実施形態においては、ファイルがシステムソフトウェア構成要素によって自動的に名前を付けられるので、ユーザはさらにファイル名の急増問題点について心配する必要もない。
【００４２】
１．データベースファイルおよびファイルグループ
ストレージ階層の特性および用法のより良い理解を呈するために、本発明の実施形態によるストレージ階層に関連づけられてもよい各種のクラスのデータベースデータが、ここで記述される。この記述はデータベースシステム１００の実施形態に特に関し、データベースサーバ１１２1〜１１２nの各インスタンスは、米国ワシントン州、レドモンドのマイクロソフト社によって発行されたＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）の１つの版を含む。しかしながら、本発明はそのような実施形態に限定されない。
【００４３】
データベースシステム１００内のデータベースには、１次データファイル、２次データファイルおよびログファイルの３つの型のファイルがあってもよい。１次データファイルは、データベースのスタートポイントおよびデータベース内の他のファイルに対するポイントである。すべてのデータベースには１つの１次ファイルがある。１次データファイルのための推奨されたファイル名拡張子は、．ｍｄｆである。
【００４４】
２次データファイルは、１次データファイルとは別のデータベースに関連したすべてのデータファイルを構成する。他のデータベースにいくつかの２次データファイルがある一方で、あるデータベースには２次データファイルがなくてもよい。２次データファイルのための推奨されたファイル名拡張子は、．ｎｄｆである。
【００４５】
ログファイルは、データベースを回復するために使用されるすべてのログ情報を保持する。１つ以上のログファイルがある場合もあるが、各々のデータベースにつき少なくとも１つのログファイルがなければならない。ログファイルのための推奨されたファイル名拡張子は、．ｌｄｆである。
【００４６】
データベースシステム１００において、データベースオブジェクトとファイルは、割り当てと管理の目的のためのファイルグループ内で一緒にグループ化することができる。１次ファイルグループとユーザ定義ファイルグループとの２つの型のファイルグループがある。データベースに関連した１次ファイルグループは、１次データファイル、および別のファイルグループに特に割り当てられない任意の他のファイルも内蔵している。システムテーブル（それらは以下で説明される）のためのすべてページは、１次ファイルグループ内に割り当てられる。ユーザ定義ファイルグループは、ＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥまたはＡＬＴＥＲ  ＤＡＴＡＢＡＳＥステートメントにおいてＦＩＬＥＧＲＯＵＰキーワードを使用することにより指定されるあらゆるファイルグループである。
【００４７】
ログファイルは、ファイルグループの一部ではない。ログ領域は、データ領域とは別々に管理される。
【００４８】
ファイルは１つ以上のファイルグループのメンバーにはなりえない。テーブル、インデックスおよび多くの対象データは、指定されたファイルグループに関係することができる。この場合には、すべてのページはそのファイルグループに割り当てられる、またはテーブルおよびインデックスを分割することができる。分割されたテーブルおよびインデックスのデータは、データベース内の分割のファイルグループに配列することができる各ユニットに分割される。
【００４９】
各データベース内の１つのファイルグループは、デフォルトファイルグループと指定される。ファイルグループを指定せずに、テーブルまたはインデックスが生成される場合、すべてのページがデフォルトファイルグループから割り当てられるものと仮定される。１つのファイルグループだけが一度にデフォルトファイルグループになりえる。ｄｂ＿ｏｗｎｅｒ固定データベースロールのメンバーは、デフォルトファイルグループを１つのファイルグループから別のファイルグループに対して切り替えることができる。デフォルトファイルグループが指定されない場合、１次ファイルグループがデフォルトファイルグループである。
【００５０】
データベースシステム１００に関連したシステムメタデータは、多くのシステムデータベースに格納されてもよく、その各々には前述した多くのファイル形式がある。例えば、システムメタデータは、マスターデータベースおよびモデルデータベースを含んでもよく、その各々はデータとログファイルを含む。システムテーブルには、構成マネージャ、トランザクション調整マネージャおよびデータ仮想化マネージャの、論理的メタデータ、物理的メタデータおよび持続状態／メタデータの３種類のメタデータがある。
【００５１】
論理的メタデータは、データベースシステム１００のすべてのブリックに関連したデータ記憶装置に複製された、または物理的に永続化されたデータである。メタデータマネージャと呼ばれるソフトウェア構成要素が、この機能を実行するように構成される。
【００５２】
物理的メタデータは、特定のブリックが実行しているコンピュータシステムにのみアクセス可能なデータ記憶装置上で格納されるメタデータを記述する。複製されたコピーはなく、システムテーブルは各々のデータベースフラグメント上に分割データフラグメントを有しているようにモデル化される。それにより、これらのテーブルのコンテンツは、各々のブリックに関してローカルに格納されるすべての物理的メタデータの結合である。
【００５３】
構成マネージャ／トランザクション調整マネージャ／データ仮想化マネージャメタデータは、定義済みのアルゴリズムに従って、あるブリックに関連したデータ記憶装置に複製される。このメタデータは、メタデータマネージャの観点から「物理的メタデータ」として扱われる。
【００５４】
２．ストレージ階層のプロパティ
本発明の一実施形態によるストレージ階層の各インスタンスに対して一般的なプロパティの記述は、以下の表１に与えられる。ストレージ階層の用途はそのような実施形態に限定されないが、記述されるプロパティのいくつかは、データベースシステム１００の実施形態に特に関し、データベースサーバ１１２1〜１１２nの各インスタンスは、米国ワシントン州、レドモンドのマイクロソフト社によって発行されたＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）の１つの版を含む。
【００５５】
【表１】
2012504295.tif 000003
【００５６】
表１に示されるように、ストレージ階層インスタンスのプロパティは、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｉｄ、ｎａｍｅ、ｔｙｐｅ、ｉｓ＿ｄｅｆａｕｌｔ、およびｓｔｏｒａｇｅ＿ｐｏｏｌに分類される。ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｉｄプロパティは、データベースシステム１００内のすべてのブリックのための単独のストレージ階層インスタンスを一意に識別するデータベースシステム１００内のソフトウェア構成要素によって生成された不変の値を含む。
【００５７】
Ｎａｍｅプロパティは、データベースシステム１００内のすべてのブリックのためのストレージ階層インスタンスに一意に関連づけた名前を含む。名前は、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ：構造化照会言語）オブジェクトの命名規約などのように、データベースサーバインスタンス１１２1〜１１２nに関連したオブジェクト命名規約を順守するように義務づけられてもよい。データベースシステム１００の１つの実装において、システムは、各々の型のストレージ階層のためにデフォルトストレージ階層インスタンスを提供する。そのような実装において、ユーザが作成したストレージ階層インスタンスがすべてユーザによって指定されている一方で、対照的に、デフォルトストレージ階層インスタンスに関連づけた名前は、データベースシステム１００によって提供される。一実施形態において、ストレージ階層の命名のために使用された名前空間は、フラットな非階層的な名前空間である。表１に示されるように、ストレージ階層インスタンスに関連づけた名前は、本明細書にさらに詳細に記述されるように、ＡＬＴＥＲ  ＳＴＯＲＡＧＥ  ＴＩＥＲコマンドを使用して更新してもよい。
【００５８】
ストレージ階層の各インスタンスには、ストレージ階層インスタンスの生成の間に設定されるプロパティが型である。一旦設定されたならば、ストレージ階層インスタンスに割り当てられた型を修正することはできない。ストレージ階層の型は、ｓｙｓｔｅｍ＿ｄａｔａ、ｓｙｓｔｅｍｊｏｇ、ｔｅｍｐ＿ｄａｔａ、ｔｅｍｐｊｏｇ、データおよびログを含むが、これらに限定されない。これらのストレージ階層の型は、以下で、より詳細に記述されるであろう。
【００５９】
プロパティは、ストレージ階層インスタンスがストレージ階層のデフォルトインスタンスであるか否かをデフォルトで指定する。一実施形態において、定められたストレージ階層の型の１つのデフォルトインスタンスだけがある。
【００６０】
プロパティｓｔｏｒａｇｅ＿ｐｏｏｌは、ストレージ階層インスタンスに関連した１つまたは複数のストレージ仕様を識別する。本発明の一実施形態によるストレージ仕様の一例は、以下の表２に記述される。
表２に示されるように、ストレージ仕様インスタンスに関連したプロパティは、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｉｄ、ｓｔｏｒａｇｅ＿ｓｐｅｃ＿ｉｄ、ｂｒｉｃｋ＿ｉｄおよびパスを含む。
【００６１】
【表２】
2012504295.tif 000004
【００６２】
プロパティストレージ階層ＩＤは、ストレージ仕様が関連するストレージ階層インスタンスを一意に識別する不変の値である。
【００６３】
プロパティｓｔｏｒａｇｅ＿ｓｐｅｃ＿ｉｄは、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｉｄによって識別されたストレージ階層インスタンスに関してのストレージ仕様インスタンスを一意に識別する値である。表２に示されるように、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｉｄおよびｓｔｏｒａｇｅ＿ｓｐｅｃ＿ｉｄの組み合わせは、データベースシステム１００内のすべてのブリックのためのストレージ仕様を一意に識別する複合キーを規定する。
【００６４】
プロパティｓｔｏｒａｇｅ＿ｓｐｅｃ＿ｎａｍｅは、ストレージ仕様に関連した名前を含む。ｓｔｏｒａｇｅ＿ｓｐｅｃ＿ｎａｍｅは、定められたストレージ階層インスタンスにわたって一意であるべきであるし、データベースサーバインスタンス１１２1〜１１２nに関連した識別子の命名のために、ある規則を順守するように義務づけてもよい。
【００６５】
プロパティｂｒｉｃｋ＿ｉｄは、ストレージ仕様が関係するデータベースシステム１００内でのブリック１０２1〜１０２nの１つの一意の識別子である。
【００６６】
プロパティパスは、ｂｒｉｃｋ＿ｉｄによって識別されたブリックが実行しているコンピュータシステムに関連したデータ記憶装置内の格納先のパスを記述する。図４を参照して上で説明したように、格納先は、例えば、コンピュータシステムに関連したファイルシステムにより識別可能でそのファイルシステムにアクセス可能なボリュームを含んでもよい。さらに図４を参照して上で説明したように、格納先は、１つまたは複数のボリュームを含むストレージの論理装置を含んでもよく、ＬＵＮ（ｌｏｇｉｃａｌ  ｕｎｉｔ  ｎｕｍｂｅｒ：論理装置は論理装置番号）によって識別してもよい。
【００６７】
３．ストレージ階層の型
表１を参照して上で説明したように、各ストレージ階層インスタンスにはｔｙｐｅ（型）というプロパティがある。ストレージ階層に関連した型は、その型のために生成できるストレージ階層インスタンスの数（ストレージ階層のインスタンスがユーザによって生成または削除されてもよいか否か）と、ストレージ階層のインスタンスに関連するデータベースファイルの型とを含むが、それらに限定されない、ストレージ階層に対して多くのプロパティを決定する。
【００６８】
下記の表３は、本発明の一実施形態による異なる型のストレージ階層インスタンスを識別する。各異なるストレージ階層の型に関連したプロパティは、以下に記述される。
【００６９】
【表３】
2012504295.tif 000005
【００７０】
ｓｙｓｔｅｍ＿ｄａｔａとｓｙｓｔｅｍ＿ｌｏｇとのストレージ階層の型のプロパティ。常に型がｓｙｓｔｅｍ＿ｄａｔａおよびｓｙｓｔｅｍ＿ｌｏｇのストレージ階層の唯一のインスタンスでありえる。これらのインスタンスは、名前がＳｔＳｙｓｔｅｍＤａｔａおよびＳｔＳｙｓｔｅｍＬｏｇのそれぞれ有し、データベースシステム１００によって提供される。これらのストレージ階層インスタンスは、データベースシステム１００に関連したシステムメタデータのためのストレージの割り当てを制御する。具体的には、ストレージ階層インスタンスＳｔＳｙｓｔｅｍＬｏｇがシステムメタデータを構成するデータベースのログファイルのためのストレージの割り当てを制御している一方で、ストレージ階層インスタンスＳｔＳｙｓｔｅｍＤａｔａは、システムメタデータ（例えばマスターデータベースおよびモデルデータベース）を構成するデータベースのデータファイルのためのストレージの割り当てを制御する。本発明の一実施形態において、データベースシステム１００内の各ブリックに関連した１つまたは複数のデータ記憶装置（複数可）上で、システムメタデータのためのストレージをセットアップする必要がある。
【００７１】
ユーザは、型がｓｙｓｔｅｍ＿ｄａｔａおよびｓｙｓｔｅｍ＿ｌｏｇのストレージ階層のシステム提供のインスタンスを削除することを許可されない。ユーザは、さらに型がｓｙｓｔｅｍ＿ｄａｔａおよびｓｙｓｔｅｍ＿ｌｏｇのストレージ階層インスタンスを生成することができない。ユーザは、さらにストレージを提供するか、またはストレージ階層の型がｓｙｓｔｅｍ＿ｄａｔａおよびｓｙｓｔｅｍ＿ｌｏｇであるシステムに提供されるインスタンスに関連した、セットアップされたストレージを変更することができる。
【００７２】
型がｓｙｓｔｅｍ＿ｄａｔａおよびｓｙｓｔｅｍ＿ｌｏｇの各々のストレージ階層インスタンスのために、ｉｓ＿ｄｅｆａｕｌｔプロパティの値は正確であり、変更することができない。
【００７３】
ｔｅｍｐ＿ｄａｔａとｔｅｍｐ＿ｌｏｇとのストレージ階層の型のプロパティ。常に型がｔｅｍｐ＿ｄａｔａおよびｔｅｍｐ＿ｌｏｇのストレージ階層の唯一のインスタンスでありえる。これらのインスタンスは、名前ＳｔＴｅｍｐＤａｔａおよびＳｔＴｅｍｐＬｏｇをそれぞれ有し、データベースシステム１００によって提供される。実施形態において、ｔｅｍｐｄｂは、各々のデータベースサーバインスタンス１１２1〜１１２nの正常な動作のために必要であり、データベースシステム１００の実施形態におけるグローバルなレベルで（すなわち、すべてのブリックによる用途のために）提供される一時的データベースを記述する。ストレージ階層インスタンスＳｔＴｅｍｐＬｏｇがｔｅｍｐｄｂのログファイルのためのストレージの割り当てを制御している一方で、ストレージ階層インスタンスＳｔＴｅｍｐＤａｔａは、ｔｅｍｐｄｂの１次ファイルグループのためのストレージの割り当てを制御する。本発明の一実施形態において、ｔｅｍｐｄｂデータおよびログファイルのためのストレージは、データベースシステム１００内の各ブリックに関連する１つまたは複数のデータ記憶装置（複数可）上でセットアップされる必要がある。
【００７４】
ユーザは、型がｔｅｍｐ＿ｄａｔａおよびｔｅｍｐ＿ｌｏｇのストレージ階層のシステム提供のインスタンスを削除することを許可されない。ユーザは、さらに、型がｔｅｍｐ＿ｄａｔａおよびｔｅｍｐ＿ｌｏｇのストレージ階層インスタンスを生成することができない。ユーザは、さらにストレージをセットアップするか、またはストレージ階層の型がｔｅｍｐ＿ｄａｔａおよびｔｅｍｐ＿ｌｏｇのシステム提供のインスタンスに関連した、セットアップされたストレージを変更することができる。
【００７５】
型がｔｅｍｐ＿ｄａｔａおよびｔｅｍｐ＿ｌｏｇの各々のストレージ階層インスタンスのために、ｉｓ＿ｄｅｆａｕｌｔプロパティの値は正確であり、変更することができない。
【００７６】
ｄａｔａとｌｏｇとのストレージ階層の型のプロパティ。型がｌｏｇのストレージ階層インスタンスが、ユーザが作成したデータベースに関連したログファイルのためのストレージの割り当てを制御する一方で、型がｄａｔａのストレージ階層インスタンスは、ユーザが作成したデータベースに関連したデータファイルのためのストレージの割り当てを制御する。ユーザは、ｄａｔａとｌｏｇとのストレージ階層の型のみのインスタンスを生成することができる。任意数のインスタンスを生成してもよい。一実施形態において、ｄａｔａとｌｏｇファイルは、データベースシステム１００内の任意のブリックに関連した任意のデータ記憶装置（複数可）にわたってセットアップすることができる。さらなる実施形態において、定められたユーザが作成したデータベースのためのログファイルのストレージは、ストレージが同一のユーザが作成したデータベースのためのデータファイルのためにセットアップされるのと同じブリック（複数可）上でセットアップする必要がある。
【００７７】
データベースがストレージ階層インスタンスに現在リンクされていない場合、型がｄａｔａまたはｌｏｇのストレージ階層のインスタンスは、ユーザが削除してもよい。一実施形態において、データベースシステム１００は、ストレージ階層インスタンスに現在リンクされたデータベースの数を識別する各々のストレージ階層インスタンス（ＲｅｆＣｏｕｎｔと示される）に関連したプロパティを維持する。したがって、インスタンスに関連するＲｅｆＣｏｕｎｔがゼロに等しい場合、型がｄａｔａまたはｌｏｇのストレージ階層インスタンスのみ削除してもよい。
【００７８】
システム提供のデフォルトインスタンスは、これらのストレージ階層の型の各々に提供される。型がｄａｔａのためのシステム提供のデフォルトインスタンスは、ＳｔＤａｔａと命名され、型がｌｏｇのためのシステム提供のデフォルトインスタンスは、ＳｔＬｏｇと命名される。データベースシステム１００は、最初に正しく調整するべきこれらのデフォルトインスタンスのためのｉｓ＿ｄｅｆａｕｌｔ値を設定する。これらの型のどちらかの新規のインスタンスがデフォルトとして選択される場合、自動的に、直前のデフォルトインスタンス上の誤りとして、データベースシステム１００はｉｓ＿ｄｅｆａｕｌｔの値をマークする。したがって、データベースシステム１００内の各々のストレージ階層の型の唯一のデフォルトインスタンスがいつでもありえる。
【００７９】
４．ストレージ階層インスタンスの生成、変更および削除
ストレージ階層インスタンスが生成、変更、または削除できる方式をここで記述する。ＤＢＡ（ｄａｔａｂａｓｅ  ａｄｍｉｎｉｓｔｒａｔｏｒ：データベース管理者）、ストレージ管理者、または他の権限が与えられた者またはデータベースシステム１００の管理責任者によって、そのような機能が典型的には実行されるであろうことが予想されるが、これらの機能は、データベースシステム１００の任意のユーザが実行してもよい。
【００８０】
図１１は、ストレージ階層インスタンスを生成、変更、または削除することに関連する機能を実行することに係る構成要素を表すブロック図である。図１１に示されるように、これらの構成要素は、データベースシステム１００内の任意の他のブリックを使用してもよいが、図１を参照して上で説明したようなデータベースサーバインスタンス１１２1およびクラスタインフラストラクチャ論理インスタンス１１４1を含むブリック１０２1を含む。クライアント１１０２は、データベースサーバインスタンス１１２1に通信的に接続される。そのような接続は、通信インフラストラクチャ１０４にわたって、または他のいくつかの通信インフラストラクチャを介して確立してもよい。クラスタインフラストラクチャ論理インスタンス１１４1は、論理システムメタデータ１１０４へのアクセスを提供し、上で説明したように、論理システムメタデータ１１０４は、データベースシステム１００内のすべてのブリックに関連したデータ記憶装置に、複製または物理的に永続化される。
【００８１】
図１１にさらに示すように、データベースサーバインスタンス１１２1は、コマンドプロセッサ１１１２およびメタデータマネージャ１１１４を含む。コマンドプロセッサ１１１２は、クライアント１１０２のユーザによって発行されたコマンドを受信して処理するように構成されるソフトウェアロジックであり、そのようなコマンドは、ストレージ階層を生成、変更、または削除するためのコマンドを含んでもよい。クライアント１１０２は、ユーザがそのようなコマンドを発行することができるユーザインタフェースを提供する。本発明はそのように限定されないが、一実施形態において、コマンドは、Ｔ−ＳＱＬ（Ｔｒａｎｓａｃｔ−ＳＱＬ）コマンドを含む。
【００８２】
メタデータマネージャ１１１４は、コマンドプロセッサ１１１２によって、あるコマンドの処理に応答するストレージ階層に関連したメタデータを生成、修正、または削除するために構成されるソフトウェアロジックを部分的に含む。ストレージ階層に関連したメタデータは、論理システムメタデータ１１０４の一部として格納される。論理システムメタデータ１１０４がデータベースシステム１００内のすべてのブリックに関連したデータ記憶装置に物理的に永続化されるので、メタデータマネージャ１１１４によるそのようなメタデータの生成、修正、または削除は、クラスタインフラストラクチャ論理インスタンス１１４1の支援により実行される。
【００８３】
ストレージ階層を生成できる方法の一例のフローチャート１２００は、図１２に表される。フローチャート１２００のステップは、例のみとして本明細書に記述され、本発明を限定するようには意図されない。更に、フローチャート１２００のステップは、本明細書の他の箇所で記述されている各種の論理的および／または物理的な構成要素およびシステムに関連して記述してもよいが、当業者は、そのような構成要素およびシステムを使用して本方法を実行する必要が必ずしもないことを容易に十分に理解するであろう。
【００８４】
図１２に示すように、フローチャート１２００の方法は、コマンドプロセッサ１１１２がストレージ階層インスタンスの識別子を受信するステップ１２０２で開始する。ストレージ階層インスタンスの識別子は、例えば、ストレージ階層インスタンスに割り当てられる名前を含んでもよい。ストレージ階層インスタンスの識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。
【００８５】
ステップ１２０４において、コマンドプロセッサ１１１２は、１つまたは複数の格納先の識別子を受信する。格納先（複数可）は、例えば、各々の複数のデータ記憶装置内の１つまたは複数の格納先を含んでもよく、各々の複数のデータ記憶装置は、データベースシステム１００内の異なるブリックによりそれぞれアクセス可能である。本明細書の他の箇所に示されるように、ある実施形態において、格納先は、ボリュームまたは１つまたは複数のボリュームを識別するＬＵＮを含んでもよい。格納先の識別子は、例えば、ディレクトリのパスを含んでもよい。１つまたは複数の格納先の識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として提供してもよい。コマンドは、ステップ１２０２において、ストレージ階層インスタンスの識別子を供給するために使用される同一のコマンドであってもよい。
【００８６】
ステップ１２０６において、ステップ１２０２におけるストレージ階層インスタンスの識別子、およびステップ１２０４における１つまたは複数の格納先の識別子の受信に対して応答して、コマンドプロセッサ１１１２は、ストレージ階層インスタンスが論理的に格納先（複数可）を表わすように、ステップ１２０４において識別された格納先（複数可）とステップ１２０２において識別されたストレージ階層インスタンスとを関連づける。コマンドプロセッサ１１１２は、例えば、ストレージ階層インスタンスの識別子および格納先（複数可）の識別子を含むＴ−ＳＱＬコマンドなどのようなコマンドの受信に応答して、このステップを実行してもよい。一旦、前述の関連がなし得られたならば、関連を記述しているメタデータは、クラスタインフラストラクチャ論理インスタンス１１４1を使用して、論理システムメタデータ１１０４の一部として、メタデータマネージャ１１１４によって格納される。
【００８７】
一旦、ストレージ階層インスタンスが前述の方法に従って生成されたならば、インスタンスによって識別された格納先（複数可）のインスタンスに関連したシステムまたはユーザ作成のデータベースからのデータを自動的に格納するために、データ仮想化マネージャ６０４によって使用することができる。実施形態において、ユーザ作成のデータベースファイルとストレージ階層インスタンスとの間の関係が、データベースシステム１００またはデータベース生成処理の一部としてのユーザのいずれかによって確立されてもよい一方で、システムデータベースファイルとストレージ階層インスタンスとの間の関係は、データベースシステム１００によって確立される。
【００８８】
以下はストレージ階層インスタンスを生成するためのコマンド文法の一例を提供する。
【００８９】
2012504295.tif 000006
【００９０】
前述のコマンドにおいて、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｎａｍｅは、生成されるストレージ階層インスタンスを識別する名前であり、ｔｙｐｅ＿ｎａｍｅは、生成されるストレージ階層インスタンスの型を識別し、＜ｓｔｏｒａｇｅ＿ｓｐｅｃ＞は、論理的にストレージ階層インスタンスによって表わされる格納先を識別する。一実施形態において、ｔｙｐｅ＿ｎａｍｅは、ｄａｔａまたはｌｏｇの１つになりえ、そのような型は、表３を参照して上述のｄａｔａとｌｏｇの型に対応する。さらなる実施形態において、＜ｓｔｏｒａｇｅ＿ｓｐｅｃ＞は、表２を参照して上述のストレージ仕様に対応する。
【００９１】
以下は、型がｌｏｇの新規のユーザ定義のストレージ階層インスタンスを生成するための、前述のコマンド文法の使用法の一例である。
【００９２】
2012504295.tif 000007
【００９３】
ストレージ階層インスタンスに１つまたは複数の新規の格納先を関連づけるために、既存のストレージ階層インスタンスを変更することができる方法の一例のフローチャート１３００は、図１３に表される。フローチャート１３００のステップは、例のみとして本明細書に記述され、本発明を限定するようには意図されない。更に、フローチャート１３００のステップは、本明細書の他の箇所で記述されている各種の論理的および／または物理的な構成要素およびシステムに関連して記述してもよいが、当業者は、そのような構成要素およびシステムを使用して、本方法を実行する必要が必ずしもないことを容易に十分に理解するであろう。
【００９４】
図１３に示すように、フローチャート１３００の方法は、コマンドプロセッサ１１１２がストレージ階層インスタンスの識別子を受信するステップ１３０２で開始する。ストレージ階層インスタンスの識別子は、例えば、ストレージ階層インスタンスに割り当てられた名前を含んでもよい。ストレージ階層インスタンスの識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。
【００９５】
ステップ１３０４において、コマンドプロセッサ１１１２は、ストレージ階層インスタンスによって論理的に表わされない少なくとも１つの格納先の識別子を受信する。少なくとも１つの格納先は、例えば、データベースシステム１００内の特定のブリックによりアクセス可能なデータ記憶装置内の格納先を含んでもよい。少なくとも１つの格納先の識別子は、例えば、ディレクトリのパスを含んでもよい。少なくとも１つの格納先の識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行されて、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として提供してもよい。コマンドは、ステップ１３０２において、ストレージ階層インスタンスの識別子を提供するために使用される同一のコマンドであってもよい。
【００９６】
ステップ１３０６において、ステップ１３０２でストレージ階層インスタンスの識別子、およびステップ１３０４で少なくとも１つの格納先の識別子を受信することに応答して、コマンドプロセッサ１１１２は、ストレージ階層インスタンスが少なくとも１つの格納先を論理的に表わすように、ステップ１３０２で識別されたストレージ階層インスタンスとステップ１３０４で識別された少なくとも１つの格納先を関連づける。コマンドプロセッサ１１１２は、例えば、ストレージ階層インスタンスの識別子および少なくとも１つの格納先の識別子を含むＴ−ＳＱＬコマンドなどのようなコマンドの受信に応答して、このステップを実行してもよい。一旦、前述の関連が生じたならば、メタデータマネージャ１１１４は、ストレージ階層インスタンスに関連し、かつ論理システムメタデータ１１０４内に格納されたメタデータに対応する修正をする。そのような修正は、クラスタインフラストラクチャ論理インスタンス１１４1を使用してなされる。
【００９７】
一旦、ストレージ階層インスタンスが前述の方法に従って変更されたならば、データ仮想化マネージャ６０４は、関連する格納先(複数可）内のストレージ階層インスタンスに割り当てられたデータベースファイルからのデータを自動的に格納してもよい。
【００９８】
ストレージ階層インスタンスから１つまたは複数の格納先を分離するために、既存のストレージ階層インスタンスを変更することができる方法の一例のフローチャート１４００は、図１４に表される。フローチャート１４００のステップは、例のみとして本明細書に記述され、本発明を限定するようには意図されない。更に、フローチャート１４００のステップは、本明細書の他の箇所で記述されている各種の論理的および／または物理的な構成要素およびシステムに関連して記述してもよいが、当業者は、そのような構成要素およびシステムを使用して、本方法を実行する必要が必ずしもないことを容易に十分に理解するであろう。
【００９９】
図１４に示すように、フローチャート１４００の方法は、コマンドプロセッサ１１１２がストレージ階層インスタンスの識別子を受信するステップ１４０２で開始する。ストレージ階層インスタンスの識別子は、例えばストレージ階層インスタンスに割り当てられた名前を含んでもよい。ストレージ階層インスタンスの識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。
【０１００】
ステップ１４０４において、コマンドプロセッサ１１１２が、ストレージ階層インスタンスによって論理的に表わされる少なくとも１つの格納先の識別子を受信する。少なくとも１つの格納先は、例えば、データベースシステム１００内の特定のブリックによりアクセス可能なデータ記憶装置内の格納先を含んでもよい。少なくとも１つの格納先の識別子は、例えばディレクトリのパスを含んでもよい。少なくとも１つの格納先の識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行されて、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として提供してもよい。コマンドは、ステップ１４０２において、ストレージ階層インスタンスの識別子を供給するために使用される同一のコマンドであってもよい。
【０１０１】
ステップ１４０６において、ステップ１４０２でストレージ階層インスタンスの識別子、およびステップ１４０４で少なくとも１つの格納先の識別子を受信することに応答して、コマンドプロセッサ１１１２は、ストレージ階層インスタンスがもはや少なくとも１つの格納先を論理的に表わさないように、１４０４で識別された少なくとも１つの格納先をステップ１４０２で識別されたストレージ階層インスタンスとステップから分離する。コマンドプロセッサ１１１２は、例えば、ストレージ階層インスタンスの識別子および少なくとも１つの格納先の識別子を含むＴ−ＳＱＬコマンドなどのようなコマンドの受信に応答して、このステップを実行してもよい。一旦、前述の分離が生じたならば、メタデータマネージャ１１１４は、ストレージ階層インスタンスに関連し、かつ論理システムメタデータ１１０４内に格納されたメタデータに対応する修正をする。そのような修正は、クラスタインフラストラクチャ論理インスタンス１１４1を使用してなされる。
【０１０２】
一旦、ストレージ階層インスタンスが前述の方法に従って変更されたならば、データ仮想化マネージャ６０４は、分離された格納先(複数可）からのストレージ階層インスタンスに割り当てられたデータベースファイルからデータを自動的に削除してもよい。
【０１０３】
以下はストレージ階層インスタンスを変更するためのコマンド文法の一例を提供する。
【０１０４】
2012504295.tif 000008
【０１０５】
前述のコマンドにおいて、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｎａｍｅは、変更されるストレージ階層インスタンスを識別する名前である。サブコマンドのＡＤＤ、ＲＥＭＯＶＥ  ＳＴＯＲＡＧＥ  ＳＰＥＣおよびＭＯＤＩＦＹは各々、ストレージ階層に格納先を追加する、ストレージ階層から格納先を削除する、またはストレージ階層の名前を修正するためのＡＬＴＥＲ  ＳＴＯＲＡＧＥ  ＴＩＥＲコマンド内にそれぞれ含むことができる。
【０１０６】
以下は、型がｄａｔａのデフォルトストレージ階層インスタンスにいくつかのストレージをセットアップするための、前述のコマンド文法の使用法の一例である。
【０１０７】
2012504295.tif 000009
【０１０８】
以下は、型がｌｏｇのデフォルトストレージ階層インスタンスにいくつかのストレージをセットアップするための、前述のコマンド文法の使用法の別の一例である。
【０１０９】
2012504295.tif 000010
【０１１０】
図１５は、既存のストレージ階層インスタンスを削除することができる方法の一例のフローチャートを表す。フローチャート１５００のステップは、例のみとして本明細書に記述され、本発明を限定するようには意図されない。更に、フローチャート１５００のステップは、本明細書の他の箇所で記述されている各種の論理的および／または物理的な構成要素およびシステムに関連して記述してもよいが、当業者は、そのような構成要素およびシステムを使用して、本方法を実行する必要が必ずしもないことを容易に十分に理解するであろう。
【０１１１】
図１５に示すように、フローチャート１５００の方法は、コマンドプロセッサ１１１２がストレージ階層インスタンスの識別子を受信するステップ１５０２で開始する。ストレージ階層インスタンスの識別子は、例えばストレージ階層インスタンスに割り当てられた名前を含んでもよい。ストレージ階層インスタンスの識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。
【０１１２】
ステップ１５０４において、コマンドプロセッサ１１１２は、ステップ１５０２で識別されたストレージ階層インスタンスに現在関連している何らかのデータベースが存在するか否かを判定する。一実施形態において、データベースシステム１００は、ストレージ階層インスタンスに現在リンクされたデータベースの数を識別する各々のストレージ階層インスタンス（ＲｅｆＣｏｕｎｔと示される）に関連したプロパティを維持する。したがって、コマンドプロセッサ１１１２は、ＲｅｆＣｏｕｎｔの値の解析により、ステップ１５０２で識別されたストレージ階層インスタンスに現在関連している何らかのデータベースが存在するか否かを判定してもよい。ＲｅｆＣｏｕｎｔが０を超える場合、１つまたは複数のデータベースがストレージ階層インスタンスに現在関連づけられている。ＲｅｆＣｏｕｎｔが０に等しい場合、ストレージ階層インスタンスに現在関連づけられたデータベースはない。
【０１１３】
ステップ１５０６において、ステップ１５０２でストレージ階層インスタンスの識別子を受信し、識別されたストレージ階層インスタンスに現在関連づけられたデータベースがないと判定することに応答して、コマンドプロセッサ１１１２は、識別されたストレージ階層インスタンスを削除する。コマンドプロセッサ１１１２は、例えば、ストレージ階層インスタンスの識別子を含むＴ−ＳＱＬコマンドなどのようなコマンドの受信に応答して、このステップを実行してもよい。一旦、ストレージ階層インスタンスが削除されたならば、メタデータマネージャ１１１４は、論理システムメタデータ１１０４からのストレージ階層インスタンスに関連したメタデータを削除する。そのような削除は、クラスタインフラストラクチャ論理インスタンス１１４1を使用して実行される。
【０１１４】
以下はストレージ階層インスタンスを削除するためのコマンド文法の一例を提供する。
【０１１５】
2012504295.tif 000011
【０１１６】
前述のコマンドにおいて、ｓｔｏｒａｇｅ＿ｔｉｅｒ＿ｎａｍｅは、削除されるストレージ階層インスタンスを識別する名前である。
【０１１７】
５．ストレージ階層インスタンスへのデータベースの割り当て、およびそれにしたがった格納
データベースをストレージ階層インスタンスに割り当て、それにしたがって格納することができる方式を、ここで記述する。特定のデータベースと特定のストレージ階層インスタンスとの間の関連性は、データベースシステム１００が自動的にセットアップしもよいし、またはデータベース生成処理の一部としてユーザが生成してもよい。ストレージ階層インスタンスによって論理的に表わされる１つまたは複数の格納先にわたるデータベースからのデータの格納は、図６を参照して上述のデータ仮想化マネージャ６０４などのようなデータ仮想化マネージャによって自動的に処理される処理である。
【０１１８】
図１６は、ストレージ階層インスタンスへのデータベースの割り当て、およびそれにしたがってデータベースからのデータの格納に関連する機能の実行に係る構成要素を表すブロック図である。図１６に示されるように、これらの構成要素は、データベースシステム１００内のいかなる他のブリックを使用してもよいが、図１を参照して上で説明したようなデータベースサーバインスタンス１１２1およびクラスタインフラストラクチャ論理インスタンス１１４1を含むブリック１０２1を含む。クライアント１６０２は、データベースサーバインスタンス１１２1に通信的に接続される。そのような接続は、通信インフラストラクチャ１０４にわたって、または他のいくつかの通信インフラストラクチャを介して確立してもよい。
【０１１９】
図１１にさらに示すように、データベースサーバインスタンス１１２1は、コマンドプロセッサ１１１２を含む。コマンドプロセッサ１１１２は、クライアント１６０２のユーザによって発行されたコマンドを受信して処理するように構成されるソフトウェアロジックであり、そのようなコマンドは、データベースを生成することに関するコマンドを含んでもよい。クライアント１６０２は、ユーザがそのようなコマンドを発行することができるユーザインタフェースを提供する。本発明はそのように限定されないが、一実施形態において、コマンドは、Ｔ−ＳＱＬコマンドを含む。
【０１２０】
クラスタインフラストラクチャ論理インスタンス１１４1は、データベースに関連したストレージ階層インスタンスによって論理的に表わされる複数の格納先１６０４のいずれかに対して、生成されたデータベースからデータを格納するように構成されるデータ仮想化マネージャ１６１２を含む。格納先の各々は、データベースシステム１００内の異なるコンピュータシステムにアクセス可能な異なるデータ記憶装置内にあってもよい。
【０１２１】
代替の実施形態において、データ仮想化マネージャ１６１２は、クラスタインフラストラクチャ論理インスタンス１１４1とは別のデータベースシステム１００内のクラスタインフラストラクチャロジックのインスタンス内に含まれており、クラスタインフラストラクチャ論理インスタンス１１４1は、データ仮想化マネージャ１６１２に前述の機能を実行させるために、それに通信するように構成されるデータ仮想化マネージャエージェントを含む。
【０１２２】
データベースがストレージ階層インスタンスに関連し、それにしたがってデータベースからのデータを格納できる方法の一例のフローチャート１７００は、図１７に表される。フローチャート１７００のステップは、例のみとして本明細書に記述され、本発明を限定するようには意図されない。更に、フローチャート１７００のステップは、本明細書の他の箇所で記述されている各種の論理的および／または物理的な構成要素およびシステムに関連して記述してもよいが、当業者は、そのような構成要素およびシステムを使用して、本方法を実行する必要が必ずしもないことを容易に十分に理解するであろう。
【０１２３】
図１７に示すように、フローチャート１７００の方法は、コマンドプロセッサ１１１２がデータベースの識別子を受信するステップ１７０２で開始する。一実施形態において、データベースの識別子は、ファイルグループの識別子を含む。ファイルグループの識別子は、クライアント１６０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。
【０１２４】
ステップ１７０４において、コマンドプロセッサ１１１２は、ストレージ階層インスタンスの識別子を受信する。ストレージ階層インスタンスの識別子は、例えばストレージ階層インスタンスに割り当てられた名前を含んでもよい。ストレージ階層インスタンスの識別子は、クライアント１１０２のユーザによってデータベースサーバインスタンス１１２1に発行される、Ｔ−ＳＱＬコマンドなどのようなコマンドの一部として受信してもよい。コマンドは、ステップ１７０２でデータベースの識別子を供給するために使用される同一のコマンドであってもよい。
【０１２５】
ステップ１７０６において、データ仮想化マネージャ１６１２は、ステップ１７０４で識別されたストレージ階層インスタンスによって論理的に表わされる格納先１６０４に、ステップ１７０２で識別されたデータベースからのデータを格納する。実装によっては、これはファイル形式または生の記憶フォーマット内のデータを格納することを含んでいてもよい。これはさらに、システム１００内の異なるコンピュータシステムに関連した異なるデータ記憶装置内に配置される格納先のデータベースからのデータを格納することを含んでいてもよい。データ仮想化マネージャ１６１２は、そのような異なるコンピュータシステム上で実行するデータ仮想化マネージャエージェントの送信コマンドによりこの機能を実行してもよい。様々な要因によっては、このステップは、異なる各格納先のデータベースからのデータの異なるフラグメントのクローンを格納すること、各格納先のデータベースからのデータの同一のフラグメントのクローンを格納すること、またはそれら両方を含んでもよい。実施形態において、このステップは、さらに同一のデータ記憶装置内に配置される格納先のデータベースからのデータを格納することを含んでもよい。
【０１２６】
以下は、データベースを生成し、データベースのファイルグループおよび／またはロググループにストレージ階層を関連づけるためのコマンド文法の一例を提供する。
【０１２７】
2012504295.tif 000012
【０１２８】
前述のコマンドにおいて、ｄａｔａｂａｓｅ＿ｎａｍｅは、生成されているデータベースを識別する名前である。コマンド用語ＰＲＩＭＡＲＹに続く＜ｆｉｌｅｇｒｏｕｐ＿ｓｐｅｃ＞で示されたファイルグループ仕様は、データベースの１次ファイルグループに割り当てられるストレージ階層インスタンスの名前を含む。コマンド用語ＬＯＧ  ＯＮに続く別のファイルグループ仕様は、データベースのログファイルに割り当てられるストレージ階層インスタンスの名前を含む。「＜ｆｉｌｅｇｒｏｕｐ＞［，…ｎ］」によって表わされた他のユーザ作成のファイルグループは、さらにファイルグループ仕様を使用してストレージ階層に割り当てることができる。
【０１２９】
さらにコマンド文法の例によって示されるように、ファイルグループ仕様は、ファイルまたはロググループ上で設定してもよい様々なプロパティを含む。これらはＲＥＤＵＮＤＡＮＣＹ＿ＦＡＣＴＯＲ、ＩＮＩＴＩＡＬＳＩＺＥ、ＭＡＸＳＩＺＥおよびＦＩＬＥＧＲＯＷＴＨを含む。プロパティＲＥＤＵＮＤＡＮＣＹ＿ＦＡＣＴＯＲは、ファイルグループ内に内蔵されているオブジェクトの各々のフラグメントのために生成されるクローンの数を指定する。プロパティＩＮＩＴＩＡＬＳＩＺＥは、情報の永続化および／または格納のために、システムによってそのファイルグループ内に生成された任意のファイルの初期サイズを表わす。プロパティＭＡＸＳＩＺＥは、クローンによって生じた空間を含むファイルグループによって生じた空間の最大量を指定する。プロパティＦＩＬＥＧＲＯＷＴＨは、ファイルグループ内のすべてのファイルが増える増加量を指定する。
【０１３０】
以下は、ＭｙＤＢという名のデータベースを生成するための前述のコマンド文法の使用法の一例である。
【０１３１】
2012504295.tif 000013
【０１３２】
ここで、データベースＭｙＤＢの１次ファイルグループは、ＳｔＤａｔａという名のストレージ階層の型のｄａｔａのシステム提供のインスタンスに割り当てられ、データベースＭｙＤＢのログファイルは、ＳｔＬｏｇという名のストレージ階層の型のｌｏｇのシステム提供のインスタンスに割り当てられ、ユーザ作成のファイルグループＭｙＤＢ＿ＦＧｌは、ＳｔＴｉｅｒ１という名のユーザ作成のストレージ階層インスタンスの型のｄａｔａに割り当てられる。
【０１３３】
以下は、ｔｅｓｔｄｂｌという名のデータベースを生成する前述のコマンド文法の使用法の別の例である。
【０１３４】
2012504295.tif 000014
【０１３５】
ここで、データベースｔｅｓｔｄｂｌの１次ファイルグループは、ＳｔＤａｔａｌという名のユーザ作成のストレージ階層インスタンスに割り当てられ、データベースｔｅｓｔｄｂｌのログファイルは、ＳｔＬｏｇｌという名のユーザ作成のストレージ階層インスタンスに割り当てられるであろう。
【０１３６】
以下は、さらにｔｅｓｔｄｂ２という名のデータベースを生成するための前述のコマンド文法の使用法の別の例である。
【０１３７】
2012504295.tif 000015
【０１３８】
ここで、ストレージ階層が明示的に指定されないので、コマンドプロセッサ１１１２は、ストレージ階層型データのデフォルトインスタンスにデータベースｔｅｓｔｄｂ２の１次ファイルグループを割り当てて、ストレージ階層型がｌｏｇのデフォルトインスタンスにデータベースｔｅｓｔｄｂ２のログファイルを割り当てるであろう。この例において、フローチャート１７００のステップ１７０２で受信されたデータベースファイルの識別子、およびステップ１７０４で受信されたストレージ階層インスタンスの識別子は、ユーザコマンドを介して供給されないが、その代りに、データベースシステム１００によってそれ自体が供給される。
【０１３９】
フローチャート１７００の処理も、関連するストレージ階層に従ってシステムデータベースファイルの格納を実行してもよい。この場合には、データベースシステム１００は、システムデータベースファイルおよび関連するストレージ階層インスタンスの両方の識別子を供給する。また、図６のデータ仮想化マネージャ６０４などのようなデータ仮想化マネージャは、ストレージ階層によって論理的に表わされる１つまたは複数の格納先にデータベースファイルを格納する。例えば、データベースシステム１００は、システムデータベースｔｅｍｐｄｂのためのログファイルがシステム提供のストレージ階層インスタンスＳｔＴｅｍｐＬｏｇに関連することを指定する。また、データ仮想化マネージャ６０４は、ストレージ階層ＳｔＴｅｍｐＬｏｇによって論理的に表わされる格納先にわたってシステムデータベースｔｅｍｐｄｂのためにログファイルを格納する。
【０１４０】
６．ストレージ階層に対するポリシーの割り当て
本発明のさらなる実施形態によれば、ユーザにデータベース内のオブジェクトの多様なセットの格納または配置を制御する能力を与えるために、ポリシーをストレージ階層に従って導入することができる。そのような実施形態によれば、例えば、誰がストレージ階層を生成、変更、削除することができるか、または、誰が特定のストレージ階層上に生成されたデータベースに関連したファイルを格納することができるかを制御するセキュリティ計画を実行してもよい、。他のポリシーも同様に指定してもよい。
【０１４１】
Ｃ．コンピュータシステムの実装例
図１８は、本発明の様々な態様が実行できるコンピュータシステム１８００の典型的な実装を表す。コンピュータシステム１８００は、汎用のコンピューティングシステムを従来のパーソナルコンピュータの形式で表わすように意図される。
【０１４２】
図１５に示すように、コンピュータシステム１８００は、処理装置１８０２と、システムメモリ１８０４と、処理装置１８０２にシステムメモリ１８０４を含む様々なシステムコンポーネントを結合するバス１８０６とを含む。バス１８０６は、様々なバスアーキテクチャのいずれかを使用して、メモリーバスまたはメモリコントローラ、周辺バス、アクセラレイテッドグラフィックポート、およびプロセッサまたはローカルバスを含むいくつかの型のバス構造のいずれかの１つまたは複数を表わす。システムメモリ１８０４は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：読み取り専用メモリ）１８０８およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ランダムアクセスメモリ）１８１０を含む。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ：基本入出力システム１８１２）は、ＲＯＭ１８０８内に格納される。
【０１４３】
コンピュータシステム１８００には、さらに次の１つまたは複数のドライブがある。すなわち、ハードディスクから読み取り、ハードディスクに書き込みするためのハードディスクドライブ１８１４、リムーバブル磁気ディスク１８１８から読み取り、リムーバブル磁気ディスクに書き込みするための磁気ディスクドライブ１８１６、およびＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭまたは他の光媒体などのようなリムーバブル光ディスク１８２２から読み取り、リムーバブル光ディスク１８２２に書き込みするための光ディスク駆動装置１８２０である。ハードディスクドライブ１８１４、磁気ディスクドライブ１８１６および光ディスク駆動装置１８２０は、ハードディスクドライブインタフェース１８２４、磁気ディスクドライブインタフェース１８２６および光ドライブインタフェース１８２８により、それぞれバス１８０６に接続される。ドライブおよびそれらに関連するコンピュータ可読媒体は、サーバコンピュータのためにコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置を備える。ハードディスク、リムーバブル磁気ディスクおよびリムーバブル光ディスクが記述されているが、他の型のコンピュータ可読メディアは、フラッシュメモリカード、デジタルビデオティスク、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ランダムアクセスメモリＲＡＭ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：読み取り専用メモリ）等のデータを格納するために使用することができる。
【０１４４】
多くのプログラムモジュールは、ハードディスク、磁気ディスク、光ディスク、ＲＯＭまたはＲＡＭ上に格納してもよい。これらのプログラムは、オペレーティングシステム１８３、１つまたは複数のアプリケーションプログラム１８３２、他のプログラムモジュール１８３４、およびプログラムデータ１８３６を含む。アプリケーションプログラム１８３２またはプログラムモジュール１８３４は、例えば、本明細書に記述されたように、データベースサーバインスタンスおよびクラスタインフラストラクチャ論理インスタンスを実行するためのロジックを含んでもよい。アプリケーションプログラム１８３２またはプログラムモジュール１８３４は、さらに例えば、図１２〜図１５および図１７に表されたフローチャートの１つまたは複数のステップを実装するためのロジックを含んでもよい。したがって、それらの図において示された各ステップも、そのステップによって記述された機能を実行するように構成されたプログラム論理として見なしてもよい。
【０１４５】
ユーザは、キーボード１８３８およびポインティングデバイス１８４０などのような入力装置を介して、コンピュータ１８００にコマンドおよび情報を入力してもよい。他の入力装置（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ等を含んでもよい。これらおよび他の入力装置は、多くの場合、バス１８０６に結合されるシリアルポートインタフェース１８４２を介して処理装置１８０２に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ：ユニバーサルシリアルバス）などのような、他のインタフェースで接続してもよい。
【０１４６】
モニタ１８４４または他の型のディスプレイ装置も、映像アダプタ１８４６などのようなインタフェースを介してバス１８０６に接続される。モニタ１８４４は、ユーザおよび／またはオペレータがコンピュータ１８００を構成し制御するのを支援するＧＵＩを表示するために使用される。モニタに加えて、コンピュータ１８００は、スピーカとプリンタなどのような他の周辺出力装置（図示せず）を含んでもよい。
【０１４７】
コンピュータ１８００は、ネットワークインタフェース１８５０、モデム１８５２、またはネットワークを介して通信を確立するための他の手段を通じて、ネットワーク１８４８（例えばインターネットまたはＬＡＮなどのようなＷＡＮ）に接続される。モデム１８５２（内蔵または外付けであってもよい）は、シリアルポートインタフェース１８４２を介してバス１８０６に接続される。
【０１４８】
本明細書で用いられているように、用語「コンピュータプログラム媒体」および「コンピュータ可読媒体」は、フラッシュメモリカード、デジタルビデオディスク、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ランダムアクセスメモリ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：読み取り専用メモリ）などのような他の媒体と同様に、ハードディスクドライブ１８１４、リムーバブル磁気ディスク１８１８、リムーバブル光ディスク１８２２に関連したハードディスクなどのような媒体に一般に言及して使用される。
【０１４９】
上述のように、コンピュータプログラム（アプリケーションプログラム１８３２および他のプログラムモジュール１８３４を含む）は、ハードディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭ上に格納してもよい。そのようなコンピュータプログラムも、ネットワークインタフェース１８５０またはシリアルポートインタフェース１８４２を介して受信してもよい。そのようなコンピュータプログラムが実行された場合、コンピュータ１８００によって、本明細書で説明された本発明の機能を実装することができる。したがって、そのようなコンピュータプログラムは、コンピュータ１８００のコントローラを表わす。
【０１５０】
本発明は、また、いかなるコンピュータ利用可能な媒体上に格納されたソフトウェアを含むコンピュータプログラムプロダクトをも対象にする。そのようなソフトウェアは、１つまたは複数のデータ処理装置内で実行された場合、本明細書で記述されたようにデータ処理装置(複数可）を動作させる。本発明の実施形態は、現在または将来の既知の、任意のコンピュータ使用可能またはコンピュータ可読媒体も使用する。コンピュータ可読媒体の一例は、ＲＡＭ、ハードドライブ、フロッピーディスク、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、ジップディスク、テープ、磁気記憶装置、光記憶装置、ＭＥＭ、ナノテクノロジーベースの記憶デバイス等のような記憶デバイスを含むが、それらに限定されない。
【０１５１】
Ｄ．結び
本発明の様々な実施形態を上述さしたが、当然のことながら、それらは、例として示しただけであり、限定するわけではない。当業者には当然のことながら、添付された請求項において規定されるような本発明の精神および範囲から逸脱することなく、形態と細部について様々な変更をくわえてもよい。したがって、本発明の広さおよび範囲は、上記の典型的な実施形態のいずれによっても限定されるべきではなく、以下の請求項およびそれらの等価物によってのみ規定されるべきである。
【図１】
2012504295.tif 000016
【図２】
2012504295.tif 000017
【図３】
2012504295.tif 000018
【図４】
2012504295.tif 000019
【図５】
2012504295.tif 000020
【図６】
2012504295.tif 000021
【図７】
2012504295.tif 000022
【図８】
2012504295.tif 000023
【図９】
2012504295.tif 000024
【図１０】
2012504295.tif 000025
【図１１】
2012504295.tif 000026
【図１２】
2012504295.tif 000027
【図１３】
2012504295.tif 000028
【図１４】
2012504295.tif 000029
【図１５】
2012504295.tif 000030
【図１６】
2012504295.tif 000031
【図１７】
2012504295.tif 000032
【図１８】
2012504295.tif 000033
【国際調査報告】
2012504295.tif 000034
2012504295.tif 000035