| Oracle Database 管理者ガイド 10gリリース2(10.2) B19224-02 |
|
この章では、自動ストレージ管理の概要とその使用方法について説明します。 この章の内容は、次のとおりです。
自動ストレージ管理(ASM)は統合されたファイル・システムで、Oracleデータベース・ファイル用に作成されたボリューム・マネージャです。ASMを使用すると、RAW I/Oのパフォーマンスが向上し、ファイル・システムの管理が容易になります。また、数千にもおよぶ可能性があるOracleデータベース・ファイルを直接管理する必要がなくなるため、データベース管理が簡素化されます。ASMでは、使用可能なすべての記憶域をディスク・グループに分割できます。ASMによってデータベース・ファイルがディスク・グループ内に自動的に配置されるため、管理する必要があるのは少数のディスク・グループになります。
ディスク・グループに関するファイル位置は、表領域、制御ファイル、REDOログとアーカイブ・ログ・ファイルなどのデータベース構造の作成に使用するSQL文で指定します。この指定に基づいて、ASMは、基礎となる関連ファイルを作成および管理します。
ASMは、Oracle Managed Filesの機能を拡張します。Oracle Managed Filesを使用するとファイルを自動的に作成および管理できますが、ASMでは、ミラー化やストライプ化などの追加機能も利用できます。
ASMでは、ファイルを1MBのエクステントに分割し、各ファイルのエクステントをディスク・グループ内のすべてのディスク間に均等に分散します。これによってパフォーマンスとディスク使用率が最適化されるため、手動によるI/Oパフォーマンスのチューニングは不要です。
ASMのミラー化ではファイルごとに冗長性レベルを指定できるため、オペレーティング・システムのミラー化したファイルよりも柔軟性があります。このため、2つのファイルが、1つはミラー化され、もう1つはミラー化されていない場合でも、同じディスク・グループを共有できます。ミラー化はエクステント・レベルで実行されます。ファイルに設定された冗長性レベルに応じてファイルがミラー化されると、各エクステントに1つ以上のミラー化コピーが配置され、そのミラー化コピーはディスク・グループ内の異なるディスク上に常に保持されます。表12-1に、ASMがファイルごとにサポートする3つのミラー化オプションを示します。
| ミラー化オプション | 説明 |
|---|---|
|
2方向ミラー化 |
1つのエクステントに1つのミラー化コピーがあります。 |
|
3方向ミラー化 |
1つのエクステントに2つのミラー化コピーがあります。 |
|
非保護 |
ASMでミラー化を実行しません。ディスク・サブシステムでミラー化が実行される場合に、このオプションを使用します。 |
ASMを使用すると、データベースをオフライン化せずに記憶域の構成を変更できます。ディスク・グループに対してディスクを追加または削除すると、ASMは、再バランスを自動的に実行します。再バランスによって、ディスク・グループのすべてのディスク間にファイル・データが均等に再分散されます。
ディスク障害が発生すると、ASMは再バランスを自動的に実行し、障害が発生したディスクにエクステントがあるファイルの冗長性を完全にリストアします。障害が発生したディスクを新しいディスクに置換すると、ASMはディスク・グループを再バランスして、置換したディスクを含むすべてのディスク間にデータを均等に分散します。
ASMを使用しても、既存のデータベース機能が不要になるわけではありません。ファイル・システムを使用した既存のデータベースやRAWデバイスに記憶域を持つ既存のデータベースは、従来どおり操作できます。既存のファイルはそれまでの方法で管理し、その一方で新しいファイルはASMファイルとして作成できます。したがって、データベースには、ASMファイルとそれ以外のファイルが混在することになります。
ASMは、独自のシステム・グローバル領域(SGA)とバックグラウンド・プロセスを持つ特殊なOracleインスタンスとして実装されます。通常、ASMインスタンスのSGAはデータベース・インスタンスのSGAよりかなり小規模です。
ASMによって管理されるデータベース・ファイルを持つ各データベース・サーバーは、ASMインスタンスを実行している必要があります。単一のASMインスタンスは、スタンドアロン・サーバー上の1つ以上の単一インスタンス・データベースを処理できます。各ASMディスク・グループは、サーバー上のすべてのデータベース間で共有できます。
クラスタ化された環境では、各ノードでASMインスタンスが実行され、ASMインスタンスはpeer-to-peerベースで相互に通信します。これは、Real Application Clusters(RAC)環境でも同様です。また、複数のノード間で複数の単一インスタンス・データベースが、ASMで管理されているクラスタ化された記憶域プール1つを共有する、RAC以外のクラスタ化された環境でも同様です。ノードがReal Application Clusters(RAC)システムに属している場合は、常にpeer-to-peer通信サービスがそのサーバー上にインストールされます。RACがインストールされていないクラスタにノードが属する場合、そのノードにはOracleクラスタウェアであるCluster Ready Services(CRS)がインストールされている必要があります。
クラスタのノード上のASMインスタンスは、1つ以上のRACデータベース・インスタンスおよび1つ以上の単一インスタンス・データベースの記憶域を同時に管理できます。
自動ストレージ管理(ASM)の構成要素は、ディスク・グループ、ディスク、障害グループ、ファイルおよびテンプレートです。
ASMの主要な構成要素はディスク・グループです。ディスク・グループはディスクの集まりで、1つの単位として管理されます。ASMは、データベース・ファイルを格納するディスク・グループを作成して構成します。Oracleには、ディスク・グループおよびその内容とメタデータを作成して管理するSQL文が用意されています。
ディスク・グループのタイプによって、ディスク・グループのファイルを作成する際のミラー化のレベルが決まります。ディスク・グループのタイプはディスク・グループの作成時に指定します。表12-2に、ASMディスク・グループのタイプ、サポートされているミラー化レベル、およびデフォルトのミラー化レベルを示します。デフォルトのミラー化レベルとは、別のミラー化レベルを指定しないかぎり、ファイルの作成時に使用されるミラー化レベルです(この項で後述する「テンプレート」を参照)。
| ディスク・グループのタイプ | サポートされているミラー化レベル | デフォルトのミラー化レベル |
|---|---|---|
|
通常の冗長性 |
2方向3方向非保護(ミラー化なし) |
2方向 |
|
高い冗長性 |
3方向 |
3方向 |
|
外部の冗長性 |
非保護(ミラー化なし) |
非保護 |
ディスク・グループの作成時にディスク・グループのタイプ(冗長性レベル)を指定しない場合、ディスク・グループは通常の冗長性にデフォルト設定されます。
表12-2に示すように、高い冗長性のディスク・グループのファイルは常に3方向ミラー化です。外部の冗長性のディスク・グループのファイルではASMのミラー化はありません。通常の冗長性のディスク・グループのファイルは2方向ミラー化、3方向ミラー化または非保護で、デフォルトは2方向ミラー化です。各ファイルのミラー化レベルはテンプレートを使用して設定されます。テンプレートについては、この項で後述します。
ディスク・グループ内のディスクは、ASMディスクと呼ばれます。Windowsオペレーティング・システムでは、ASMディスクは常にパーティションです。その他のすべてのプラットフォームでは、ASMディスクは次のいずれかです。
ASMインスタンスが起動すると、使用可能なすべてのASMディスクが自動的に検出されます。検出プロセスでは、すべてのディスク・デバイスについて(一部のオペレーティング・システムのメカニズムによって)ASMインスタンスにI/O権限が付与されているかどうかを判断し、ディスクの最初のブロックの内容を調べてディスクがディスク・グループに属していると認識されているかどうかを確認します。ASMでは、初期化パラメータにリストされたパスからディスクを検出します。パラメータがNULLの場合は、オペレーティング・システム固有のデフォルト・パスからディスクを検出します。
障害グループは、共通の潜在的な障害メカニズムを共有するASMディスクを定義します。同じSCSIコントローラを共有する一連のSCSIディスクは、障害グループの一例です。障害グループは、データの冗長コピーの格納に使用するASMディスクを決定するために使用します。たとえば、ファイルに対して2方向ミラー化が指定された場合、ASMはファイルのエクステントの冗長コピーを別々の障害グループに自動的に格納します。障害グループが適用されるのは、通常の冗長性および高い冗長性のディスク・グループのみです。ディスク・グループの作成または変更時に、障害グループをディスク・グループに定義します。
ASMディスクに書き込まれたファイルはASMファイルと呼ばれ、その名前はASMによって自動的に生成されます。ASMファイルには、わかりやすい別名を指定でき、別名に対して階層ディレクトリ構造を作成できます。各ASMファイルは1つのディスク・グループに完全に格納され、ディスク・グループ内のすべてのASMディスクに均等に分散されます。
テンプレートはファイル属性値の集まりです。テンプレートを使用して、ASMディスク・グループで作成された各種データベース・ファイル(データ・ファイル、制御ファイル、REDOログ・ファイルなど)のミラー化属性とストライプ化属性を設定します。各ディスク・グループには、各ファイル・タイプに関連付けられたデフォルトのテンプレートがあります。 詳細は、「ディスク・グループのテンプレートの管理」を参照してください。
固有の要件を満たすために、独自のテンプレートを作成することもできます。ファイルの作成時にテンプレート名を指定すると、ファイル・タイプごとではなく個々のファイルごとに必要な属性を割り当てることができます。 詳細は、「ASMファイル名の概要」を参照してください。
自動ストレージ管理(ASM)インスタンスの管理はデータベース・インスタンスの管理に似ていますが、実行するタスクは少なくてすみます。ASMインスタンスでは、データベース・インスタンスを実行して管理する必要はありません。
すべてのASM管理タスクはSQL*Plusを使用して実行できます。
|
注意
SQL*Plusを使用してASMを管理するには、SQL*Plusを起動する前に、環境変数
単一インスタンス・データベースのデフォルトASM SIDは |
Oracle Enterprise Manager(EM)またはデータベース・コンフィギュレーション・アシスタント(DBCA)を使用して、ディスク・グループを構成および変更することもできます。DBCAを使用するとデータベースを容易に構成および作成できます。一方、EMを使用すると、統合されたグラフィカルな方法でASMインスタンスとデータベース・インスタンスの両方を管理できます。 EMを使用してASMインスタンスを管理する方法については、『Oracle Database 2日でデータベース管理者』の付録Aを参照してください。
この項の内容は、次のとおりです。
ASMはデータベース・サーバーに統合されているため、Oracle Universal Installer(OUI)およびデータベース・コンフィギュレーション・アシスタント(DBCA)を使用してASMをインストールし、初期の構成を行います。OUIには、ASMを使用して記憶域管理を行うようにデータベースをインストールして構成するか、またはデータベース・インスタンスを作成せずにASMインスタンスのみをインストールして構成するかを選択するオプションがあります。 ASMをインストールする手順の詳細は、使用しているオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。
ASMをインストールする際は、次の事項に注意してください。
別々のOracleホームを使用すると、ASMとデータベースを個別にアップグレードしたりパッチを適用でき、ASMインスタンスに影響を与えずにデータベース・ソフトウェアをアンインストールできます。
ASMインスタンスがまだ存在せず、ASMのみをインストールおよび構成するOUIオプションを選択した場合、OUIは独自のOracleホームにASMをインストールします。
ASMインスタンスがまだ存在せず、ASMを使用して記憶域管理を行うようにデータベースを作成するOUIオプションを選択した場合、OUIは1つのOracleホームを共有する構成を作成します。
ASMLibの詳細は、Oracle Technology NetworkのWebサイトhttp://www.oracle.com/technology/products/database/asmでASMに関するページを参照してください。Linux用のASMLibは、http://www.oracle.com/technology/tech/linux/asmlibからダウンロードしてください。
ASMのセキュリティは、特定のASMインスタンスが同じサーバー上で操作中の1つ以上のデータベース・インスタンスと緊密にバインドされているという事実に基づいて考慮されます。実質上、ASMインスタンスはデータベース・インスタンスの論理的な拡張です。ASMインスタンスとデータベース・インスタンスには、ディスク・グループのメンバー・ディスクに対する同等のオペレーティング・システム・アクセス権(読取り/書込み)が必要です。UNIXの場合、通常、このアクセス権は共有のUNIXグループ・メンバーシップを通じて提供されます。 ASMインスタンスとデータベース・インスタンスにメンバー・ディスクに対する適切なアクセス権があることを確認する方法は、使用しているオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。
ASMインスタンスにはデータ・ディクショナリがないため、データ・ディクショナリに接続するには管理者で接続する方法しかありません。つまり、オペレーティング・システム認証を使用してSYSDBAで接続するか、またはOracle Net Servicesを介してリモートで接続するときは、パスワード・ファイルを使用します。
オペレーティング・システム認証を使用する場合は、SYSDBA権限でローカルに接続する認可が、特別なオペレーティング・システム・ユーザー・グループを使用して付与されます。これらのグループは一般にOSDBAと呼ばれます(UNIXでは通常、OSDBAはdbaグループになります)。 OSDBAの詳細は、「オペレーティング・システム認証の使用」を参照してください。
デフォルトでは、OSDBAグループのメンバーは、ノード上のすべてのインスタンス(ASMインスタンスを含む)にSYSDBA権限で接続することが認可されています。SYSDBA権限でASMインスタンスに接続するユーザーには、そのASMインスタンスで管理されるすべてのディスク・グループに対する完全な管理アクセス権があります。
Oracle Net Servicesを介してASMをリモート管理するには、ASMのパスワード・ファイルを作成する必要があります。パスワード・ファイルは、Enterprise Managerを使用してASMに接続する場合にも必要です。
データベース・コンフィギュレーション・アシスタント(DBCA)は、ASMディスク・グループを最初に構成するときに、ASMのパスワード・ファイルを作成します。データベース・パスワード・ファイルと同様に、作成時にパスワード・ファイルに追加されるユーザーはSYSのみです。他のユーザーをパスワード・ファイルに追加する場合は、パスワード・ファイルをデータベース・インスタンスと共有し、データベースを使用してユーザーを追加する必要があります。
DBCAを使用せずにASMインスタンスを構成する場合は、パスワード・ファイルを自分で作成する必要があります。 詳細は、「パスワード・ファイルの作成とメンテナンス」を参照してください。
ASMインスタンスには独自の初期化パラメータ・ファイルがあり、データベース・インスタンスの場合と同様に、サーバー・パラメータ・ファイル(SPFILE)またはテキスト・ファイルの場合があります。
ASMのパラメータ・ファイル名は、名前に埋め込まれたSIDによってデータベース・ファイル名と区別されます(ASMのSIDのデフォルトは、単一インスタンス・データベースの場合は+ASMで、Real Application Clustersノードの場合は+ASMnode#に設定されます)。ASMの初期化パラメータ・ファイルに適用されるファイル名、デフォルトの場所および検索順序のルールは、データベース初期化パラメータ・ファイルに適用されるルールと同じです。したがって、単一インスタンスのUNIXプラットフォームでは、ASMのサーバー・パラメータ・ファイルのパスは次のようになります。
$ORACLE_HOME/dbs/spfile+ASM.ora
初期化パラメータ・ファイルの詳細は、「初期化パラメータの理解」を参照してください。
ASMインスタンスに特に関連する初期化パラメータがいくつかあります。データベース・インスタンス用の初期化パラメータの中で、ASMインスタンスに関連するパラメータはごく一部です。このパラメータは、データベース作成時にデータベース・コンフィギュレーション・アシスタントを使用するか、または、後でEnterprise Managerを使用して作成できます。ここからは、初期化パラメータ・ファイルを編集し、パラメータを手動で設定する方法を説明します。
ASMインスタンスに関連する初期化パラメータは、次のとおりです。ASM_で始まるパラメータは、データベース・インスタンスでは設定できません。
| パラメータ名 | 説明 |
|---|---|
|
|
注意: このパラメータのみ必須です。他のすべてのパラメータは、ほとんどの環境に適したデフォルト値が設定されています。 |
|
|
関連項目: 「再バランス操作のチューニング」 |
|
|
ASMで検出するディスク・セットを制限する文字列のカンマ区切りリスト。ワイルドカード文字を使用できます。いずれかの文字列と一致するディスクのみが検出されます。文字列の形式は、使用しているASMライブラリおよびオペレーティング・システムによって異なります。ASMの標準的なシステム・ライブラリは、
たとえば、ASMLibを使用しないSolarisサーバーで検出対象を /dev/rdsk/*
アスタリスクは省略できないことに注意してください。検出対象を、名前が /dev/rdsk/*s3,/dev/rdsk/*s4 これは、次のように簡素化できます。 /dev/rdsk/*s[34] パスの最初の文字として?を使用すると、Oracleホーム・ディレクトリに拡張されます。オペレーティング・システムによっては、パス内の別の場所で?を使用すると、1文字のワイルドカードになります。
デフォルト: 関連項目: 「ディスク検出時間の改善」 |
|
|
ASMインスタンスの起動時、または
デフォルト: このパラメータは動的であるため、サーバー・パラメータ・ファイル(SPFILE)を使用している場合、この値を手動で変更する必要はありません。ASMは、ディスク・グループが正常に作成またはマウントされるとディスク・グループをこのパラメータに自動的に追加し、削除またはディスマウントされるとディスク・グループをこのパラメータから自動的に削除します。ただし、テキスト形式の初期化パラメータ・ファイル(PFILE)を使用している場合は、その初期化パラメータ・ファイルを編集して、インスタンスの起動時に自動的にマウントするディスク・グループの名前を追加し、自動的にマウントしないディスク・グループの名前を削除する必要があります。
注意: |
ALTER DISKGROUPコマンドにPOWER句が指定されていない場合、または再バランスがディスクの追加や削除によって暗黙的に起動される場合、再バランスの指数はデフォルトでASM_POWER_LIMIT初期化パラメータの値に設定されます。このパラメータは動的に調整できます。この制限値が高いほど、再バランス操作は迅速に完了します。低い値ほど、再バランスには時間がかかりますが、消費する処理リソースやI/Oリソースが少なくなります。このため、データベースなど他のアプリケーションでもリソースを使用できます。デフォルト値1を設定すると、他のアプリケーションの中断を最小限に抑えることができます。適切な値は、ハードウェア構成、パフォーマンス要件および可用性要件によって異なります。
ディスクが手動または自動的に削除されたために再バランスを実行している場合は、再バランスの指数を高くすると、削除されたディスク上のデータの冗長なコピーを別のディスクに再構成する時間が短くなります。
V$ASM_OPERATIONビューに表示される情報を使用して、ASM_POWER_LIMITおよび再バランス操作の指数を調整できます。V$ASM_OPERATIONビューのEST_MINUTES列には、再バランス操作完了までの残り時間の見積りも表示されます。再バランスの指数を変更した場合の効果は、この見積り時間の変化を観察することによって確認できます。
ASM_DISKSTRING初期化パラメータの値は、オペレーティング・システムによって異なり、ASMでは検出プロセスでディスクの検索に使用するパス・セットを制限するために使用されます。新しいディスクをディスク・グループに追加した場合、ディスク・グループをマウントした各ASMインスタンスでは、ASM_DISKSTRINGを使用してその新しいディスクを検出できる必要があります。
多くの場合は、デフォルト値(NULL)で十分です。制限の大きい値を使用すると、ASMで検出を実行する時間が短くなるため、ディスク・グループをマウントする時間やディスクをディスク・グループに追加する時間が改善されます。ASM_DISKSTRINGパラメータを使用して新しいディスクを検出できるように、ディスクを追加する前にこのパラメータを動的に変更する必要が生じる場合があります。
ASM_DISKSTRINGのデフォルト値を使用する場合、あらゆる状況ですべてのディスクを検索できるわけではありません。サイトでサード・パーティ・ベンダーのASMLibを使用している場合、そのベンダーには、ASM_DISKSTRINGで使用する必要がある検出文字列の表記規則が用意されている可能性があります。さらに、インストレーションでマルチパス・ソフトウェアを使用すると、オペレーティング・システムのデフォルトとは異なるパスに疑似デバイスが配置される場合があります。詳細は、マルチパス・ベンダーのドキュメントを参照してください。
ASM初期化パラメータ・ファイルでデータベース・インスタンスの初期化パラメータを指定すると、次のいずれかの結果になります。
データベース・インスタンスのパラメータ・ファイルでASM固有のパラメータ(名前がASM_で始まる)を指定すると、ORA-15021エラーが発生します。
ASMインスタンスは、Oracleデータベース・インスタンスと同様に起動しますが、いくつかの相違点があります。
ORACLE_SIDをASM SIDに設定する必要があります(単一インスタンス・データベースのデフォルトASM SIDは+ASMで、Real Application Clusters上のASMのデフォルトSIDは+ASMnode#です)。使用しているオペレーティング・システム、およびASMを独自のOracleホームにインストールしているかどうかによって、他の環境変数の変更が必要になる場合があります。 詳細は、「環境変数を使用したインスタンスの選択」を参照してください。
INSTANCE_TYPE = ASM
このパラメータは、Oracle実行可能ファイルに対して、データベース・インスタンスではなくASMインスタンスが起動することを示します。
STARTUPコマンドは、データベースをマウントして開くのではなく、初期化パラメータASM_DISKGROUPSで指定されたディスク・グループをマウントしようとします。ASM_DISKGROUPSが空白の場合、ASMインスタンスが起動して、マウントされたディスク・グループがないことを警告します。その後、ALTER DISKGROUP...MOUNTコマンドを使用してディスク・グループをマウントできます。
ASMでは、SQL*Plus STARTUPコマンドのパラメータが次のように解釈されます。
次に、ASMインスタンスを起動するSQL*Plusセッションのサンプルを示します。
% sqlplus /nolog SQL> CONNECT / AS sysdba Connected to an idle instance. SQL> STARTUP ASM instance started Total System Global Area 71303168 bytes Fixed Size 1069292 bytes Variable Size 45068052 bytes ASM Cache 25165824 bytes ASM diskgroups mounted
ASMインスタンスは、データベース・インスタンスより小規模です。最大規模のASMインストール以外は、64MB SGAで十分です。標準的なASMインスタンスのメモリー合計は約100MBです。
ASMとそのクライアント・データベース・インスタンスの間で同期化を有効にするには、クラスタ同期化サービス(CSS)デーモンが必要です。CSSデーモンは、通常、データベース・コンフィギュレーション・アシスタント(DBCA)を使用してデータベースを作成するときに起動し、再起動時に起動するように構成されています。DBCAを使用せずにデータベースを作成する場合は、ASMインスタンスを起動する前に、CSSデーモンが実行中であることを確認する必要があります。
CSSデーモンが実行中かどうかを判別するには、コマンドcrsctl check cssdを発行します。CSS appears healthyというメッセージが表示された場合、CSSデーモンは実行中です。
CSSデーモンを起動し、再起動時に常にデーモンを起動するようにホストを構成する手順は、次のとおりです。
Windowsプラットフォームでcrsctlおよびlocalconfigコマンドを使用すると、CSSデーモンのステータスをチェックしたり、CSSデーモンを起動することもできます。WindowsのGUIツールを使用する場合は、次の操作を実行できます。
CSSデーモンが適切に構成されて実行されているかどうかを判別するには、Windowsの「コントロール パネル」で「サービス」アイコンをダブルクリックし、OracleCSServiceサービスを検索します。ステータスは「起動済」で、起動タイプは「自動」であることが必要です。
Windowsサービスの起動方法、および自動的に起動するように構成する方法については、Windowsのドキュメントを参照してください。
ASMインスタンスを初期化すると、ASMでは、ASM_DISKSTRING初期化パラメータで指定されたパス内の全ディスクを検出してその内容を調べます。 ここでの説明では、「ディスク」は「自動ストレージ管理の構成要素の概要」で定義したとおり、ASMディスクを指します。ディスク検出は、次の場合にも実行されます。
ALTER DISKGROUP...ADD DISKコマンドおよびALTER DISKGROUP...RESIZE DISKコマンドを実行した場合
V$ASM_DISKGROUPビューおよびV$ASM_DISKビューを問い合せた場合
ディスクは、正常に検出されるとV$ASM_DISKビューに表示されます。ディスク・グループに属するディスク(つまり、ディスク・ヘッダーにディスク・グループ名が含まれるディスク)のヘッダー・ステータスはMEMBERです。検出されたディスクがまだディスク・グループに割り当てられていない場合、ヘッダー・ステータスはCANDIDATEまたはPROVISIONEDのいずれかになります。
次の問合せは、6つのMEMBERディスクと1つのCANDIDATEディスクを示しています。
SQL> select name, header_status, path from v$asm_disk; NAME HEADER_STATUS PATH ------------ ------------- ------------------------- CANDIDATE /dev/rdsk/disk07 DISK06 MEMBER /dev/rdsk/disk06 DISK05 MEMBER /dev/rdsk/disk05 DISK04 MEMBER /dev/rdsk/disk04 DISK03 MEMBER /dev/rdsk/disk03 DISK02 MEMBER /dev/rdsk/disk02 DISK01 MEMBER /dev/rdsk/disk01 7 rows selected.
検出ルールは次のとおりです。
ASM_DISKSTRING初期化パラメータと一致すると、最初の10,000ディスクのみが検出されます。
ASM_DISKSTRING検索パス内にあり、ASMがディスクに対する読取り/書込み権限を持っている場合でも、ASMでは、オペレーティング・システムのパーティション表を含むディスクは検出しません。
FORCEキーワードを使用した場合のみディスク・グループに追加できます。このようなディスクは、FOREIGNというヘッダー・ステータスでV$ASM_DISKに表示されます。
さらに、ASMは、検出時に次の構成エラーを識別します。
この場合、ディスクがディスク・グループに属していると、ディスク・グループのマウントが失敗します。このディスクをADD DISKまたはCREATE DISKGROUPコマンドを使用してディスク・グループに追加しようとすると、このコマンドは失敗します。エラーを訂正するには、同じディスクに複数のパスを設定しないようにASM_DISKSTRINGを制限するか、マルチパス・ソフトウェアを使用している場合は、ASM_DISKSTRINGに疑似デバイスのみが設定されていることを確認します。
これは、1つのディスクを別のディスクにビット単位でコピーすると発生する可能性があります。この場合、ディスク・グループのマウントは失敗します。
他のファイル・システムやボリューム・マネージャと同様に、ASMインスタンスで障害が発生すると、そのASMインスタンスと同じノード上のすべてのOracleデータベース・インスタンスおよびそのASMインスタンスによって管理されているディスク・グループを使用するすべてのOracleデータベース・インスタンスでも障害が発生します。単一のASMインスタンス構成では、ASMメタデータを更新するためにオープンしているときにASMインスタンスで障害が発生した場合、そのASMインスタンスは、再初期化の後、ディスク・グループのログを読み込んで未完了のすべての変更をリカバリします。
ディスク・グループを複数のASMインスタンスが共有している場合は、1つのASMインスタンスで障害が発生すると、そのために発生したASMメタデータの未完了の変更は、別のASMインスタンスによって自動的にリカバリされます。ASMメタデータを更新するのはASMインスタンスのみであるため、Oracleデータベース・インスタンスの障害は重大な問題となりません。
自動ストレージ管理の停止は、SQL*PlusのSHUTDOWNコマンドを発行して実行します。
最初に、環境変数ORACLE_SIDがASM SIDに設定されてASMインスタンスに接続していることを確認する必要があります。使用しているオペレーティング・システム、およびASMを独自のOracleホームにインストールしているかどうかによって、SQL*Plusを起動する前に他の環境変数の変更が必要になる場合があります。 詳細は、「環境変数を使用したインスタンスの選択」を参照してください。
% sqlplus /nolog SQL> CONNECT / AS sysdba Connected. SQL> SHUTDOWN NORMAL
次の表にSHUTDOWNモードを一覧表示し、各モードでのASMインスタンスの動作を説明します。
ASMインスタンスを停止する前に、ASMインスタンスを使用する全データベース・インスタンスを停止することをお薦めします。
この項では、自動ストレージ管理(ASM)ディスク・グループの作成および管理の方法について説明します。ASMを使用する1つ以上のデータベース・インスタンスがある場合、ディスク・グループを管理する間、データベース・インスタンスをオープンして実行中のままにできます。
ASMディスク・グループは、データベース・コンフィギュレーション・アシスタント(DBCA)、Enterprise Manager(EM)またはSQL*Plusを使用して管理できます。さらに、ASMコマンドライン・ユーティリティであるASMCMDを使用すると、ディスク・グループ内のファイルやディレクトリを簡単に表示および操作できます。
この項では、SQL*Plusを使用した管理の詳細を説明し、すべての管理方法に適用されるバックグラウンド情報についても説明します。
この項で説明するSQL文は、ASMインスタンスでのみ使用できます。
|
注意
この項で示すSQL*Plusセッションの全サンプルは、SQL*Plusを起動する前に環境変数 |
この項の内容は、次のとおりです。
ここでは、ディスク・グループを構成する際の考慮点とガイドラインについて説明します。
作成するディスク・グループの数の判断には、次の基準が役立ちます。
ASMでは、手動によるI/Oチューニングは不要です。ただし、一貫性のあるパフォーマンスを確保するには、同一ディスク・グループ内に異なるタイプのディスクを配置しないようにする必要があります。たとえば、最新の高速ディスクをデータベースの作業領域用に予約したディスク・グループに配置し、低速ドライブをフラッシュ・リカバリ領域用に予約したディスク・グループに配置できます。
ASMでは、ファイルのエクステントを1つのディスク・グループ内のすべてのディスク間で均等に分散することで、ファイル・アクティビティのロード・バランスを実行します。この方法の効果を上げるには、ディスク・グループ内のディスクが同様のパフォーマンス特性を持っていることが重要です。
同じディスク・グループ内にサイズやパフォーマンス特性が異なるディスクが一時的に存在できる場合があります。それは、古いディスク・セットから新しいディスク・セットに移行する場合です。新しいディスクが追加され、古いディスクは削除されます。古いディスクが削除されると、その記憶域は、ディスク・グループがオンラインのときに新しいディスクに移行します。
ASMは、ディスクが追加または削除されるたびに、再バランスを自動的に実行します。通常の削除操作(FORCEオプションの指定なし)では、ディスクは、再バランスによってディスクのデータが削除されるまで解放されません。同様に、新しく追加されたディスクは、再バランスが完了するまでI/Oワークロードの共有をサポートできません。したがって、複数のディスクを同時に追加または削除すると、1回の操作で再バランスを実行できるため効率的です。これによって、不要なデータの移動を回避できます。
削除操作の場合、再バランスが完了すると、ASMはディスクをすぐにオフラインにしてディスクを削除し、ディスク・ヘッダー・ステータスをFORMERに設定します。
ディスクの追加または削除は、データベースを停止せずに実行できます。ただし、I/Oアクティビティのパフォーマンスに影響を与える場合があります。
ディスク・グループの冗長性レベル、および障害グループの定義方法に応じて、1つ以上のディスクに障害が発生すると、次のいずれかの結果になります。
ディスク・グループはマウントされたままサービス可能で、ミラー化によってすべてのディスク・グループのデータはアクセス可能のままです。ディスクが削除された後、ASMは再バランスを実行して、障害が発生したディスク内のデータの冗長性を完全にリストアします。
この場合のディスク障害とは、個別のスピンドル障害、または電源、コントローラ、ホスト・バス・アダプタなど別のディスク・サブシステム構成要素の障害を意味します。ここでは、ASMがディスク障害を処理するルールについて説明します。
これらのルールから、CREATE DISKGROUPを使用してディスクを障害グループに明示的に割り当てていない場合、ASMはそのディスクを独自の障害グループに格納することに注意してください。また、障害グループ内の1つのディスクに障害が発生しても、障害グループ内の他のディスクには影響しません。たとえば、ある障害グループが6つのディスクで構成され、同じディスク・コントローラに接続しているとします。6つのディスクの内、1つのディスクに障害が発生した場合、他の5つのディスクは操作を続行できます。障害が発生したディスクはディスク・グループから削除され、他の5つのディスクはディスク・グループ内に残ります。前述したルールに従って、ディスク・グループはマウントされたままになる場合とディスマウントされる場合があります。
ASMによってディスクが削除されると、そのディスクは修復または置換された場合でもディスク・グループに自動的に戻されません。ディスクをディスク・グループに戻すには、ALTER DISKGROUP...ADD DISKコマンドを発行する必要があります。同様に、ASMによってディスク・グループが自動的にディスマウントされた場合、ディスク・グループを再マウントするにはALTER DISKGROUP...MOUNTコマンドを発行する必要があります。
メタデータとユーザー・データのミラー化は、障害グループを介して実行します。障害グループの数が不足すると、システムの信頼性が低下する可能性があります。そのため、障害グループの構成は、信頼性の高いシステムを作成するために非常に重要です。次に、障害グループに関するルールとガイドラインを示します。
許容対象となる最大規模の障害を処理するには、各ディスク・グループに十分な予備容量が必要です。1つ以上のディスクに障害が発生した後、すべてのデータの冗長性をリストアするプロセスでは、ディスク・グループ内で障害が発生していないディスクの領域が必要になります。この領域が不足すると、一部のファイルが冗長性の低下で終了する場合があります。
冗長性の低下とは、ファイル内の1つ以上のエクステントが必要なレベルでミラー化されないことを意味します。たとえば、高い冗長性のディスク・グループ内にある冗長性が低下したファイルの場合、そのファイルには、エクステントのコピーが3つではなく2つ以下のファイル・エクステントが少なくとも1つあります。ファイルが保護されていない場合は、データ・エクステントも失われる可能性があります。ファイルの冗長性が低下する他の原因として、ディスク領域を使い果たした場合、または障害グループ数が不十分な場合があります。V$ASM_FILEのREDUNDANCY_LOWERED列は、冗長性が低下したファイルを示します。
次のガイドラインを参考にして、1つ以上のディスクに障害が発生した後、すべてのディスク・グループ内のデータの冗長性を完全にリストアするために必要な領域があることを確認してください。
V$ASM_DISKGROUPビューには、容量の管理をしやすくするための列があります。
REQUIRED_MIRROR_FREE_MBは、ディスク・グループで許容可能な最大規模の障害が発生した後、冗長性を完全にリストアするために、ディスク・グループで使用可能な領域の量を示します。
USABLE_FILE_MBは、新規ファイルで使用可能な空き領域(ミラー化のために調整済)を示します。
USABLE_FILE_MBは、ディスク・グループ内の空き領域合計からREQUIRED_MIRROR_FREE_MBを差し引いた後、ミラー化のために調整して計算されます。たとえば、通常の冗長性のディスク・グループでは、ミラー化したファイルはデフォルトでファイルの2倍のサイズに相当するディスク領域を使用します。実際に使用可能なファイル領域が4GB残っている場合、USABLE_FILE_MBはおよそ2GBになります。この場合、最大2GBのファイルを追加できます。
次の問合せは、通常の冗長性のディスク・グループでの容量メトリックを示しています。このディスク・グループは、1GB(1024MB)の6つのディスクから構成され、それぞれ独自の障害グループに存在します。
select name, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb from v$asm_diskgroup; NAME TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB ------------ ------ ---------- ---------- ----------------------- -------------- DISKGROUP1 NORMAL 6144 3768 1024 1372
REQUIRED_MIRROR_FREE_MB列は、1つ以上のディスクに障害が発生した場合、冗長性を完全にリストアするために使用できる余分な容量が1GBあることを示しています。問合せ結果の最初の3つの数値列は、RAW数値であることに注意してください。つまり、これらの数値は冗長性を考慮していません。最後の列のみ、通常の冗長性に合せて調整されています。次を参照してください。
FREE_MB - REQUIRED_MIRROR_FREE_MB = 2 * USABLE_FILE_MB or 3768 - 1024 = 2 * 1372 = 2744
FREE_MB、REQUIRED_MIRROR_FREE_MBおよびUSABLE_FILE_MBの関連から、USABLE_FILE_MBが負の値になる場合があります。これは必ずしも重大な状態ではありませんが、次のことを意味します。
USABLE_FILE_MBが負の値になった場合は、すぐにディスク・グループに領域を追加することをお薦めします。
ASMには、次の制限があります。
| ディスク・グループのタイプ | 最大ファイル・サイズ |
|---|---|
|
外部の冗長性 |
35TB |
|
通常の冗長性 |
5.8TB |
|
高い冗長性 |
3.9TB |
ディスク・グループを作成するには、CREATE DISKGROUP文を使用します。この文を使用すると、ディスク・グループに名前を割り当て、そのディスク・グループに属するASMディスクとして書式化するディスクを指定できます。ディスクは1つ以上のオペレーティング・システム固有の検索文字列として指定し、ASMは、その検索文字列を使用してディスクを検索します。
ディスクは特定の障害グループに属するように指定でき、ディスク・グループの冗長性レベルも指定できます。
ASMでファイルをミラー化する場合、冗長レベルはNORMAL REDUNDANCY(2方向ミラー化、ほとんどのファイル・タイプのデフォルト)またはHIGH REDUNDANCY(3方向ミラー化、すべてのファイルを対象)を指定します。ASMでミラー化を実行しない場合は、EXTERNAL REDUNDANCYを指定します。たとえば、ストレージ・アレイの保護機能を使用する場合にEXTERNAL REDUNDANCYを選択できます。 冗長レベルの詳細は、『Oracle Database SQLリファレンス』を参照してください。 障害グループについては、「自動ストレージ管理の構成要素の概要」および「障害グループとミラー化」を参照してください。
ASMは、各ディスクのサイズをプログラムで決定します。なんらかの理由でサイズを決定できない場合、または使用するディスク領域を制限する必要がある場合は、各ディスクに対してSIZE句を指定できます。ASMは、ディスク・グループ内のディスクに対してオペレーティング・システムに依存しないディスク名を生成します。この名前は、他のSQL文でディスクを参照するときに使用できます。必要に応じて、NAME句を使用してディスクに独自の名前を指定できます。ディスク名はV$ASM_DISKビューで使用できます。
ASMインスタンスは、新規作成されたディスク・グループに属すディスクが処理可能で、別のディスク・グループのメンバーでないことを確認します。ディスクがディスク・グループにすでに属しているかどうかを判断するには、ディスクの最初のブロックを読み込む必要があります。ディスクがディスク・グループに属していない場合は、ヘッダーが書き込まれます。1つのディスクが複数のディスク・グループのメンバーになることはできません。
ヘッダーからディスクがすでに別のディスク・グループに属していることが判明した場合は、FORCE句を指定すると、そのディスクを作成するディスク・グループのメンバーにできます。たとえば、ASMヘッダーを持つディスクが一時的に障害を起こし、そのディスクがディスク・グループから削除されたときにヘッダーが消去されなかったとします。修復されたディスクは、どのディスク・グループにも属さなくなりますが、ASMヘッダーはそのまま残ります。新しいディスク・グループでそのディスクを使用する場合は、FORCEフラグが必要です。この場合、元のディスク・グループはマウントされていないこと、およびディスクにディスク・グループ・ヘッダーがあることが必要です。それ以外の場合は、操作に失敗します。この操作を行うと、別のディスク・グループが使用不可になる場合があることに注意してください。NOFORCE(デフォルト)を指定した場合は、すでに別のディスク・グループに属しているディスクをメンバーにしようとするとエラーが発生します。
CREATE DISKGROUP文は、ディスク・グループを最初にマウントし、サーバー・パラメータ・ファイルが使用されている場合は、ディスク・グループの名前をASM_DISKGROUPS初期化パラメータに追加します。テキスト形式の初期化パラメータ・ファイルを使用し、インスタンスの起動時にディスク・グループを自動的にマウントする場合は、次回ASMインスタンスを停止して再起動する前に、ASM_DISKGROUPS初期化パラメータにディスク・グループ名を追加する必要があります。
次の例では、ASM_DISKSTRING初期化パラメータが'/devices/*'に設定されているとします。次のように想定します。
/devices内の次のディスクが識別されています。
/devices/diska1
/devices/diska2
/devices/diska3
/devices/diska4
/devices/diskb1
/devices/diskb2
/devices/diskb3
/devices/diskb4
diska1〜diska4は、diskb1〜diskb4とは異なるSCSIコントローラ上に存在します。
次に、ASMインスタンスを起動して、dgroup1という名前のディスク・グループを作成するSQL*Plusセッションを示します。
% SQLPLUS /NOLOG SQL> CONNECT / AS SYSDBA Connected to an idle instance. SQL> STARTUP NOMOUNT SQL> CREATE DISKGROUP dgroup1 NORMAL REDUNDANCY 2 FAILGROUP controller1 DISK 3 '/devices/diska1', 4 '/devices/diska2', 5 '/devices/diska3', 6 '/devices/diska4' 7 FAILGROUP controller2 DISK 8 '/devices/diskb1', 9 '/devices/diskb2', 10 '/devices/diskb3', 11 '/devices/diskb4';
この例にあるdgroup1は、障害グループcontroller1またはcontroller2に属するように定義された8つのディスクで構成されています。ディスク・グループにはNORMAL REDUNDANCYレベルが指定されているため、ASMは、システム・デフォルトのテンプレートのミラー化設定に従って、各タイプのデータベース・ファイルに対してミラー化を提供します。
たとえば、表12-5に示すシステム・デフォルトのテンプレートでは、通常の冗長性のディスク・グループの場合、オンラインREDOログ・ファイル(ONLINELOGテンプレート)のデフォルト冗長性はMIRRORです。この場合、REDOログ・ファイルのエクステントのコピーが障害グループcontroller1内のディスクに書き込まれると、ファイルのエクステントのミラー化コピーが障害グループcontroller2内のディスクに書き込まれます。つまり、通常の冗長性のディスク・グループに対してデフォルトのミラー化をサポートするためには、少なくとも2つの障害グループを定義する必要があります。
ディスク・グループに属するディスクに対してNAME句を指定しないと、ディスクにはdgroup1_0001、dgroup1_0002、... dgroup1_0008という名前が割り当てられます。
ディスク・グループは、作成後に、ディスクを追加、サイズ変更または削除して構成を変更できます。これらの処理を実行するには、ALTER DISKGROUP文の句を使用します。1つのALTER DISKGROUP文で複数の操作を実行できます。
ASMは、ディスク・グループの構成が変更されると、自動的に再バランスを実行します。再バランス操作には長時間かかる場合があるため、デフォルトでは、この操作が完了するのを待たずにALTER DISKGROUP文は戻されます。再バランス操作の進捗を監視するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。
再バランス操作が完了するまで待機してからALTER DISKGROUP文を戻す場合は、REBALANCE WAIT句を追加します。これは特にスクリプトで役立ちます。この文はREBALANCE NOWAIT句も受け入れます。この句を使用すると、再バランス操作のデフォルト動作が非同期にバックグラウンドで起動します。ほとんどのプラットフォームでは、[CTRL]+[C]を押すと、待機モードで実行中の再バランスを中断できます。これによってコマンドはすぐに戻されてメッセージ「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」が表示され、操作が非同期で続行されます。[CTRL]+[C]を押しても、再バランス操作は取り消されず、ディスクの追加、削除またはサイズ変更の操作も取り消されません。
再バランス操作の処理速度とリソース使用を制御するには、ディスクの追加、削除またはサイズ変更を行う文にREBALANCE POWER句を指定します。 この句の詳細は、「ディスク・グループの手動による再バランス」を参照してください。
ディスクまたは障害グループは、ALTER DISKGROUP文のADD句を使用してディスク・グループに追加します。ディスクをディスク・グループに追加する際に使用するALTER DISKGROUPの句は、最初にディスク・グループを作成したときにディスク・グループに属するディスクを指定するために使用する句と同じです。この操作については、「ディスク・グループの作成」を参照してください。
新しいディスクは、再バランス操作の進行に従って、順次ワークロードを共有できるようになります。
次の各例では、ディスクをディスク・グループに追加する際のASMの動作について説明します。
次の文は、ディスクをdgroup1に追加します。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/diska5' NAME diska5, '/devices/diska6' NAME diska6;
ALTER DISKGROUP文にはFAILGROUP句が指定されていないため、各ディスクには独自の障害グループが割り当てられます。ディスクに名前を割り当てるにはNAME句を使用します。この句を使用しない場合は、システム生成の名前が割り当てられます。
この例で示す文は、ディスク検出機能とADD DISK操作の相互作用を示します。
ディスク検出機能によって、ディレクトリ/devices内の次のディスクが識別されているとします。
/devices/diska1 -- dgroup1のメンバー
/devices/diska2 -- dgroup1のメンバー
/devices/diska3 -- dgroup1のメンバー
/devices/diska4 -- dgroup1のメンバー
/devices/diska5 -- 候補ディスク
/devices/diska6 -- 候補ディスク
/devices/diska7 -- 候補ディスク
/devices/diska8 -- 候補ディスク
/devices/diskb1 -- dgroup1のメンバー
/devices/diskb2 -- dgroup1のメンバー
/devices/diskb3 -- dgroup1のメンバー
/devices/diskb4 -- dgroup2のメンバー
/devices/diskc1 -- dgroup2のメンバー
/devices/diskc2 -- dgroup2のメンバー
/devices/diskc3 -- dgroup3のメンバー
/devices/diskc4 -- 候補ディスク
/devices/diskd1 -- 候補ディスク
/devices/diskd2 -- 候補ディスク
/devices/diskd3 -- 候補ディスク
/devices/diskd4 -- 候補ディスク
/devices/diskd5 -- 候補ディスク
/devices/diskd6 -- 候補ディスク
/devices/diskd7 -- 候補ディスク
/devices/diskd8 -- 候補ディスク
サーバー上にUNIX、SolarisまたはLinuxが稼働し、ASMLibがインストールされていない場合、次の文を発行すると、ディスク/devices/diska5〜/devices/diska8がdgroup1に正常に追加されます。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/diska[5678]';
次の文を発行すると、ディスク/devices/diska5と/devices/diskd5がdgroup1に正常に追加されます。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/disk*5';
次の文では、/devices/diska1〜/devices/diska4はすでにdgroup1に属しているため失敗します。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/diska*';
次の文では、検索文字列に一致するディスクが別のディスク・グループに属しているため失敗します。具体的には、/devices/diska4はディスク・グループdgroup1に属し、/devices/diskb4はディスク・グループdgroup2に属しています。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/disk*4';
次の文は、/devices/diska5および/devices/diskd1〜/devices/diskd8をディスク・グループdgroup1に正常に追加します。/devices/diskd5が両方の検索文字列に一致することは問題ありません。この文は再バランスの指数5を設定して実行され、再バランス操作が完了するまで戻されません。
ALTER DISKGROUP dgroup1 ADD DISK '/devices/disk*5', '/devices/diskd*' REBALANCE POWER 5 WAIT;
次のようにFORCE句を使用すると、現在dgroup3のメンバーである/devices/diskc3がdgroup2に追加されます。
ALTER DISKGROUP dgroup2 ADD DISK '/devices/diskc3' FORCE;
この文を正常に実行するためには、dgroup3がマウントされていないことが必要です。
ディスクをディスク・グループから削除するには、ALTER DISKGROUP文のDROP DISK句を使用します。指定した障害グループ内のすべてのディスクを削除する場合は、DROP DISKS IN FAILGROUP句を使用します。
ディスクを削除するとディスク・グループの再バランスが実行され、削除されたディスクのファイルのエクステントは、すべてディスク・グループ内の他のディスクに移動します。他のディスクに使用可能な領域が十分にないと、ディスクの削除操作が失敗する場合があります。ディスクを追加した後に他のディスクを削除する場合は、最初にディスクを追加して、削除操作で使用できる領域が十分にあることを確認することをお薦めします。ALTER DISKGROUP文を使用して、追加と削除の両方を実行するのが最善の方法です。この方法によって、再バランスの合計時間を減らすことができます。
削除操作でFORCE句を指定すると、自動ストレージ管理が読取りや書込みができないディスクも削除されます。ディスクを外部の冗長性のディスク・グループから削除する場合は、FORCEフラグを使用できません。
次の例では、diska5をディスク・グループdgroup1から削除します。このディスクには、「ディスク・グループへのディスクの追加: 例1」で示したように、オペレーティング・システムに依存しない名前として/devices/diska5が割り当てられています。
ALTER DISKGROUP dgroup1 DROP DISK diska5;
次の例ではdiska5をディスク・グループdgroup1から削除し、1つのALTER DISKGROUP文で複数の処理が可能であることを示しています。
ALTER DISKGROUP dgroup1 DROP DISK diska5 ADD FAILGROUP failgrp1 DISK '/devices/diska9' NAME diska9;
ALTER DISKGROUP文のRESIZE句を使用して、次の操作を実行できます。
SIZE句に新しいサイズを指定しない場合、ASMはオペレーティング・システムから戻されたディスク・サイズを使用します。これは、以前にディスク容量より小さいサイズを指定してディスク・サイズを制限していた場合に、ディスク領域をリカバリする方法として使用できます。
新しいサイズはASMディスク・ヘッダー・レコードに書き込まれ、ディスク・サイズが以前より大きくなった場合は、ただちに新しい領域が割当て可能になります。サイズが以前より小さくなった場合は、再バランス操作によって、新しいサイズを超えるファイルのエクステントを、制限以下の使用可能な領域に再配置する必要があります。再バランス操作によってすべてのエクステントが正常に再配置できる場合は、新しいサイズが永続的なサイズになります。それ以外の場合は、再バランスに失敗します。
次の例では、ディスク・グループdgroup1の障害グループfailgrp1内の全ディスクをサイズ変更します。新しいサイズがディスク容量を超える場合、この文は失敗します。
ALTER DISKGROUP dgroup1 RESIZE DISKS IN FAILGROUP failgrp1 SIZE 100G;
ディスク・グループ内のディスクに対する保留中の削除操作をすべて取り消すには、ALTER DISKGROUP文のUNDROP DISKS句を使用します。ディスクの削除操作がすでに完了している場合は、この文を使用して削除を取り消すことはできません。DROP DISKGROUP文の結果として、またはFORCE句を使用して削除したディスクは、この文を使用してもリストアできません。
次の例では、ディスク・グループdgroup1からディスクを削除する操作を取り消します。
ALTER DISKGROUP dgroup1 UNDROP DISKS;
ディスク・グループ内のファイルは、ALTER DISKGROUP文のREBALANCE句を使用して手動で再バランスできます。ディスク・グループの構成が変更されると、ASMによって、ディスク・グループが自動的に再バランスされるため、通常、この操作は必要ありません。自動再バランス操作の処理速度を制御する必要がある場合は、再バランス操作を手動で実行できます。
ALTER DISKGROUP...REBALANCE文のPOWER句によってパラレル化の程度が指定されるため、再バランス操作の処理速度が決定します。パラレル化の程度には0〜11を設定できます。値0を指定すると、再バランス操作は、この文が暗黙的または明示的に再実行されるまで停止します。デフォルトの再バランスの指数は、ASM_POWER_LIMIT初期化パラメータで設定されます。 詳細は、「再バランス操作のチューニング」を参照してください。
進行中の再バランス操作の指数レベルは、REBALANCE文に新しいレベルを入力すると変更できます。
ALTER DISKGROUP...REBALANCEコマンドはデフォルトですぐに戻されるため、再バランス操作が非同期にバックグラウンドで実行されている間、別のコマンドを発行できます。再バランス操作のステータスを確認するには、V$ASM_OPERATIONビューを問い合せます。
再バランス操作が完了するまで待機してからALTER DISKGROUP...REBALANCEコマンドを戻す場合は、WAITキーワードをREBALANCE句に追加できます。これは特にスクリプトで役立ちます。このコマンドはNOWAITキーワードも受け入れます。このキーワードを使用すると、再バランス操作のデフォルト動作が非同期で起動します。ほとんどのプラットフォームでは、[CTRL]+[C]を押すと、待機モードで実行中の再バランスを中断できます。これによってコマンドはすぐに戻されてメッセージ「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」が表示され、再バランス操作が非同期で続行されます。
再バランス操作の追加ルールは次のとおりです。
ALTER DISKGROUP...REBALANCE文は、この文が開始された単一ノードのリソースを使用します。
REBALANCE句(関連付けられたPOWERおよびWAIT/NOWAITキーワードを指定)は、ディスクの追加、削除またはサイズ変更を行うALTER DISKGROUPコマンドでも使用できます。
次の例では、ディスク・グループdgroup2を手動で再バランスします。このコマンドは、再バランス操作が完了するまで戻されません。
ALTER DISKGROUP dgroup2 REBALANCE POWER 5 WAIT;
ASM_DISKGROUPS初期化パラメータで指定したディスク・グループは、ASMインスタンスの起動時に自動的にマウントされます。これによって、そのディスク・グループは、ASMと同じノード上で実行されているすべてのデータベース・インスタンスで使用可能になります。ディスク・グループは、ASMインスタンスが停止するとディスマウントされます。また、ASMは、ユーザーが最初にディスク・グループを作成したときにそれを自動的にマウントし、削除したときにディスマウントします。
ディスク・グループの手動によるマウントまたはディスマウントが必要な場合があります。その場合は、ALTER DISKGROUP...MOUNT文またはALTER DISKGROUP...DISMOUNT文を使用します。ディスク・グループは、名前別に、またはALLを指定してマウントまたはディスマウントできます。
オープン・ファイルが含まれているディスク・グループをディスマウントしようとすると、FORCE句を指定していないかぎり、文は失敗します。
次の文は、現在ASMインスタンスにマウントされているすべてのディスク・グループをディスマウントします。
ALTER DISKGROUP ALL DISMOUNT;
次の文は、ディスク・グループdgroup1をマウントします。
ALTER DISKGROUP dgroup1 MOUNT;
ディスク・グループ・メタデータの内部一貫性をチェックするには、ALTER DISKGROUP...CHECK文を使用します。チェックは、ディスク・グループ内の特定ファイル、ディスク・グループ内の特定ディスクまたは全ディスク、あるいはディスク・グループ内の特定障害グループに対して指定できます。チェックを実行するためには、ディスク・グループがマウントされている必要があります。
エラーが検出された場合は、エラー・メッセージが表示され、エラーの詳細がアラート・ログに書き込まれます。ALTER DISKGROUP...CHECK文でNOREPAIR句を指定しないかぎり、自動ストレージ管理はエラーを解決しようとします。
次の文は、dgroup1ディスク・グループ内の全ディスクのメタデータについて一貫性をチェックします。
ALTER DISKGROUP dgroup1 CHECK ALL;
CHECK句の構文の詳細は、『Oracle Database SQLリファレンス』を参照してください。
ASMディスク・グループ、およびグループ内のすべてのファイルを必要に応じて削除するには、DROP DISKGROUP文を使用します。ディスク・グループに含まれるファイルも削除する場合は、INCLUDING CONTENTS句を指定します。デフォルトはEXCLUDING CONTENTSです。これにより、構文の一貫性が確保され、コンテンツを含むディスク・グループの削除を防止できます。
DROP DISKGROUP文を正常に実行するためには、ASMインスタンスが起動し、ディスク・グループ内のファイルがオープンしていない状態でディスク・グループがマウントされている必要があります。この文は、ディスク・グループが削除されるまで戻りません。
ディスク・グループを削除すると、ASMは、そのディスク・グループをディスマウントし、サーバー・パラメータ・ファイルが使用されている場合は、ASM_DISKGROUPS初期化パラメータからそのディスク・グループの名前を削除します。テキスト形式の初期化パラメータ・ファイルを使用し、ASM_DISKGROUPS初期化パラメータにディスク・グループを指定している場合は、次回ASMインスタンスを停止して再起動する前に、そのディスク・グループの名前をASM_DISKGROUPS初期化パラメータから削除する必要があります。
次の文は、dgroup1を削除します。
DROP DISKGROUP dgroup1;
ASMは、dgroup1内のすべてのファイルがオープンしていないことを確認した後、ディスク・グループ内の各ディスクのヘッダーをリライトしてASMの書式情報を削除します。この文はINCLUDING CONTENTSを指定しません。そのため、ディスク・グループにファイルが含まれている場合、削除操作は失敗します。
ASMディスク・グループには、ASMファイルを格納するためのシステム生成の階層ディレクトリ構造が含まれています。ASMが各ファイルに割り当てるシステム生成のファイル名は、このディレクトリ階層のパスを表します。次に、システム生成のファイル名の例を示します。
+dgroup2/sample/controlfile/Current.256.541956473
プラス記号は、ASMファイル・システムのルートを表します。dgroup2ディレクトリは、dgroup2ディスク・グループ内のすべてのファイルの親ディレクトリです。sampleディレクトリはsampleデータベース内のすべてのファイルの親ディレクトリで、controlfileディレクトリにはsampleデータベースのすべての制御ファイルが格納されます。
この階層内に独自のディレクトリを作成して、作成した別名を格納できます。したがって、ASMファイル用のわかりやすい別名を作成できるほか、別名へのわかりやすいパスも作成できます。
ここでは、ALTER DISKGROUP文を使用して、別名に対するディレクトリ構造を作成する方法について説明します。ディレクトリの名前変更や削除の方法も説明します。
|
関連項目
|
ASMファイルの別名の階層ディレクトリ構造を作成するには、ALTER DISKGROUP文のADD DIRECTORY句を使用します。ディレクトリ・パスの構成要素は、スラッシュ記号(/)を使用して区切ります。ディレクトリ・パスは、先頭にプラス記号(+)を付けたディスク・グループ名で始まり、選択したサブディレクトリ名が後に続きます。
ディレクトリ内にサブディレクトリまたは別名を作成するときは、親ディレクトリがすでに存在している必要があります。
次の文は、ディスク・グループdgroup1の階層ディレクトリを作成します。このディレクトリには、別名+dgroup1/mydir/control_file1などを含めることができます。
ALTER DISKGROUP dgroup1 ADD DIRECTORY '+dgroup1/mydir';
ディレクトリ+dgoup1/mydirの下にサブディレクトリがない場合、次の文は失敗します。
ALTER DISKGROUP dgroup1 ADD DIRECTORY '+dgroup1/mydir/first_dir/second_dir';
ディレクトリの名前を変更するには、ALTER DISKGROUP文のRENAME DIRECTORYを使用します。システム生成のディレクトリ(システム生成名を含むディレクトリ)の名前は変更できません。
次の文は、ディレクトリの名前を変更します。
ALTER DISKGROUP dgroup1 RENAME DIRECTORY '+dgroup1/mydir' TO '+dgroup1/yourdir';
ディレクトリを削除するには、ALTER DISKGROUP文のDROP DIRECTORY句を使用します。システム生成のディレクトリは削除できません。別名を含むディレクトリは、FORCE句も指定しないかぎり削除できません。
この文は、ディレクトリとその内容を削除します。
ALTER DISKGROUP dgroup1 DROP DIRECTORY '+dgroup1/yourdir' FORCE;
別名を作成すると、システム生成のファイル名よりも、わかりやすい名前でASMファイルを参照できます。
ファイルの別名は、データベースにファイルを作成するときに作成できます。または、ALTER DISKGROUP文のADD ALIAS句を使用して既存のファイルに別名を追加することもできます。別名は、システム生成またはユーザー作成のASMディレクトリに作成できます。ただし、別名はルート・レベル(+)では作成できません。
V$ASM_ALIASビューには、ASMインスタンスが認識している別名ごとに行があります。このビューにはASMディレクトリも含まれます。
ASMファイル名の別名を作成するには、ALTER DISKGROUP文のADD ALIAS句を使用します。この別名は、完全ディレクトリ・パスと別名自体で構成する必要があります。
次の文は、システム生成のファイル名の新しい別名を追加します。
ALTER DISKGROUP dgroup1 ADD ALIAS '+dgroup1/mydir/second.dbf' FOR '+dgroup1/sample/datafile/mytable.342.3';
この文では、別名を作成するASMファイル名を別の方法で指定します。ASMファイル名は、システム生成のファイル名を簡略にして導出した数値形式で指定されます。
ALTER DISKGROUP dgroup1 ADD ALIAS '+dgroup1/mydir/second.dbf' FOR '+dgroup1.342.3';
ASMファイル名の別名の名前を変更するには、ALTER DISKGROUP文のRENAME ALIAS句を使用します。変更前の別名と変更後の別名は、両方とも完全ディレクトリ・パスと別名で構成する必要があります。
次の文は、別名の名前を変更します。
ALTER DISKGROUP dgroup1 RENAME ALIAS '+dgroup1/mydir/datafile.dbf' TO '+dgroup1/payroll/compensation.dbf';
ASMファイル名の別名を削除するには、ALTER DISKGROUP文のDROP ALIAS句を使用します。この別名は、完全ディレクトリ・パスと別名自体で構成する必要があります。別名によって参照される基礎となるファイルは変更されません。
次の文は、別名を削除します。
ALTER DISKGROUP dgroup1 DROP ALIAS '+dgroup1/payroll/compensation.dbf';
次の文は、システム生成のファイル名を削除するように指定しているため失敗します。システム別名は削除できません。
ALTER DISKGROUP dgroup1 DROP ALIAS '+dgroup1/sample/datafile/mytable.342.3';
ASMファイルと関連する別名をディスク・グループから削除するには、ALTER DISKGROUP文のDROP FILE句を使用します。削除するファイルは、完全修飾されたファイル名、数値ファイル名または別名を使用して指定する必要があります。
次の場合は、ファイルの削除が必要になります。
別名を削除しても、ファイル・システム上の基礎となるファイルは削除されません。
次の文は、ファイルの別名を使用して、ファイルと別名の両方を削除します。
ALTER DISKGROUP dgroup1 DROP FILE '+dgroup1/payroll/compensation.dbf';
この例では、システム生成のファイル名を使用して、ファイルと関連する別名を削除します。
ALTER DISKGROUP dgroup1 DROP FILE '+dgroup1/sample/datafile/mytable.342.372642';
テンプレートを使用して、ASMディスク・グループに作成したファイルの冗長性(ミラー化)属性とストライプ化属性を設定します。ファイルを作成するとき、明示的に指定されたテンプレート、またはそのファイル・タイプのデフォルトのテンプレートであるシステム・テンプレートに基づいて、そのファイルの冗長性属性とストライプ化属性が設定されます。
ディスク・グループを作成するとき、ASMはそのディスク・グループに対してデフォルトのテンプレート・セットを作成します。このセットには、ASMによってサポートされるファイル・タイプ(データ・ファイル、制御ファイル、REDOログ・ファイルなど)ごとに1つのテンプレートが含まれます。たとえば、ONLINELOGという名前のテンプレートによって、ASMディスクに書き込まれるすべてのREDOログ・ファイルに対するデフォルトのファイルの冗長性属性とストライプ化属性を指定します。デフォルトのテンプレート設定は、ディスク・グループ・タイプに基づきます。たとえば、通常の冗長性のディスク・グループの場合、データ・ファイルに対するデフォルトのテンプレートは2方向ミラー化を設定します。高い冗長性のディスク・グループの場合、同様のデフォルトのテンプレートは3方向ミラー化を設定します。これらのデフォルトのテンプレートは変更できます。表12-5に、デフォルトのテンプレート、および一致するファイルに適用される属性のリストを示します。この表に示すように、デフォルトの各テンプレートの冗長性の初期値は、テンプレートが属するディスク・グループのタイプに基づきます。
ALTER DISKGROUP文の句を使用して、ディスク・グループへの新規テンプレートの追加、既存のテンプレートの変更、またはテンプレートの削除を実行できます。テンプレートを追加する理由は、固有の要件を満たすために属性の正しい組合せを作成するためです。ファイルの作成時にテンプレート名を参照して、ファイル・タイプごとではなく個々のファイルごとに適切な属性を割り当てることができます。V$ASM_TEMPLATEビューには、ASMインスタンスが認識しているすべてのテンプレートのリストが表示されます。
表12-3にはASMテンプレートのストライプ化属性で許可されている値、表12-4には冗長性属性で許可されている値を示します。これらの値は、V$ASM_TEMPLATEのSTRIPE列とREDUND列に対応します。
| ストライプ化属性の値 | 説明 |
|---|---|
|
|
128KBのチャンクにストライプ化 |
|
|
1MBのチャンクにストライプ化 |
| 冗長性属性の値 |
通常の冗長性の ディスク・グループでのミラー化 |
高い冗長性の ディスク・グループでのミラー化 |
外部の冗長性の ディスク・グループでのミラー化 |
|---|---|---|---|
|
|
2方向ミラー化 |
3方向ミラー化 |
(使用不可) |
|
|
3方向ミラー化 |
3方向ミラー化 |
(使用不可) |
|
|
ミラー化なし |
(使用不可) |
ミラー化なし |
ディスク・グループの新しいテンプレートを追加するには、ALTER DISKGROUP文のADD TEMPLATE句を使用します。テンプレートの名前、冗長性属性、およびストライプ化属性は、この句で指定します。
|
注意
新しいテンプレートの名前が表12-5にリストされている名前と一致しない場合、そのテンプレートはデータベース・ファイル・タイプのデフォルトのテンプレートとして使用されません。新しいテンプレートを使用するには、ファイルの作成時にテンプレート名を参照する必要があります。 詳細は、「ASMファイル名の概要」を参照してください。 |
テンプレートの追加で使用するALTER DISKGROUPコマンドの構文は次のとおりです。
ALTER DISKGROUP disk_group_name ADD TEMPLATE template_name ATTRIBUTES ([{MIRROR|HIGH|UNPROTECTED}] [{FINE|COARSE}]);
両方の属性ともオプションです。冗長性属性を指定しないと、通常の冗長性のディスク・グループの場合はMIRROR、高い冗長性のディスク・グループの場合はHIGH、外部の冗長性のディスク・グループの場合はUNPROTECTEDにそれぞれデフォルト設定されます。ストライプ属性を指定しないと、COARSEにデフォルト設定されます。
次の文は、通常の冗長性のディスク・グループdgroup2に対してreliableという名前の新しいテンプレートを作成します。
ALTER DISKGROUP dgroup2 ADD TEMPLATE reliable ATTRIBUTES (HIGH FINE);
この文は、非保護の(ミラー化なし)ファイルを指定する、unreliableという名前の新しいテンプレートを作成します。(ただし、ハードウェアのミラー化が適切に実行されないかぎり、非保護のファイルの使用はお薦めできません。この例は、テンプレートの属性の設定方法を説明する目的で示しています。)
ALTER DISKGROUP dgroup2 ADD TEMPLATE unreliable ATTRIBUTES (UNPROTECTED);
既存のシステム・デフォルトまたはユーザー定義のディスク・グループ・テンプレートの属性指定は、ALTER DISKGROUPのALTER TEMPLATE句で変更できます。変更されるのは、指定したテンプレート・プロパティのみです。指定していないプロパティは、現在値のままです。
既存のテンプレートを変更すると、そのテンプレートで新規に作成されたファイルにのみ属性の変更が反映されます。既存のファイルの属性は変更されません。
次の例では、ディスク・グループdgroup2のreliableテンプレートのストライプ化属性指定を変更します。
ALTER DISKGROUP dgroup2 ALTER TEMPLATE reliable ATTRIBUTES (COARSE);
ディスク・グループから1つ以上のテンプレートを削除するには、ALTER DISKGROUPのDROP TEMPLATE句を使用します。削除できるのは、ユーザー定義のテンプレートのみです。システム・デフォルトのテンプレートは削除できません。
この例では、前述の例で作成したテンプレートunreliableをdgroup2から削除します。
ALTER DISKGROUP dgroup2 DROP TEMPLATE unreliable;
ここでは、自動ストレージ管理(ASM)を使用してデータベース・ファイルを管理する方法について説明します。
ASMを使用するとき、Oracleデータベース・ファイルはASMディスク・グループに格納されています。ASMを使用することによって、Oracle Databaseはパフォーマンスおよびリソース使用率が改善され、可用性が向上します。ほとんどのASMファイルはOracle Managed Filesです。詳細は、表12-7および第11章「Oracle Managed Filesの使用」を参照してください。
ディスク・グループに格納されているOracleデータベース・ファイルは、オペレーティング・システムやそのユーティリティでは参照できませんが、Recovery Manager、ASMCMDおよびXML DBリポジトリでは参照できます。
この項の内容は、次のとおりです。
ASMは、データベースに必要なほとんどのファイル・タイプをサポートします。ただし、管理ファイルのほとんどはASMディスク・グループに格納できません。管理ファイルには、トレース・ファイル、監査ファイル、アラート・ログ、バックアップ・ファイル、エクスポート・ファイル、tarファイルおよびコア・ファイルがあります。
表12-6に、ファイル・タイプ、サポートの有無、およびファイル作成用の属性を指定するシステム・デフォルトのテンプレートを示します。表内の一部のファイル・タイプは、特定の製品または機能に関連しているため、このマニュアルでは説明していません。
ASMで作成されたすべてのファイルにはシステム生成のファイル名が付けられ、これは完全修飾されたファイル名とも呼ばれます。完全修飾されたファイル名は、ASMファイル・システムの完全なパス名を表します。次に、完全修飾されたファイル名の例を示します。
+dgroup2/sample/controlfile/Current.256.541956473
完全修飾されたファイル名を使用して、ASMファイルを参照(読取りまたは取得)できます。また、簡略化したファイル名形式(この項で後述します)を使用して、ASMファイルを参照することもできます。
ASMは、ファイルの作成要求時に、完全修飾されたファイル名を生成します。ファイルの作成要求時には、完全修飾されたファイル名を指定しません(正確には、指定できません)。かわりに、別名やディスク・グループ名など単純な構文を使用してファイルを指定します。ASMは、ファイルを作成し、ファイル・タイプに従ってファイルを正しいASMのパスに配置して、適切な完全修飾されたファイル名を割り当てます。ファイルの作成要求時に別名を指定すると、ASMは別名も作成して、完全修飾されたファイル名を参照します。
ASMのファイルの作成要求は、単一ファイルの作成要求または複数ファイルの作成要求のいずれかになります。
これは、データ・ファイルや制御ファイルなど、単一ファイルを作成する要求です。このタイプの要求では、ASMファイル名の形式は別名(たとえば、+dgroup2/control/ctl.f)または先頭にプラス記号を付けたディスク・グループ名のいずれかになります。CREATE TABLESPACEやCREATE CONTROLFILEなどの文でファイル名が必要な箇所では、別名またはディスク・グループ名を使用します。
これは、ASMファイルの作成が複数回実行される要求です。たとえば、初期化パラメータDB_CREATE_FILE_DESTに値を割り当てた場合、CREATE TABLESPACE文を(ファイル名を指定せずに)複数回発行できます。この文が発行されるたびに、ASMは異なる一意のデータ・ファイル名を作成します。
このタイプの要求では、ASMファイル名の形式の1つとして不完全ファイル名が使用されます。このファイル名は、先頭にプラス記号を付けたディスク・グループ名です。この場合、DB_CREATE_FILE_DESTを不完全ファイル名(たとえば、+dgroup2)に設定すると、DB_CREATE_FILE_DESTでデータベース・ファイルを作成するコマンドが実行されるたびに、指定したディスク・グループにファイルが作成されて一意の完全修飾名が割り当てられます。不完全ファイル名は、他の*_DEST初期化パラメータでも使用できます。
この項では、ASMファイル名として可能な6つの形式について詳細に説明します。
次の表は、ファイル名の各形式に対するコンテキストの有効性、各形式がファイル作成に使用されるかどうか、および作成したファイルがOracle Managed Files(OMF)かどうかを示します。
この形式のASMファイル名は、既存のASMファイルを参照するために使用できます。このファイル名は、ASMファイルの作成時にASMが常に自動的に生成します。
完全修飾されたファイル名の形式は次のとおりです。
+group/dbname/file_type/file_type_tag.file.incarnation
各項目の意味は次のとおりです。
+groupは、先頭にプラス記号を付けたディスク・グループ名です。このプラス記号(+)は、UNIXオペレーティング・システムのスラッシュ(/)と同様に、ASMファイル・システムのルート・ディレクトリとみなすことができます。
dbnameは、ファイルが属するデータベースのDB_UNIQUE_NAMEです。
file_typeはOracleのファイル・タイプで、表12-8に示すいずれかのファイル・タイプになります。
file_type_tagはファイルに関するタイプ固有の情報で、表12-8に示すいずれかのタグになります。
file.incarnationはファイルとインカネーションのペアで、一意性を確保するために使用します。
次に、完全修飾されたASMファイル名の例を示します。
+dgroup2/sample/controlfile/Current.256.541956473
この数値ASMファイル名は、既存のファイルを参照するために使用できます。このファイル名は完全修飾されたASMファイル名から導出され、形式は次のとおりです。
+group.file.incarnation
数値ASMファイル名は、既存のファイル名が必要なインタフェースで使用できます。
次に、数値ASMファイル名の例を示します。
+dgroup2.257.541956473
別名ASMファイル名は別名とも呼ばれ、既存のASMファイルの参照および新しいASMファイルの作成に使用できます。別名は先頭にプラス記号を付けたディスク・グループ名で始まり、その後に任意の名前文字列を指定します。別名ファイル名は、階層ディレクトリ構造を使用して実装し、スラッシュ記号(/)または円記号(¥)を使用して名前の構成要素を区切ります。別名は、システム生成またはユーザー作成のASMディレクトリに作成できます。ただし、別名はルート・レベル(+)では作成できません。
別名ファイル名を使用してASMファイルを作成する場合、ファイルは完全修飾名を使用して作成されてから、別名ファイル名が作成されます。ファイルには、どちらの名前を使用してもアクセスできます。
別名ASMファイル名は、ピリオドで区切られた数値のペアで終わらないため、完全修飾されたファイル名や数値ファイル名とは区別されます。ピリオドで区切られた数値のペアで終わる別名を作成すると、エラーになります。次に、別名ASMファイル名の例を示します。
+dgroup1/myfiles/control_file1 +dgroup2/mydir/second.dbf
Oracle Databaseは、別名を使用してデータベース・ファイルを作成した場合のみ、別名ファイル名を使用してデータベース・ファイルを参照します。別名を使用せずにデータベース・ファイルを作成し、後で別名を追加した場合、データベースは完全修飾されたファイル名を使用してファイルを参照します。次に、データベースで別名ファイル名を使用する例を示します。
V$DATAFILEビューに別名ファイル名が表示されます。
CONTROL_FILES初期化パラメータでは、制御ファイルの別名ファイル名を使用できます。データベース・コンフィギュレーション・アシスタント(DBCA)は、別名ファイル名を使用して制御ファイルを作成します。
関連項目
テンプレート付き別名ASMファイル名は、ASMファイル作成操作でのみ使用します。書式は次のとおりです。
+dgroup(template_name)/alias
テンプレート付き別名ファイル名の動作は別名ファイル名と同様です。唯一の相違点は、テンプレート付き別名ファイル名を使用して作成したファイルは、指定のテンプレートで指定されたミラー化属性とストライプ化属性を受け入れることです。テンプレートは、ファイルを作成するディスク・グループに属する必要があります。
ASMテンプレートの作成とメンテナンスについては、「ディスク・グループのテンプレートの管理」を参照してください。
次に、テンプレート付き別名ASMファイル名の例を示します。
+dgroup1(my_template)/config1
この例のように、テンプレート名を明示的に指定すると、作成するファイルのタイプに対するシステム・デフォルトのテンプレートは上書きされます。
不完全ASMファイル名はファイル作成操作でのみ使用し、単一ファイルと複数ファイルの作成で使用します。不完全ASMファイル名はディスク・グループ名のみで構成されています。ASMはシステム・デフォルトのテンプレートを使用して、ASMファイルの冗長性属性とストライプ化属性を決定します。使用するシステム・テンプレートは、作成するファイル・タイプによって決まります。たとえば、表領域のデータ・ファイルを作成する場合は、datafileテンプレートが使用されます。
次に、DB_CREATE_FILE_DEST初期化パラメータに設定する不完全ASMファイル名の使用例を示します。
+dgroup1
このように設定すると、表領域を作成するたびにデータ・ファイルがディスク・グループdgroup1に作成され、各データ・ファイルには異なる完全修飾名が割り当てられます。 詳細は、「デフォルトのディスク・グループ指定を使用したASMファイルの作成」を参照してください。
テンプレート付き不完全ASMファイル名はファイル作成操作でのみ使用し、単一ファイルと複数ファイルの作成で使用します。このファイル名は、ディスク・グループ名の後にカッコで囲まれたテンプレート名が続きます。ファイル名にテンプレートを明示的に指定すると、ASMはそのファイル・タイプのデフォルトのテンプレートではなく、指定されたテンプレートを使用して、ファイルのミラー化属性とストライプ化属性を決定します。
次に、DB_CREATE_FILE_DEST初期化パラメータに設定するテンプレート付き不完全ASMファイル名の使用例を示します。
+dgroup1(my_template)
ASMインスタンスとデータベース・インスタンスは、次の順序で起動します。
データベース・インスタンスを起動する前に、データベースと同じノード上でASMインスタンスを起動します。 ASMインスタンスの起動については、「ASMインスタンスの起動」を参照してください。
データベース・インスタンスを起動する前に、次の点を考慮してください。
ORACLE_SIDをデータベースSIDに設定する必要があります。ASMとデータベースのOracleホームが異なる場合は、環境変数ORACLE_HOMEも設定する必要があります。プラットフォームによっては、他の環境変数の変更も必要になる場合があります。
INSTANCE_TYPE初期化パラメータを次のように設定する必要があります。INSTANCE_TYPE = RDBMS
これはデフォルトです。
これで、データベース・インスタンスでASMファイルを作成できるようになります。ディスク・グループを再構成する場合は、データベース・インスタンスをオープンして、実行中のままにできます。ディスク・グループとの間でディスクの追加や削除を行うと、データベースが実行中であっても、ASMは、バランスのとれたI/Oロードのために、再構成されたディスク・グループ内のファイル・データを自動的に再バランスします。
ASMファイルは、別名を使用してファイルを作成しないかぎり、Oracle Managed Filesとなります。Oracle Managed Filesはすべて、不要になると自動的に削除されます。ASMファイルは、作成に失敗すると削除されます。
オペレーティング・システム・ファイルにOracle Managed Files機能を使用すると、データ・ファイル、一時ファイル、REDOログ・ファイルおよび制御ファイルについて作成時のデフォルト位置としてディレクトリを指定できます。ASMにOracle Managed Files機能を使用すると、これらのファイル以外に、アーカイブ・ログ・ファイルなどのファイル・タイプについても作成時のデフォルト位置として、ディスク・グループを不完全ASMファイル名の形式で指定できます。オペレーティング・システム・ファイルと同様に、デフォルトのディスク・グループの名前は、初期化パラメータに格納され、ファイル作成時にファイル仕様(たとえば、DATAFILE句)が明示的に指定されていない場合に使用されます。
次の初期化パラメータには、宛先として、ASMファイル名の複数ファイル作成のコンテキスト形式を指定できます。
次の初期化パラメータには、宛先として、ASMファイル名の複数ファイル作成のコンテキスト形式およびASMディレクトリ名を指定できます。
次の例では、ASMファイル(この例ではデータ・ファイル)をデフォルトのディスク・グループ内に作成する方法を示します。
次のような初期化パラメータの設定を想定します。
DB_CREATE_FILE_DEST = '+dgroup1'
次の文は、表領域tspace1を作成します。
CREATE TABLESPACE tspace1;
ASMは、ディスク・グループdgroup1内のASMディスクに、tspace1のデータ・ファイルを自動的に作成して管理します。ファイルのエクステントは、データ・ファイルに対するデフォルトのテンプレートで定義した属性を使用して格納されます。
SQL文のファイル仕様句にはASMファイル名を指定できます。ファイルを最初に作成する場合は、ASMファイル名の作成形式を使用します。ASMファイルがすでに存在する場合は、ファイル名のファイル参照のコンテキスト形式を使用し、ファイルを再作成する場合はREUSEキーワードを追加する必要があります。これによって、領域が新しいファイルで再利用されます。 この操作は、制御ファイルの再作成(「ASMによる制御ファイルの作成」を参照)などで使用されます。
参照のコンテキスト形式がREUSEキーワードで使用され、ファイルが存在しない場合は、エラーが発生します。
システム・エラーが原因で完全に作成されなかったファイルは、自動的に削除されます。
次に、SQL文でASMファイル名を指定する例を示します。この例では、ファイル作成のコンテキストでファイル名が使用されています。
CREATE TABLESPACE tspace2 DATAFILE '+dgroup2' SIZE 200M AUTOEXTEND ON;
作成される表領域tspace2は、ディスク・グループdgroup2に格納されたサイズが200MBの1つのデータ・ファイルで構成されます。このデータ・ファイルは自動拡張可能に設定され、最大サイズに制限はありません。このデフォルトは、AUTOEXTEND句を使用して上書きできます。
データベースは、データベース・コンフィギュレーション・アシスタント(DBCA)を使用して作成することをお薦めします。ただし、CREATE DATABASE文を使用して手動でデータベースを作成する場合は、ASMを使用すると、最小限の入力でデータベースおよび基礎となるすべてのファイルを作成できます。
次に示すCREATE DATABASE文の使用例では、ASMによって自動的にデータベース・ファイルが作成および管理されます。
この例では、次のASMファイルを含むデータベースが作成されます。
dgroup1内にあるSYSTEM表領域のデータ・ファイル。
dgroup1内にあるSYSAUX表領域のデータ・ファイル。この表領域は、自動セグメント領域管理を使用してローカル管理されます。
dgroup1およびdgroup2(フラッシュ・リカバリ領域)にそれぞれ1メンバーが存在します。
dgroup1内のUNDO表領域のデータ・ファイル(自動UNDO管理モードが使用可能な場合)。
CONTROL_FILES初期化パラメータが指定されていない場合は、2つの制御ファイルがdrgoup1とdgroup2(フラッシュ・リカバリ領域)に1つずつ作成されます。dgroup1の制御ファイルが主制御ファイルになります。
初期化パラメータ・ファイルには、次の初期化パラメータの設定が含まれています。
DB_CREATE_FILE_DEST = '+dgroup1' DB_RECOVERY_FILE_DEST = '+dgroup2' DB_RECOVERY_FILE_DEST_SIZE = 10G
SQLプロンプトから次の文を発行します。
SQL> CREATE DATABASE sample;
ASMによって作成された永続表領域のデータ・ファイル(一時表領域の場合は一時ファイル)は、自動拡張可能に設定され最大サイズに制限はありません。デフォルトのサイズは100MBです。AUTOEXTEND句を使用してこのデフォルトの拡張性を変更し、SIZE句を使用してデフォルトのサイズを変更できます。
自動ストレージ管理は、「ディスク・グループのテンプレートの管理」の表に示すように、データ・ファイル用のシステム・デフォルトのテンプレートの指定に従って、属性をデータ・ファイルに適用します。独自のテンプレートを作成して指定することもできます。
表領域内のファイルは、その表領域の履歴に応じて、ASMファイルである場合とASMファイルでない場合があります。Recovery Managerのコマンドを使用すると、ASM以外のファイルをASMディスク・グループに再配置したり、ASMファイルをASM以外のファイルとして再配置できます。
次に、自動ストレージ管理を使用して表領域を作成する例を示します。次の例では、ディスク・グループはすでに構成されていると想定します。
この例では、自動ストレージ管理の開梱時の使用方法を示します。ほとんどの状況に対応できるOracle指定のデフォルト値を自動ストレージ管理で使用して、表領域のデータ・ファイルを作成および管理します。
次のような初期化パラメータの設定を想定します。
DB_CREATE_FILE_DEST = '+dgroup2'
次の文は、表領域とそのデータ・ファイルを作成します。
CREATE TABLESPACE tspace2;
次の文は表領域を作成します。この表領域では、ユーザー定義のテンプレート(すでに定義されていると想定します)を使用して、データ・ファイルの冗長性属性とストライプ化属性を指定します。
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+dgroup1(my_template)'; SQL> CREATE TABLESPACE tspace3;
次の文は、データ・ファイルを含むUNDO表領域を作成します。このデータ・ファイルには別名があり、その属性はユーザー定義のテンプレートmy_undo_templateによって設定されています。別名を格納するディレクトリはディスク・グループdgroup3内にすでに作成されており、ユーザー定義のテンプレートも存在していると想定します。データ・ファイルの作成には別名が使用されているため、ファイルはOracle Managed Filesではありません。したがって、表領域が削除されても自動的に削除されません。
CREATE UNDO TABLESPACE myundo DATAFILE '+dgroup3(my_undo_template)/myfiles/my_undo_ts' SIZE 200M;
次の文では、表領域の削除後にファイルを手動で削除します。
ALTER DISKGROUP dgroup3 DROP FILE '+dgroup3/myfiles/my_undo_ts';
オンラインREDOログは複数のディスク・グループに作成できます。その場合、初期化パラメータ・ファイルで暗黙的に作成するか、ALTER DATABASE...ADD LOGFILE文で明示的に作成します。複数のディスク・グループに作成される各オンライン・ログには、1つのログ・メンバーが必要です。ログ・ファイルのメンバー用のファイル名は、自動的に生成されます。
システム・エラーによって完全に作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。
次の例では、ディスク・グループdgroup1とdgroup2に、1つのメンバーを持つログ・ファイルを1つずつ作成します。
初期化パラメータ・ファイルで、次のパラメータを設定します。
DB_CREATE_ONLINE_LOG_DEST_1 = '+dgroup1' DB_CREATE_ONLINE_LOG_DEST_2 = '+dgroup2'
SQLプロンプトから次の文を発行します。
ALTER DATABASE ADD LOGFILE;
制御ファイルは、複数のディスク・グループ内に明示的に作成できます。制御ファイル用のファイル名は、自動的に生成されます。制御ファイルの作成に失敗した場合、完全に作成されなかった制御ファイルは自動的に削除されます。
制御ファイルを名前で指定することが必要な場合があります。管理者がASMファイルをわかりやすい名前で参照できるように、別名ファイル名が提供されています。制御ファイルの作成時に別名の使用を指定すると、DBAは制御ファイルをわかりやすい名前で参照できるようになります。さらに、CONTROL_FILES初期化パラメータで別名を制御ファイル名として指定することもできます。制御ファイルの作成時に別名を指定しなかった場合でも、後で別名を指定できます。この操作を行うには、ALTER DISKGROUP...CREATE ALIAS文を使用します。
制御ファイルを作成するときは、ASMファイル名のファイル参照のコンテキスト形式を使用して、ASMディスク・グループに格納されているデータ・ファイルとログ・ファイルをCREATE CONTROLFILEコマンドに指定する必要があります。ただし、RESETLOGSオプションを使用する場合は、ログ・ファイルの指定に、ファイル作成のコンテキスト形式を使用する必要があります。
次のCREATE CONTROLFILE文は、ディスク・グループdgroup1およびdgroup2に作成されたデータ・ファイルとログ・ファイルを持つデータベースに対するALTER DATABASE BACKUP CONTROLFILE TO TRACEコマンドによって生成されます。
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 ( '+DGROUP1/db/onlinelog/group_1.258.541956457', '+DGROUP2/db/onlinelog/group_1.256.541956473' ) SIZE 100M, GROUP 2 ( '+DGROUP1/db/onlinelog/group_2.257.541956477', '+DGROUP2/db/onlinelog/group_2.258.541956487' ) SIZE 100M DATAFILE '+DGROUP1/db/datafile/system.260.541956497', '+DGROUP1/db/datafile/sysaux.259.541956511' CHARACTER SET US7ASCII ;
次の例は、データ・ファイルを持つデータベースに対するCREATE CONTROLFILE文ですが、RESETLOGS句を使用しているため、ログ・ファイルには作成のコンテキスト形式を使用しています。
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 ( '+DGROUP1', '+DGROUP2' ) SIZE 100M, GROUP 2 ( '+DGROUP1', '+DGROUP2' ) SIZE 100M DATAFILE '+DGROUP1/db/datafile/system.260.541956497', '+DGROUP1/db/datafile/sysaux.259.541956511' CHARACTER SET US7ASCII ;
LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DEST_n 初期化パラメータで、ディスク・グループをアーカイブ・ログの保存先として指定できます。この方法で保存先を指定すると、アーカイブを2回行ってもアーカイブ・ログ・ファイル名は一意になります。システム・エラーによって完全に作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。
LOG_ARCHIVE_DESTをディスク・グループ名に設定した場合、LOG_ARCHIVE_FORMATは無視されます。アーカイブ・ログには、Oracle Databaseによって一意の名前が自動的に作成されます。LOG_ARCHIVE_DESTをディスク・グループ内のディレクトリに設定した場合、LOG_ARCHIVE_FORMATには通常のセマンティクスが設定されます。
次のサンプルのアーカイブ・ログ名は、DB_RECOVERY_FILE_DESTを+dgroup2に設定して生成されています。SAMPLEは、DB_UNIQUE_NAMEパラメータの値です。
+DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_1_seq_38.614.541956473 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_4_seq_35.609.541956477 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_2_seq_34.603.541956487 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_25/thread_3_seq_100.621.541956497 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_25/thread_1_seq_38.614.541956511
Recovery ManagerはASMには不可欠で、ASMファイル名を追跡し、不要なASMファイルを削除する役割があります。ASMファイルは、通常のオペレーティング・システムのインタフェースを介してコピーできないため(FTPまたはHTTP/WebDAVを介したXML DBリポジトリを除く)、ASMファイルのコピーにはRecovery Managerの使用をお薦めします。ASMファイルを含むデータベースのバックアップは、Recovery Managerを使用して実行する方法しかありません。
データベースやファイルをASM記憶域に移動する場合もRecovery Managerを使用できます。
Oracle Databaseと自動ストレージ管理(ASM)の新規インストールでは、最初にデータベースをASMで作成します。オペレーティング・システムのファイル・システムまたはRAWデバイスにデータベース・ファイルを格納している既存のOracleデータベースがある場合は、そのデータベース・ファイルの一部またはすべてをASMに移行できます。
データベース・ファイルをASMに移行する方法は、次の2通りあります。
Recovery Managerを使用してデータベースをASMに移行する方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』を参照してください。Recovery Managerは、単一の表領域やデータ・ファイルのASMへの移行にも使用できます。
このウィザードには、「データベースの変更」ヘッダーの下にある「管理」ページからアクセスします。このウィザードの使用方法は、Enterprise Managerのオンライン・ヘルプを参照してください。
自動ストレージ管理(ASM)のファイルとディレクトリには、XML DBリポジトリの仮想フォルダを使用してアクセスできます。この仮想フォルダへのリポジトリ・パスは/sys/asmです。このフォルダは、実際にはその内容がリポジトリ内に格納されていないため仮想です。フォルダの内容は、通常のASMのファイルとディレクトリとして存在します。/sys/asmには、DBMS_XDBパッケージなどのプログラムによるAPI、およびFTPやHTTP/WebDAVなどのXML DBプロトコルを使用してASMのファイルとディレクトリにアクセスして操作する方法が用意されています。
この機能は通常、/sys/asmをGUIでWebフォルダとして表示し(WebDAVプロトコルを使用)、ASMのディスク・グループからオペレーティング・システムのファイル・システムに、Data Pumpダンプセットをドラッグ・アンド・ドロップでコピーするために使用します。
SYS以外のユーザーでログインする必要があります。また、XML DBプロトコルを使用して/sys/asmにアクセスするには、DBAロールが付与されている必要があります。
ASM仮想フォルダは、XML DBのインストール時にデフォルトで作成されます。ASMを使用するようにデータベースが構成されていない場合、このフォルダは空で、関連する操作は実行できません。
ASM仮想フォルダには、複数のフォルダとサブフォルダが含まれており、これらのフォルダは、ASMの完全修飾ファイル名の構造によって定義された階層に従っています。このため、/sys/asmには、マウントされているディスク・グループごとにサブフォルダがあり、各ディスク・グループ・フォルダには、そのディスク・グループを使用するデータベースごとにサブフォルダがあります(さらに、ディスク・グループ・フォルダには、管理者が作成した別名に対応するファイルとフォルダが含まれる場合があります)。階層では、データベース・フォルダにファイル・タイプ・フォルダが含まれ、そのファイル・タイプ・フォルダにASMファイルが含まれます。次の図に示す階層では、わかりやすくするために、別名用に作成されたディレクトリは除外してあります。
/sys/asmに関する使用上の制限事項は、次のとおりです。
次のサンプルFTPセッションでは、ディスク・グループがDATAとRECOVERYで、データベース名がMFG、dbsが別名用に作成されたディレクトリです。/sys/asm内のファイルはすべてバイナリです。
ftp> open myhost 7777 ftp> user system ftp> passwd dba ftp> cd /sys/asm ftp> ls DATA RECOVERY ftp> cd DATA ftp> ls dbs MFG ftp> cd dbs ftp> ls t_dbl.f t_axl.f ftp> binary ftp> get t_dbl.f t_axl.f ftp> put t_db2.f
自動ストレージ管理に関する情報は、次のビューを使用して問い合せることができます。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|