ヘッダーをスキップ

Oracle Database 管理者ガイド
10gリリース2(10.2)

B19224-02
目次
目次
索引
索引

戻る 次へ

12 自動ストレージ管理の使用

この章では、自動ストレージ管理の概要とその使用方法について説明します。 この章の内容は、次のとおりです。

自動ストレージ管理の概要

自動ストレージ管理(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つのミラー化オプションを示します。

表 12-1    ASMのミラー化オプション 
ミラー化オプション  説明 

2方向ミラー化 

1つのエクステントに1つのミラー化コピーがあります。 

3方向ミラー化 

1つのエクステントに2つのミラー化コピーがあります。 

非保護 

ASMでミラー化を実行しません。ディスク・サブシステムでミラー化が実行される場合に、このオプションを使用します。 

動的な記憶域の構成

ASMを使用すると、データベースをオフライン化せずに記憶域の構成を変更できます。ディスク・グループに対してディスクを追加または削除すると、ASMは、再バランスを自動的に実行します。再バランスによって、ディスク・グループのすべてのディスク間にファイル・データが均等に再分散されます。

ディスク障害が発生すると、ASMは再バランスを自動的に実行し、障害が発生したディスクにエクステントがあるファイルの冗長性を完全にリストアします。障害が発生したディスクを新しいディスクに置換すると、ASMはディスク・グループを再バランスして、置換したディスクを含むすべてのディスク間にデータを均等に分散します。

既存のデータベースとの相互運用性

ASMを使用しても、既存のデータベース機能が不要になるわけではありません。ファイル・システムを使用した既存のデータベースやRAWデバイスに記憶域を持つ既存のデータベースは、従来どおり操作できます。既存のファイルはそれまでの方法で管理し、その一方で新しいファイルはASMファイルとして作成できます。したがって、データベースには、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つ以上の単一インスタンス・データベースの記憶域を同時に管理できます。

関連項目

自動ストレージ管理の概要については、『Oracle Database概要』を参照してください。 

自動ストレージ管理の構成要素の概要

自動ストレージ管理(ASM)の構成要素は、ディスク・グループ、ディスク、障害グループ、ファイルおよびテンプレートです。

ディスク・グループ

ASMの主要な構成要素はディスク・グループです。ディスク・グループはディスクの集まりで、1つの単位として管理されます。ASMは、データベース・ファイルを格納するディスク・グループを作成して構成します。Oracleには、ディスク・グループおよびその内容とメタデータを作成して管理するSQL文が用意されています。

ディスク・グループのタイプによって、ディスク・グループのファイルを作成する際のミラー化のレベルが決まります。ディスク・グループのタイプはディスク・グループの作成時に指定します。表12-2に、ASMディスク・グループのタイプ、サポートされているミラー化レベル、およびデフォルトのミラー化レベルを示します。デフォルトのミラー化レベルとは、別のミラー化レベルを指定しないかぎり、ファイルの作成時に使用されるミラー化レベルです(この項で後述する「テンプレート」を参照)。

表 12-2    ディスク・グループのタイプ別のミラー化オプション 
ディスク・グループのタイプ  サポートされているミラー化レベル  デフォルトのミラー化レベル 

通常の冗長性 

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を起動する前に、環境変数ORACLE_SIDをASM SIDに設定する必要があります。ASMとデータベースのOracleホームが異なる場合、環境変数ORACLE_HOMEは、ASMのOracleホームを指し示すように設定する必要があります。プラットフォームによっては、他の環境変数の変更も必要になる場合があります。 詳細は、「環境変数を使用したインスタンスの選択」を参照してください。

単一インスタンス・データベースのデフォルトASM SIDは+ASMで、Real Application Clustersノード上のASMのデフォルトSIDは+ASMnode#です。 


Oracle Enterprise Manager(EM)またはデータベース・コンフィギュレーション・アシスタント(DBCA)を使用して、ディスク・グループを構成および変更することもできます。DBCAを使用するとデータベースを容易に構成および作成できます。一方、EMを使用すると、統合されたグラフィカルな方法でASMインスタンスとデータベース・インスタンスの両方を管理できます。 EMを使用してASMインスタンスを管理する方法については、『Oracle Database 2日でデータベース管理者』の付録Aを参照してください。

この項の内容は、次のとおりです。

ASMのインストール

ASMはデータベース・サーバーに統合されているため、Oracle Universal Installer(OUI)およびデータベース・コンフィギュレーション・アシスタント(DBCA)を使用してASMをインストールし、初期の構成を行います。OUIには、ASMを使用して記憶域管理を行うようにデータベースをインストールして構成するか、またはデータベース・インスタンスを作成せずにASMインスタンスのみをインストールして構成するかを選択するオプションがあります。 ASMをインストールする手順の詳細は、使用しているオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。

ASMのインストールに関するヒント

ASMをインストールする際は、次の事項に注意してください。

ASMインスタンスへのアクセス認証

ASMのセキュリティは、特定のASMインスタンスが同じサーバー上で操作中の1つ以上のデータベース・インスタンスと緊密にバインドされているという事実に基づいて考慮されます。実質上、ASMインスタンスはデータベース・インスタンスの論理的な拡張です。ASMインスタンスとデータベース・インスタンスには、ディスク・グループのメンバー・ディスクに対する同等のオペレーティング・システム・アクセス権(読取り/書込み)が必要です。UNIXの場合、通常、このアクセス権は共有のUNIXグループ・メンバーシップを通じて提供されます。 ASMインスタンスとデータベース・インスタンスにメンバー・ディスクに対する適切なアクセス権があることを確認する方法は、使用しているオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。

ASMインスタンスにはデータ・ディクショナリがないため、データ・ディクショナリに接続するには管理者で接続する方法しかありません。つまり、オペレーティング・システム認証を使用してSYSDBAで接続するか、またはOracle Net Servicesを介してリモートで接続するときは、パスワード・ファイルを使用します。

ASMのオペレーティング・システム認証

オペレーティング・システム認証を使用する場合は、SYSDBA権限でローカルに接続する認可が、特別なオペレーティング・システム・ユーザー・グループを使用して付与されます。これらのグループは一般にOSDBAと呼ばれます(UNIXでは通常、OSDBAはdbaグループになります)。 OSDBAの詳細は、「オペレーティング・システム認証の使用」を参照してください。

デフォルトでは、OSDBAグループのメンバーは、ノード上のすべてのインスタンス(ASMインスタンスを含む)にSYSDBA権限で接続することが認可されています。SYSDBA権限でASMインスタンスに接続するユーザーには、そのASMインスタンスで管理されるすべてのディスク・グループに対する完全な管理アクセス権があります。


注意

データベースのOracleホームのソフトウェア所有者であるユーザー(通常はoracleという名前のユーザー)は、ASMのOracleホームに定義されたOSDBAグループのメンバーであることが必要です。ASMがOracle Databaseの単一インスタンスと同じOracleホームを共有する場合は、そのように自動的に設定されます。ASMとデータベース・インスタンスを別々のOracleホームにインストールする場合は、グループ・メンバーシップが適切に構成されていることを確認する必要があります。適切に構成されていないと、データベース・インスタンスはASMインスタンスに接続できません。 


ASMのパスワード・ファイル認証

Oracle Net Servicesを介してASMをリモート管理するには、ASMのパスワード・ファイルを作成する必要があります。パスワード・ファイルは、Enterprise Managerを使用してASMに接続する場合にも必要です。

データベース・コンフィギュレーション・アシスタント(DBCA)は、ASMディスク・グループを最初に構成するときに、ASMのパスワード・ファイルを作成します。データベース・パスワード・ファイルと同様に、作成時にパスワード・ファイルに追加されるユーザーはSYSのみです。他のユーザーをパスワード・ファイルに追加する場合は、パスワード・ファイルをデータベース・インスタンスと共有し、データベースを使用してユーザーを追加する必要があります。

DBCAを使用せずにASMインスタンスを構成する場合は、パスワード・ファイルを自分で作成する必要があります。 詳細は、「パスワード・ファイルの作成とメンテナンス」を参照してください。

ASMインスタンスの初期化パラメータの設定

ASMインスタンスには独自の初期化パラメータ・ファイルがあり、データベース・インスタンスの場合と同様に、サーバー・パラメータ・ファイル(SPFILE)またはテキスト・ファイルの場合があります。


注意

クラスタ化された環境にASMをインストールする場合、ASMの共有Oracleホームがないかぎり、サーバー・パラメータ・ファイル(SPFILE)は使用されません。ASMの共有Oracleホームがない場合、各ASMインスタンスは独自のテキスト形式の初期化パラメータ・ファイル(PFILE)を使用します。 


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_で始まるパラメータは、データベース・インスタンスでは設定できません。

パラメータ名  説明 

INSTANCE_TYPE  

必ずASMに設定します。

注意: このパラメータのみ必須です。他のすべてのパラメータは、ほとんどの環境に適したデフォルト値が設定されています。 

ASM_POWER_LIMIT  

ディスクの再バランスに対するデフォルト指数。

デフォルト: 1、範囲: 0〜11

関連項目: 「再バランス操作のチューニング」 

ASM_DISKSTRING  

ASMで検出するディスク・セットを制限する文字列のカンマ区切りリスト。ワイルドカード文字を使用できます。いずれかの文字列と一致するディスクのみが検出されます。文字列の形式は、使用しているASMライブラリおよびオペレーティング・システムによって異なります。ASMの標準的なシステム・ライブラリは、globパターン一致をサポートしています。

たとえば、ASMLibを使用しないSolarisサーバーで検出対象を/dev/rdsk/ディレクトリ内のディスクに制限するには、ASM_DISKSTRINGを次のように設定します。

/dev/rdsk/*

アスタリスクは省略できないことに注意してください。検出対象を、名前がs3またはs4で終わるディレクトリ内のディスクに制限するには、ASM_DISKSTRINGを次のように設定します。

/dev/rdsk/*s3,/dev/rdsk/*s4

これは、次のように簡素化できます。

/dev/rdsk/*s[34]

パスの最初の文字として?を使用すると、Oracleホーム・ディレクトリに拡張されます。オペレーティング・システムによっては、パス内の別の場所で?を使用すると、1文字のワイルドカードになります。

デフォルト: NULLNULL値を設定すると、ASMは読取り/書込みアクセス権があるシステム内の全ディスクのデフォルト・パスを検索します。デフォルト検索パスはプラットフォーム固有です。UNIXプラットフォームのデフォルト検索パスのリストは、OTN-Jの『Oracle Database管理者リファレンス』を参照してください。Windowsプラットフォームのデフォルト検索パスは¥¥.¥ORCLDISK*です。詳細は、『Oracle Databaseインストレーション・ガイド』または『Oracle Real Application Clusters クイック・インストレーション・ガイド for Oracle Database Standard Edition for Microsoft Windows』を参照してください。

関連項目: 「ディスク検出時間の改善」 

ASM_DISKGROUPS  

ASMインスタンスの起動時、またはALTER DISKGROUP ALL MOUNT文の使用時にマウントされるディスク・グループの名前のリスト。

デフォルト: NULL(このパラメータを指定していない場合、マウントされるディスク・グループはありません。)

このパラメータは動的であるため、サーバー・パラメータ・ファイル(SPFILE)を使用している場合、この値を手動で変更する必要はありません。ASMは、ディスク・グループが正常に作成またはマウントされるとディスク・グループをこのパラメータに自動的に追加し、削除またはディスマウントされるとディスク・グループをこのパラメータから自動的に削除します。ただし、テキスト形式の初期化パラメータ・ファイル(PFILE)を使用している場合は、その初期化パラメータ・ファイルを編集して、インスタンスの起動時に自動的にマウントするディスク・グループの名前を追加し、自動的にマウントしないディスク・グループの名前を削除する必要があります。

注意: ALTER DISKGROUP...ALL MOUNTまたはALTER DISKGROUP...ALL DISMOUNTコマンドを発行しても、このパラメータの値には影響を与えません。 

再バランス操作のチューニング

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初期化パラメータの動作

データベース・インスタンスのパラメータ・ファイルでASM固有のパラメータ(名前がASM_で始まる)を指定すると、ORA-15021エラーが発生します。

ASMインスタンスの起動

ASMインスタンスは、Oracleデータベース・インスタンスと同様に起動しますが、いくつかの相違点があります。

ASMでは、SQL*Plus STARTUPコマンドのパラメータが次のように解釈されます。

STARTUPのパラメータ  説明 

FORCE  

ASMインスタンスを再起動する前に、ASMインスタンスに対してSHUTDOWN ABORTを発行します。 

MOUNTOPEN 

ASM_DISKGROUPS初期化パラメータで指定したディスク・グループをマウントします。コマンド・パラメータが指定されていない場合は、これがデフォルトになります。 

NOMOUNT  

ディスク・グループをマウントせずにASMインスタンスを起動します。 

次に、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インスタンスは、データベース・インスタンスより小規模です。最大規模のASMインストール以外は、64MB SGAで十分です。標準的なASMインスタンスのメモリー合計は約100MBです。

CSSの要件

ASMとそのクライアント・データベース・インスタンスの間で同期化を有効にするには、クラスタ同期化サービス(CSS)デーモンが必要です。CSSデーモンは、通常、データベース・コンフィギュレーション・アシスタント(DBCA)を使用してデータベースを作成するときに起動し、再起動時に起動するように構成されています。DBCAを使用せずにデータベースを作成する場合は、ASMインスタンスを起動する前に、CSSデーモンが実行中であることを確認する必要があります。

LinuxおよびUNIXプラットフォーム上のCSSデーモン

CSSデーモンが実行中かどうかを判別するには、コマンドcrsctl check cssdを発行します。CSS appears healthyというメッセージが表示された場合、CSSデーモンは実行中です。

CSSデーモンを起動し、再起動時に常にデーモンを起動するようにホストを構成する手順は、次のとおりです。

  1. ホストにルートとしてログインします。

  2. $ORACLE_HOME/binが環境変数PATHにあることを確認します。

  3. 次のコマンドを入力します。

    localconfig add
    
Windowsプラットフォーム上のCSSデーモン

Windowsプラットフォームでcrsctlおよびlocalconfigコマンドを使用すると、CSSデーモンのステータスをチェックしたり、CSSデーモンを起動することもできます。WindowsのGUIツールを使用する場合は、次の操作を実行できます。

CSSデーモンが適切に構成されて実行されているかどうかを判別するには、Windowsの「コントロール パネル」で「サービス」アイコンをダブルクリックし、OracleCSServiceサービスを検索します。ステータスは「起動済」で、起動タイプは「自動」であることが必要です。

Windowsサービスの起動方法、および自動的に起動するように構成する方法については、Windowsのドキュメントを参照してください。

ディスク検出

ASMインスタンスを初期化すると、ASMでは、ASM_DISKSTRING初期化パラメータで指定されたパス内の全ディスクを検出してその内容を調べます。 ここでの説明では、「ディスク」は「自動ストレージ管理の構成要素の概要」で定義したとおり、ASMディスクを指します。ディスク検出は、次の場合にも実行されます。

ディスクは、正常に検出されるとV$ASM_DISKビューに表示されます。ディスク・グループに属するディスク(つまり、ディスク・ヘッダーにディスク・グループ名が含まれるディスク)のヘッダー・ステータスはMEMBERです。検出されたディスクがまだディスク・グループに割り当てられていない場合、ヘッダー・ステータスはCANDIDATEまたはPROVISIONEDのいずれかになります。


注意

PROVISIONEDヘッダー・ステータスは、ASMでディスクを使用できるように管理者がプラットフォーム固有の追加操作を実行したことを示します。たとえば、Windowsで管理者がasmtoolまたはasmtoolgを使用してヘッダーを持つディスクをマークしたり、Linuxで管理者がASMLibを使用してディスクをASMで使用可能にした場合などです。 


次の問合せは、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は、検出時に次の構成エラーを識別します。

ディスク・グループのリカバリ

他のファイル・システムやボリューム・マネージャと同様に、ASMインスタンスで障害が発生すると、そのASMインスタンスと同じノード上のすべてのOracleデータベース・インスタンスおよびそのASMインスタンスによって管理されているディスク・グループを使用するすべてのOracleデータベース・インスタンスでも障害が発生します。単一のASMインスタンス構成では、ASMメタデータを更新するためにオープンしているときにASMインスタンスで障害が発生した場合、そのASMインスタンスは、再初期化の後、ディスク・グループのログを読み込んで未完了のすべての変更をリカバリします。

ディスク・グループを複数のASMインスタンスが共有している場合は、1つのASMインスタンスで障害が発生すると、そのために発生したASMメタデータの未完了の変更は、別のASMインスタンスによって自動的にリカバリされます。ASMメタデータを更新するのはASMインスタンスのみであるため、Oracleデータベース・インスタンスの障害は重大な問題となりません。

ASMインスタンスの停止

自動ストレージ管理の停止は、SQL*PlusのSHUTDOWNコマンドを発行して実行します。

最初に、環境変数ORACLE_SIDがASM SIDに設定されてASMインスタンスに接続していることを確認する必要があります。使用しているオペレーティング・システム、およびASMを独自のOracleホームにインストールしているかどうかによって、SQL*Plusを起動する前に他の環境変数の変更が必要になる場合があります。 詳細は、「環境変数を使用したインスタンスの選択」を参照してください。

% sqlplus /nolog
SQL> CONNECT / AS sysdba
Connected.
SQL> SHUTDOWN NORMAL

次の表にSHUTDOWNモードを一覧表示し、各モードでのASMインスタンスの動作を説明します。

停止モード  自動ストレージ管理での処理 

NORMALIMMEDIATE
またはTRANSACTIONAL 

ASMは処理中のSQLの完了を待機し、その後、全ディスク・グループの所定のディスマウントを実行してASMインスタンスを停止します。データベース・インスタンスがASMインスタンスに接続している場合は、SHUTDOWNコマンドでエラーが返され、ASMインスタンスは実行中のままになります。 

ABORT  

ASMインスタンスは、ディスク・グループの所定のディスマウントを実行せずに即時に停止します。これによって、次にASMを起動するときにリカバリが実行されます。データベース・インスタンスがASMインスタンスに接続されている場合、データベース・インスタンスは異常終了します。 

ASMインスタンスを停止する前に、ASMインスタンスを使用する全データベース・インスタンスを停止することをお薦めします。

自動ストレージ管理のディスク・グループの管理

この項では、自動ストレージ管理(ASM)ディスク・グループの作成および管理の方法について説明します。ASMを使用する1つ以上のデータベース・インスタンスがある場合、ディスク・グループを管理する間、データベース・インスタンスをオープンして実行中のままにできます。

ASMディスク・グループは、データベース・コンフィギュレーション・アシスタント(DBCA)、Enterprise Manager(EM)またはSQL*Plusを使用して管理できます。さらに、ASMコマンドライン・ユーティリティであるASMCMDを使用すると、ディスク・グループ内のファイルやディレクトリを簡単に表示および操作できます。

この項では、SQL*Plusを使用した管理の詳細を説明し、すべての管理方法に適用されるバックグラウンド情報についても説明します。

この項で説明するSQL文は、ASMインスタンスでのみ使用できます。


注意

この項で示すSQL*Plusセッションの全サンプルは、SQL*Plusを起動する前に環境変数ORACLE_SIDがASM SIDに変更されていることを想定しています。使用しているオペレーティング・システム、およびASMを独自のOracleホームにインストールしているかどうかによって、他の環境変数の変更も必要になる場合があります。 詳細は、「環境変数を使用したインスタンスの選択」を参照してください。 


この項の内容は、次のとおりです。

ディスク・グループ構成時の考慮点とガイドライン

ここでは、ディスク・グループを構成する際の考慮点とガイドラインについて説明します。

ディスク・グループの数の判断

作成するディスク・グループの数の判断には、次の基準が役立ちます。

ディスクをグループ化する際のパフォーマンス特性

ASMでは、手動によるI/Oチューニングは不要です。ただし、一貫性のあるパフォーマンスを確保するには、同一ディスク・グループ内に異なるタイプのディスクを配置しないようにする必要があります。たとえば、最新の高速ディスクをデータベースの作業領域用に予約したディスク・グループに配置し、低速ドライブをフラッシュ・リカバリ領域用に予約したディスク・グループに配置できます。

ASMでは、ファイルのエクステントを1つのディスク・グループ内のすべてのディスク間で均等に分散することで、ファイル・アクティビティのロード・バランスを実行します。この方法の効果を上げるには、ディスク・グループ内のディスクが同様のパフォーマンス特性を持っていることが重要です。

同じディスク・グループ内にサイズやパフォーマンス特性が異なるディスクが一時的に存在できる場合があります。それは、古いディスク・セットから新しいディスク・セットに移行する場合です。新しいディスクが追加され、古いディスクは削除されます。古いディスクが削除されると、その記憶域は、ディスク・グループがオンラインのときに新しいディスクに移行します。

ディスク・グループにディスクを追加および削除した際の影響

ASMは、ディスクが追加または削除されるたびに、再バランスを自動的に実行します。通常の削除操作(FORCEオプションの指定なし)では、ディスクは、再バランスによってディスクのデータが削除されるまで解放されません。同様に、新しく追加されたディスクは、再バランスが完了するまでI/Oワークロードの共有をサポートできません。したがって、複数のディスクを同時に追加または削除すると、1回の操作で再バランスを実行できるため効率的です。これによって、不要なデータの移動を回避できます。

削除操作の場合、再バランスが完了すると、ASMはディスクをすぐにオフラインにしてディスクを削除し、ディスク・ヘッダー・ステータスをFORMERに設定します。

ディスクの追加または削除は、データベースを停止せずに実行できます。ただし、I/Oアクティビティのパフォーマンスに影響を与える場合があります。

ASMのディスク障害の処理方法

ディスク・グループの冗長性レベル、および障害グループの定義方法に応じて、1つ以上のディスクに障害が発生すると、次のいずれかの結果になります。

この場合のディスク障害とは、個別のスピンドル障害、または電源、コントローラ、ホスト・バス・アダプタなど別のディスク・サブシステム構成要素の障害を意味します。ここでは、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_FILEREDUNDANCY_LOWERED列は、冗長性が低下したファイルを示します。

次のガイドラインを参考にして、1つ以上のディスクに障害が発生した後、すべてのディスク・グループ内のデータの冗長性を完全にリストアするために必要な領域があることを確認してください。

V$ASM_DISKGROUPビューには、容量の管理をしやすくするための列があります。

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
USABLE_FILE_MBの負の値

FREE_MBREQUIRED_MIRROR_FREE_MBおよびUSABLE_FILE_MBの関連から、USABLE_FILE_MBが負の値になる場合があります。これは必ずしも重大な状態ではありませんが、次のことを意味します。

USABLE_FILE_MBが負の値になった場合は、すぐにディスク・グループに領域を追加することをお薦めします。

拡張性

ASMには、次の制限があります。

ディスク・グループの作成

ディスク・グループを作成するには、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/*'に設定されているとします。次のように想定します。

次に、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_0001dgroup1_0002、... dgroup1_0008という名前が割り当てられます。


注意

NAME句を指定せずに、ASMLibを使用してラベルをディスクに割り当てた場合は、そのラベルがディスク名として使用されます。 


ディスク・グループのディスク・メンバーシップの変更

ディスク・グループは、作成後に、ディスクを追加、サイズ変更または削除して構成を変更できます。これらの処理を実行するには、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の動作について説明します。

ディスク・グループへのディスクの追加: 例1

次の文は、ディスクをdgroup1に追加します。

ALTER DISKGROUP dgroup1 ADD DISK
     '/devices/diska5' NAME diska5,
     '/devices/diska6' NAME diska6;

ALTER DISKGROUP文にはFAILGROUP句が指定されていないため、各ディスクには独自の障害グループが割り当てられます。ディスクに名前を割り当てるにはNAME句を使用します。この句を使用しない場合は、システム生成の名前が割り当てられます。

注意

NAME句を指定せずに、ASMLibを使用してラベルをディスクに割り当てた場合は、そのラベルがディスク名として使用されます。 

ディスク・グループへのディスクの追加: 例2

この例で示す文は、ディスク検出機能と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/diskd5dgroup1に正常に追加されます。

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/diskc3dgroup2に追加されます。

ALTER DISKGROUP dgroup2 ADD DISK
     '/devices/diskc3' FORCE;

この文を正常に実行するためには、dgroup3がマウントされていないことが必要です。

ディスクのディスク・グループからの削除

ディスクをディスク・グループから削除するには、ALTER DISKGROUP文のDROP DISK句を使用します。指定した障害グループ内のすべてのディスクを削除する場合は、DROP DISKS IN FAILGROUP句を使用します。

ディスクを削除するとディスク・グループの再バランスが実行され、削除されたディスクのファイルのエクステントは、すべてディスク・グループ内の他のディスクに移動します。他のディスクに使用可能な領域が十分にないと、ディスクの削除操作が失敗する場合があります。ディスクを追加した後に他のディスクを削除する場合は、最初にディスクを追加して、削除操作で使用できる領域が十分にあることを確認することをお薦めします。ALTER DISKGROUP文を使用して、追加と削除の両方を実行するのが最善の方法です。この方法によって、再バランスの合計時間を減らすことができます。


警告

ALTER DISKGROUP...DROP DISK文は、削除操作および再バランス操作が完了する前に戻されます。削除したディスクは、V$ASM_DISKビューにあるそのディスクのHEADER_STATUS列がFORMERに変更されるまで、再利用、削除または切断しないでください。V$ASM_OPERATIONビューを問い合せて、削除または再バランス操作が完了するまでの残り時間を確認できます。 詳細は、『Oracle Database SQLリファレンス』および『Oracle Databaseリファレンス』を参照してください。 


削除操作でFORCE句を指定すると、自動ストレージ管理が読取りや書込みができないディスクも削除されます。ディスクを外部の冗長性のディスク・グループから削除する場合は、FORCEフラグを使用できません。


注意

DROP FORCE操作では、後続の再バランス操作が完了するまでの間、データの冗長性は低下したままです。このため、後続の再バランス中にディスク障害が発生した場合、データが消失する危険性が高くなります。DROP FORCEは、慎重に使用してください。 


ディスクのディスク・グループからの削除: 例1

次の例では、diska5をディスク・グループdgroup1から削除します。このディスクには、「ディスク・グループへのディスクの追加: 例1」で示したように、オペレーティング・システムに依存しない名前として/devices/diska5が割り当てられています。

ALTER DISKGROUP dgroup1 DROP DISK diska5;
ディスクのディスク・グループからの削除: 例2

次の例では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: ユーザーによって現行の操作の取消しがリクエストされました」が表示され、再バランス操作が非同期で続行されます。

再バランス操作の追加ルールは次のとおりです。

ディスク・グループの手動による再バランス: 例

次の例では、ディスク・グループ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文を使用して、別名に対するディレクトリ構造を作成する方法について説明します。ディレクトリの名前変更や削除の方法も説明します。

関連項目

  • 『Oracle Databaseユーティリティ』のASMCMDに関する章。ASMCMDはコマンドライン・ユーティリティで、これを使用するとASMディスク・グループに別名とディレクトリを簡単に作成できます。

  • ASMファイル名とその生成方法については、「ASMファイル名の概要」を参照してください。

 

新規ディレクトリの作成

ASMファイルの別名の階層ディレクトリ構造を作成するには、ALTER DISKGROUP文のADD DIRECTORY句を使用します。ディレクトリ・パスの構成要素は、スラッシュ記号(/)を使用して区切ります。ディレクトリ・パスは、先頭にプラス記号(+)を付けたディスク・グループ名で始まり、選択したサブディレクトリ名が後に続きます。

ディレクトリ内にサブディレクトリまたは別名を作成するときは、親ディレクトリがすでに存在している必要があります。

新規ディレクトリの作成: 例1

次の文は、ディスク・グループdgroup1の階層ディレクトリを作成します。このディレクトリには、別名+dgroup1/mydir/control_file1などを含めることができます。

ALTER DISKGROUP dgroup1 ADD DIRECTORY '+dgroup1/mydir'; 
新規ディレクトリの作成: 例2

ディレクトリ+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ファイル名の別名の管理

別名を作成すると、システム生成のファイル名よりも、わかりやすい名前でASMファイルを参照できます。

ファイルの別名は、データベースにファイルを作成するときに作成できます。または、ALTER DISKGROUP文のADD ALIAS句を使用して既存のファイルに別名を追加することもできます。別名は、システム生成またはユーザー作成のASMディレクトリに作成できます。ただし、別名はルート・レベル(+)では作成できません。

V$ASM_ALIASビューには、ASMインスタンスが認識している別名ごとに行があります。このビューにはASMディレクトリも含まれます。


注意

V$ASM_ALIASビューには、システム生成の各ファイルごとに行があります。このような行は、SYSTEM_CREATED列の値'Y'によって示されます。 


関連項目

『Oracle Databaseユーティリティ』のASMCMDに関する章。ASMCMDはコマンドライン・ユーティリティで、これを使用すると別名を簡単に作成できます。 

ASMファイル名の別名の追加

ASMファイル名の別名を作成するには、ALTER DISKGROUP文のADD ALIAS句を使用します。この別名は、完全ディレクトリ・パスと別名自体で構成する必要があります。

ASMファイル名の別名の追加: 例1

次の文は、システム生成のファイル名の新しい別名を追加します。

ALTER DISKGROUP dgroup1 ADD ALIAS '+dgroup1/mydir/second.dbf'
     FOR '+dgroup1/sample/datafile/mytable.342.3';
ASMファイル名の別名の追加: 例2

この文では、別名を作成するASMファイル名を別の方法で指定します。ASMファイル名は、システム生成のファイル名を簡略にして導出した数値形式で指定されます。

ALTER DISKGROUP dgroup1 ADD ALIAS '+dgroup1/mydir/second.dbf'
     FOR '+dgroup1.342.3';

ASMファイル名の別名の名前変更

ASMファイル名の別名の名前を変更するには、ALTER DISKGROUP文のRENAME ALIAS句を使用します。変更前の別名と変更後の別名は、両方とも完全ディレクトリ・パスと別名で構成する必要があります。

ASMファイル名の別名の名前変更: 例

次の文は、別名の名前を変更します。

ALTER DISKGROUP dgroup1 RENAME ALIAS '+dgroup1/mydir/datafile.dbf'
     TO '+dgroup1/payroll/compensation.dbf';

ASMファイル名の別名の削除

ASMファイル名の別名を削除するには、ALTER DISKGROUP文のDROP ALIAS句を使用します。この別名は、完全ディレクトリ・パスと別名自体で構成する必要があります。別名によって参照される基礎となるファイルは変更されません。

ASMファイル名の別名の削除: 例1

次の文は、別名を削除します。

ALTER DISKGROUP dgroup1 DROP ALIAS '+dgroup1/payroll/compensation.dbf';
ASMファイル名の別名の削除: 例2

次の文は、システム生成のファイル名を削除するように指定しているため失敗します。システム別名は削除できません。

ALTER DISKGROUP dgroup1 
     DROP ALIAS '+dgroup1/sample/datafile/mytable.342.3';

ファイルおよび関連する別名のディスク・グループからの削除

ASMファイルと関連する別名をディスク・グループから削除するには、ALTER DISKGROUP文のDROP FILE句を使用します。削除するファイルは、完全修飾されたファイル名、数値ファイル名または別名を使用して指定する必要があります。

次の場合は、ファイルの削除が必要になります。

別名を削除しても、ファイル・システム上の基礎となるファイルは削除されません。

ファイルおよび関連する別名のディスク・グループからの削除: 例1

次の文は、ファイルの別名を使用して、ファイルと別名の両方を削除します。

ALTER DISKGROUP dgroup1 DROP FILE '+dgroup1/payroll/compensation.dbf';
ファイルおよび関連する別名のディスク・グループからの削除: 例2

この例では、システム生成のファイル名を使用して、ファイルと関連する別名を削除します。

ALTER DISKGROUP dgroup1
     DROP FILE '+dgroup1/sample/datafile/mytable.342.372642';

ディスク・グループのテンプレートの管理

テンプレートを使用して、ASMディスク・グループに作成したファイルの冗長性(ミラー化)属性とストライプ化属性を設定します。ファイルを作成するとき、明示的に指定されたテンプレート、またはそのファイル・タイプのデフォルトのテンプレートであるシステム・テンプレートに基づいて、そのファイルの冗長性属性とストライプ化属性が設定されます。

ディスク・グループを作成するとき、ASMはそのディスク・グループに対してデフォルトのテンプレート・セットを作成します。このセットには、ASMによってサポートされるファイル・タイプ(データ・ファイル、制御ファイル、REDOログ・ファイルなど)ごとに1つのテンプレートが含まれます。たとえば、ONLINELOGという名前のテンプレートによって、ASMディスクに書き込まれるすべてのREDOログ・ファイルに対するデフォルトのファイルの冗長性属性とストライプ化属性を指定します。デフォルトのテンプレート設定は、ディスク・グループ・タイプに基づきます。たとえば、通常の冗長性のディスク・グループの場合、データ・ファイルに対するデフォルトのテンプレートは2方向ミラー化を設定します。高い冗長性のディスク・グループの場合、同様のデフォルトのテンプレートは3方向ミラー化を設定します。これらのデフォルトのテンプレートは変更できます。表12-5に、デフォルトのテンプレート、および一致するファイルに適用される属性のリストを示します。この表に示すように、デフォルトの各テンプレートの冗長性の初期値は、テンプレートが属するディスク・グループのタイプに基づきます。


注意

テンプレートのストライプ化属性は、ディスク・グループの全タイプ(通常の冗長性、高い冗長性および外部の冗長性)に適用されます。ただし、テンプレートのミラー化属性が適用されるのは通常の冗長性のディスク・グループのみで、高い冗長性のディスク・グループ(すべてのファイルが常に3方向にミラー化されます)および外部の冗長性のディスク・グループ(ASMでファイルをミラー化しません)の場合は無視されます。しかし、ディスク・グループのタイプごとに完全なテンプレート・セットが作成され、各テンプレートの冗長性の値は常に、ディスク・グループのタイプに対して適切なデフォルト値に設定されます。 


ALTER DISKGROUP文の句を使用して、ディスク・グループへの新規テンプレートの追加、既存のテンプレートの変更、またはテンプレートの削除を実行できます。テンプレートを追加する理由は、固有の要件を満たすために属性の正しい組合せを作成するためです。ファイルの作成時にテンプレート名を参照して、ファイル・タイプごとではなく個々のファイルごとに適切な属性を割り当てることができます。V$ASM_TEMPLATEビューには、ASMインスタンスが認識しているすべてのテンプレートのリストが表示されます。

テンプレートの属性

表12-3にはASMテンプレートのストライプ化属性で許可されている値、表12-4には冗長性属性で許可されている値を示します。これらの値は、V$ASM_TEMPLATESTRIPE列とREDUND列に対応します。

表 12-3    ASMテンプレートのストライプ化属性で許可されている値 
ストライプ化属性の値  説明 

FINE 

128KBのチャンクにストライプ化 

COARSE 

1MBのチャンクにストライプ化 

表 12-4    ASMテンプレートの冗長性属性で許可されている値 
冗長性属性の値  通常の冗長性の
ディスク・グループでのミラー化
 
高い冗長性の
ディスク・グループでのミラー化
 
外部の冗長性の
ディスク・グループでのミラー化
 

MIRROR 

2方向ミラー化 

3方向ミラー化 

(使用不可) 

HIGH 

3方向ミラー化 

3方向ミラー化 

(使用不可) 

UNPROTECTED 

ミラー化なし 

(使用不可) 

ミラー化なし 

表 12-5    ASMシステム・デフォルトのテンプレートの属性値 
テンプレート名  ストライプ化  ミラー化、
通常の冗長性の
ディスク・グループ
 
ミラー化、
高い冗長性の
ディスク・グループ
 
ミラー化、
外部の冗長性の
ディスク・グループ
 

CONTROLFILE  

FINE 

HIGH 

HIGH 

UNPROTECTED 

DATAFILE  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

ONLINELOG  

FINE 

MIRROR 

HIGH 

UNPROTECTED 

ARCHIVELOG  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

TEMPFILE  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

BACKUPSET  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

PARAMETERFILE  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

DATAGUARDCONFIG 

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

FLASHBACK  

FINE 

MIRROR 

HIGH 

UNPROTECTED 

CHANGETRACKING  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

DUMPSET  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

XTRANSPORT  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

AUTOBACKUP  

COARSE 

MIRROR 

HIGH 

UNPROTECTED 

ディスク・グループへのテンプレートの追加

ディスク・グループの新しいテンプレートを追加するには、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にデフォルト設定されます。

ディスク・グループへのテンプレートの追加: 例1

次の文は、通常の冗長性のディスク・グループdgroup2に対してreliableという名前の新しいテンプレートを作成します。

ALTER DISKGROUP dgroup2 ADD TEMPLATE reliable ATTRIBUTES (HIGH FINE);
ディスク・グループへのテンプレートの追加: 例2

この文は、非保護の(ミラー化なし)ファイルを指定する、unreliableという名前の新しいテンプレートを作成します。(ただし、ハードウェアのミラー化が適切に実行されないかぎり、非保護のファイルの使用はお薦めできません。この例は、テンプレートの属性の設定方法を説明する目的で示しています。)

ALTER DISKGROUP dgroup2 ADD TEMPLATE unreliable ATTRIBUTES (UNPROTECTED);

関連項目

ALTER DISKGROUP...ADD TEMPLATEコマンドの詳細は、『Oracle Database SQLリファレンス』を参照してください。 

ディスク・グループのテンプレートの変更

既存のシステム・デフォルトまたはユーザー定義のディスク・グループ・テンプレートの属性指定は、ALTER DISKGROUPALTER TEMPLATE句で変更できます。変更されるのは、指定したテンプレート・プロパティのみです。指定していないプロパティは、現在値のままです。

既存のテンプレートを変更すると、そのテンプレートで新規に作成されたファイルにのみ属性の変更が反映されます。既存のファイルの属性は変更されません。

ディスク・グループのテンプレートの変更: 例

次の例では、ディスク・グループdgroup2reliableテンプレートのストライプ化属性指定を変更します。

ALTER DISKGROUP dgroup2 ALTER TEMPLATE reliable 
     ATTRIBUTES (COARSE);

テンプレートのディスク・グループからの削除

ディスク・グループから1つ以上のテンプレートを削除するには、ALTER DISKGROUPDROP TEMPLATE句を使用します。削除できるのは、ユーザー定義のテンプレートのみです。システム・デフォルトのテンプレートは削除できません。

テンプレートのディスク・グループからの削除: 例

この例では、前述の例で作成したテンプレートunreliabledgroup2から削除します。

ALTER DISKGROUP dgroup2 DROP TEMPLATE unreliable;

データベースでの自動ストレージ管理の使用

ここでは、自動ストレージ管理(ASM)を使用してデータベース・ファイルを管理する方法について説明します。

注意

この項の説明は、Real Application Clusters環境に対応していません。 この詳細は、『Oracle Real Application Clusters インストレーションおよび構成』および『Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 

ASMを使用するとき、Oracleデータベース・ファイルはASMディスク・グループに格納されています。ASMを使用することによって、Oracle Databaseはパフォーマンスおよびリソース使用率が改善され、可用性が向上します。ほとんどのASMファイルはOracle Managed Filesです。詳細は、表12-7および第11章「Oracle Managed Filesの使用」を参照してください。


注意

ASMは、Oracle Database 10.xバージョンとASM 10.xバージョンの間の上位互換性と下位互換性をサポートしています。つまり、ASMインスタンスまたはデータベース・インスタンスのバージョン10.1.x.yと10.2.x.yのすべての組合せは、正常に機能します。ただし、10.1.x.yのデータベース・インスタンスが10.2.x.yのASMインスタンスに接続する場合は例外で、データベースはバージョン10.1.0.3以上であることが必要です。

ソフトウェアのバージョンが異なる組合せの場合、ASMの機能は、古い方のバージョンの機能に戻ります。たとえば、10.1.0.3のデータベースの場合、10.2.0.0のASMインスタンスとともに使用すると、ASM 10.2.0.0の新機能は使用できません。逆に、10.2.0.0のデータベースの場合、10.1.0.2のASMインスタンスとともに使用すると、ASMと相互作用するとき10.1.0.2のデータベース・インスタンスとして動作します。バージョン情報は、V$ASM_CLIENTビューのSOFTWARE_VERSION列とCOMPATIBLE_VERSION列に表示されます。 これらの列については、『Oracle Databaseリファレンス』を参照してください。 


ディスク・グループに格納されているOracleデータベース・ファイルは、オペレーティング・システムやそのユーティリティでは参照できませんが、Recovery Manager、ASMCMDおよびXML DBリポジトリでは参照できます。

この項の内容は、次のとおりです。

ASMがサポートするファイル・タイプ

ASMは、データベースに必要なほとんどのファイル・タイプをサポートします。ただし、管理ファイルのほとんどはASMディスク・グループに格納できません。管理ファイルには、トレース・ファイル、監査ファイル、アラート・ログ、バックアップ・ファイル、エクスポート・ファイル、tarファイルおよびコア・ファイルがあります。

表12-6に、ファイル・タイプ、サポートの有無、およびファイル作成用の属性を指定するシステム・デフォルトのテンプレートを示します。表内の一部のファイル・タイプは、特定の製品または機能に関連しているため、このマニュアルでは説明していません。

表 12-6    自動ストレージ管理でサポートされるファイル・タイプ 
ファイル・タイプ  サポートの
有無
 
デフォルトの
テンプレート
 

制御ファイル 

あり 

CONTROLFILE 

データ・ファイル 

あり 

DATAFILE 

REDOログ・ファイル 

あり 

ONLINELOG 

アーカイブ・ログ・ファイル 

あり 

ARCHIVELOG 

トレース・ファイル 

なし 

N/A 

一時ファイル 

あり 

TEMPFILE 

データ・ファイル・バックアップ・ピース 

あり 

BACKUPSET 

データ・ファイル増分バックアップ・ピース 

あり 

BACKUPSET 

アーカイブ・ログ・バックアップ・ピース 

あり 

BACKUPSET 

データ・ファイル・コピー 

あり 

DATAFILE 

永続初期化パラメータ・ファイル(SPFILE) 

あり 

PARAMETERFILE 

障害リカバリ構成 

あり 

DATAGUARDCONFIG 

フラッシュバック・ログ 

あり 

FLASHBACK 

変更追跡ファイル 

あり 

CHANGETRACKING 

Data Pumpダンプセット 

あり 

DUMPSET 

自動生成される制御ファイルのバックアップ 

あり 

AUTOBACKUP 

クロス・プラットフォームのトランスポータブル・データ・ファイル 

あり 

XTRANSPORT 

オペレーティング・システム・ファイル 

なし 

N/A 

関連項目

システム・デフォルトのテンプレートの詳細は、「ディスク・グループのテンプレートの管理」を参照してください。 

ASMファイル名の概要

ASMで作成されたすべてのファイルにはシステム生成のファイル名が付けられ、これは完全修飾されたファイル名とも呼ばれます。完全修飾されたファイル名は、ASMファイル・システムの完全なパス名を表します。次に、完全修飾されたファイル名の例を示します。

+dgroup2/sample/controlfile/Current.256.541956473

完全修飾されたファイル名を使用して、ASMファイルを参照(読取りまたは取得)できます。また、簡略化したファイル名形式(この項で後述します)を使用して、ASMファイルを参照することもできます。

ASMは、ファイルの作成要求時に、完全修飾されたファイル名を生成します。ファイルの作成要求時には、完全修飾されたファイル名を指定しません(正確には、指定できません)。かわりに、別名やディスク・グループ名など単純な構文を使用してファイルを指定します。ASMは、ファイルを作成し、ファイル・タイプに従ってファイルを正しいASMのパスに配置して、適切な完全修飾されたファイル名を割り当てます。ファイルの作成要求時に別名を指定すると、ASMは別名も作成して、完全修飾されたファイル名を参照します。

ASMのファイルの作成要求は、単一ファイルの作成要求または複数ファイルの作成要求のいずれかになります。

単一ファイルの作成要求

これは、データ・ファイルや制御ファイルなど、単一ファイルを作成する要求です。このタイプの要求では、ASMファイル名の形式は別名(たとえば、+dgroup2/control/ctl.f)または先頭にプラス記号を付けたディスク・グループ名のいずれかになります。CREATE TABLESPACECREATE CONTROLFILEなどの文でファイル名が必要な箇所では、別名またはディスク・グループ名を使用します。


注意

ファイル名では「/」と「\」は置き換えることができます。ファイル名は大/小文字を区別しませんが、大/小文字が保持されます。 


複数ファイルの作成要求

これは、ASMファイルの作成が複数回実行される要求です。たとえば、初期化パラメータDB_CREATE_FILE_DESTに値を割り当てた場合、CREATE TABLESPACE文を(ファイル名を指定せずに)複数回発行できます。この文が発行されるたびに、ASMは異なる一意のデータ・ファイル名を作成します。

このタイプの要求では、ASMファイル名の形式の1つとして不完全ファイル名が使用されます。このファイル名は、先頭にプラス記号を付けたディスク・グループ名です。この場合、DB_CREATE_FILE_DESTを不完全ファイル名(たとえば、+dgroup2)に設定すると、DB_CREATE_FILE_DESTでデータベース・ファイルを作成するコマンドが実行されるたびに、指定したディスク・グループにファイルが作成されて一意の完全修飾名が割り当てられます。不完全ファイル名は、他の*_DEST初期化パラメータでも使用できます。


注意

ASMが完全修飾名を生成するたびに、ASM生成の名前が含まれたアラート・ログ・メッセージが書き込まれます。生成された名前は、V$DATAFILEV$LOGFILEなどのOracleファイル名を表示するデータベース・ビューにも表示されます。後でSQL文でASMファイルを参照する必要がある場合は、この名前を使用するか、またはこの名前を簡略化した形式を使用できます。他のOracleデータベース・ファイル名と同様に、ASMファイル名は、制御ファイルとRecovery Managerカタログに保存されます。 


この項では、ASMファイル名として可能な6つの形式について詳細に説明します。

次の表は、ファイル名の各形式に対するコンテキストの有効性、各形式がファイル作成に使用されるかどうか、および作成したファイルがOracle Managed Files(OMF)かどうかを示します。

表 12-7    ASMファイル名の形式に対するコンテキストの有効性 
ファイル名の形式  コンテキストの有効性  OMF
参照  単一ファイルの作成  複数ファイルの作成  Oracle Managed Filesとして作成 

完全修飾されたファイル名 

有効 

無効 

無効 

 

数値ファイル名 

有効 

無効 

無効 

 

別名ファイル名 

有効 

有効 

無効 

いいえ 

テンプレート付き別名ファイル名 

無効 

有効 

無効 

いいえ 

不完全ファイル名 

無効 

有効 

有効 

はい 

テンプレート付き不完全ファイル名 

無効 

有効 

有効 

はい 


注意

REUSEキーワードを指定すると、完全修飾されたファイル名および数値ファイル名を単一ファイルの作成に使用できます。詳細は、「SQL文でのASMファイル名の使用」を参照してください。 


完全修飾されたASMファイル名

この形式のASMファイル名は、既存のASMファイルを参照するために使用できます。このファイル名は、ASMファイルの作成時にASMが常に自動的に生成します。

完全修飾されたファイル名の形式は次のとおりです。

+group/dbname/file_type/file_type_tag.file.incarnation 

各項目の意味は次のとおりです。

次に、完全修飾されたASMファイル名の例を示します。

+dgroup2/sample/controlfile/Current.256.541956473 
表 12-8    Oracleファイル・タイプおよび自動ストレージ管理ファイル・タイプのタグ 
自動ストレージ管理 file_type  説明  自動ストレージ管理 file_type_tag  コメント 

CONTROLFILE 

制御ファイルおよびバックアップ制御ファイル 

現行

バックアップ 

-- 

DATAFILE 

データ・ファイルおよびデータ・ファイル・コピー 

tsname 

ファイルの追加先表領域。 

ONLINELOG 

オンライン・ログ 

group_group# 

-- 

ARCHIVELOG 

アーカイブ・ログ 

thread_thread#_seq_sequence# 

-- 

TEMPFILE 

一時ファイル 

tsname 

ファイルの追加先表領域。 

BACKUPSET 

データ・ファイルおよびアーカイブ・ログ・バックアップ・ピース、データ・ファイル増分バックアップ・ピース 

hasspfile_timestamp 

hasspfileには、次の2つの値のいずれかを指定できます。sはバックアップ・セットにspfileが含まれていることを示し、nはバックアップ・セットにspfileが含まれていないことを示します。 

PARAMETERFILE 

永続パラメータ・ファイル 

spfile 

 

DAATAGUARDCONFIG 

Data Guard構成ファイル 

db_unique_name 

Data Guardはサービス・プロバイダ名を使用します(設定した場合)。設定しない場合、タグはデフォルトでDRCnameに設定されます。 

FLASHBACK 

フラッシュバック・ログ 

log_log# 

-- 

CHANGETRACKING 

ブロック・チェンジ・トラッキング・データ 

ctf 

増分バックアップ時に使用されます。 

DUMPSET 

Data Pumpダンプセット 

user_obj#_file# 

ダンプ・セット・ファイルでは、ユーザー名、ダンプ・セットを作成したジョブ番号およびファイル番号をタグの一部としてエンコードします。 

XTRANSPORT 

データ・ファイルの変換 

tsname 

-- 

AUTOBACKUP 

自動バックアップ・ファイル 

hasspfile_timestamp 

hasspfileには、次の2つの値のいずれかを指定できます。sはバックアップ・セットにspfileが含まれていることを示し、nはバックアップ・セットにspfileが含まれていないことを示します。 

数値ASMファイル名

この数値ASMファイル名は、既存のファイルを参照するために使用できます。このファイル名は完全修飾されたASMファイル名から導出され、形式は次のとおりです。

 +group.file.incarnation 

数値ASMファイル名は、既存のファイル名が必要なインタフェースで使用できます。

次に、数値ASMファイル名の例を示します。

+dgroup2.257.541956473

別名ASMファイル名

別名ASMファイル名は別名とも呼ばれ、既存のASMファイルの参照および新しいASMファイルの作成に使用できます。別名は先頭にプラス記号を付けたディスク・グループ名で始まり、その後に任意の名前文字列を指定します。別名ファイル名は、階層ディレクトリ構造を使用して実装し、スラッシュ記号(/)または円記号(¥)を使用して名前の構成要素を区切ります。別名は、システム生成またはユーザー作成のASMディレクトリに作成できます。ただし、別名はルート・レベル(+)では作成できません。

別名ファイル名を使用してASMファイルを作成する場合、ファイルは完全修飾名を使用して作成されてから、別名ファイル名が作成されます。ファイルには、どちらの名前を使用してもアクセスできます。

別名ASMファイル名は、ピリオドで区切られた数値のペアで終わらないため、完全修飾されたファイル名や数値ファイル名とは区別されます。ピリオドで区切られた数値のペアで終わる別名を作成すると、エラーになります。次に、別名ASMファイル名の例を示します。

+dgroup1/myfiles/control_file1
+dgroup2/mydir/second.dbf

Oracle Databaseは、別名を使用してデータベース・ファイルを作成した場合のみ、別名ファイル名を使用してデータベース・ファイルを参照します。別名を使用せずにデータベース・ファイルを作成し、後で別名を追加した場合、データベースは完全修飾されたファイル名を使用してファイルを参照します。次に、データベースで別名ファイル名を使用する例を示します。

テンプレート付き別名ASMファイル名

テンプレート付き別名ASMファイル名は、ASMファイル作成操作でのみ使用します。書式は次のとおりです。

+dgroup(template_name)/alias 

テンプレート付き別名ファイル名の動作は別名ファイル名と同様です。唯一の相違点は、テンプレート付き別名ファイル名を使用して作成したファイルは、指定のテンプレートで指定されたミラー化属性とストライプ化属性を受け入れることです。テンプレートは、ファイルを作成するディスク・グループに属する必要があります。

ASMテンプレートの作成とメンテナンスについては、「ディスク・グループのテンプレートの管理」を参照してください。

次に、テンプレート付き別名ASMファイル名の例を示します。

+dgroup1(my_template)/config1

この例のように、テンプレート名を明示的に指定すると、作成するファイルのタイプに対するシステム・デフォルトのテンプレートは上書きされます。


注意

テンプレート付き別名ファイル名を使用して作成されたファイルはOracle Managed Filesとみなされないため、後で不要になった場合は手動で削除する必要があります。 


不完全ASMファイル名

不完全ASMファイル名はファイル作成操作でのみ使用し、単一ファイルと複数ファイルの作成で使用します。不完全ASMファイル名はディスク・グループ名のみで構成されています。ASMはシステム・デフォルトのテンプレートを使用して、ASMファイルの冗長性属性とストライプ化属性を決定します。使用するシステム・テンプレートは、作成するファイル・タイプによって決まります。たとえば、表領域のデータ・ファイルを作成する場合は、datafileテンプレートが使用されます。

次に、DB_CREATE_FILE_DEST初期化パラメータに設定する不完全ASMファイル名の使用例を示します。

+dgroup1

このように設定すると、表領域を作成するたびにデータ・ファイルがディスク・グループdgroup1に作成され、各データ・ファイルには異なる完全修飾名が割り当てられます。 詳細は、「デフォルトのディスク・グループ指定を使用したASMファイルの作成」を参照してください。

テンプレート付き不完全ASMファイル名

テンプレート付き不完全ASMファイル名はファイル作成操作でのみ使用し、単一ファイルと複数ファイルの作成で使用します。このファイル名は、ディスク・グループ名の後にカッコで囲まれたテンプレート名が続きます。ファイル名にテンプレートを明示的に指定すると、ASMはそのファイル・タイプのデフォルトのテンプレートではなく、指定されたテンプレートを使用して、ファイルのミラー化属性とストライプ化属性を決定します。

次に、DB_CREATE_FILE_DEST初期化パラメータに設定するテンプレート付き不完全ASMファイル名の使用例を示します。

+dgroup1(my_template)

ASMインスタンスおよびデータベース・インスタンスの起動

ASMインスタンスとデータベース・インスタンスは、次の順序で起動します。

  1. ASMインスタンスの起動

    データベース・インスタンスを起動する前に、データベースと同じノード上でASMインスタンスを起動します。 ASMインスタンスの起動については、「ASMインスタンスの起動」を参照してください。

  2. データベース・インスタンスの起動

    データベース・インスタンスを起動する前に、次の点を考慮してください。

    • SQL*Plusを使用してデータベースを起動する場合は、最初に環境変数ORACLE_SIDをデータベースSIDに設定する必要があります。ASMとデータベースのOracleホームが異なる場合は、環境変数ORACLE_HOMEも設定する必要があります。プラットフォームによっては、他の環境変数の変更も必要になる場合があります。

    • INSTANCE_TYPE初期化パラメータを次のように設定する必要があります。

      INSTANCE_TYPE = RDBMS

      これはデフォルトです。

    • データベース・ファイルを作成する際にASMをデフォルトの保存先にする場合は、次の1つ以上の初期化パラメータに不完全ASMファイル名を指定する必要があります(「デフォルトのディスク・グループ指定を使用したASMファイルの作成」を参照)。

      • DB_CREATE_FILE_DEST

      • DB_CREATE_ONLINE_LOG_DEST_n

      • DB_RECOVERY_FILE_DEST

      • CONTROL_FILES

      • LOG_ARCHIVE_DEST_n

      • LOG_ARCHIVE_DEST

      • STANDBY_ARCHIVE_DEST

    • 初期化パラメータについては、次の点も考慮してください。

      • LOG_ARCHIVE_DESTにディスク・グループが指定されている場合(たとえば、LOG_ARCHIVE_DEST = +dgroup1)、LOG_ARCHIVE_FORMATは無視されます。

      • DB_BLOCK_SIZEは、標準のブロック・サイズ(2KB、4KB、8KB、16KBまたは32KB)である必要があります。

      • LARGE_POOL_SIZEは、1MB以上に設定する必要があります。

これで、データベース・インスタンスでASMファイルを作成できるようになります。ディスク・グループを再構成する場合は、データベース・インスタンスをオープンして、実行中のままにできます。ディスク・グループとの間でディスクの追加や削除を行うと、データベースが実行中であっても、ASMは、バランスのとれたI/Oロードのために、再構成されたディスク・グループ内のファイル・データを自動的に再バランスします。

データベースでのASMファイルの作成と参照

ASMファイルは、別名を使用してファイルを作成しないかぎり、Oracle Managed Filesとなります。Oracle Managed Filesはすべて、不要になると自動的に削除されます。ASMファイルは、作成に失敗すると削除されます。

デフォルトのディスク・グループ指定を使用したASMファイルの作成

オペレーティング・システム・ファイルにOracle Managed Files機能を使用すると、データ・ファイル、一時ファイル、REDOログ・ファイルおよび制御ファイルについて作成時のデフォルト位置としてディレクトリを指定できます。ASMにOracle Managed Files機能を使用すると、これらのファイル以外に、アーカイブ・ログ・ファイルなどのファイル・タイプについても作成時のデフォルト位置として、ディスク・グループを不完全ASMファイル名の形式で指定できます。オペレーティング・システム・ファイルと同様に、デフォルトのディスク・グループの名前は、初期化パラメータに格納され、ファイル作成時にファイル仕様(たとえば、DATAFILE句)が明示的に指定されていない場合に使用されます。

次の初期化パラメータには、宛先として、ASMファイル名の複数ファイル作成のコンテキスト形式を指定できます。

初期化パラメータ  説明 

DB_CREATE_FILE_DEST  

次のファイルを作成するときのデフォルトのディスク・グループ位置を指定します。

  • データ・ファイル

  • 一時ファイル

DB_CREATE_ONLINE_LOG_DEST_nを指定しない場合は、次のファイルに対するデフォルトのディスク・グループも指定します。

  • REDOログ・ファイル

  • 制御ファイル

 

DB_CREATE_ONLINE_LOG_DEST_n 

次のファイルを作成するときのデフォルトのディスク・グループ位置を指定します。

  • REDOログ・ファイル

  • 制御ファイル

 

DB_RECOVERY_FILE_DEST  

このパラメータを指定してDB_CREATE_ONLINE_LOG_DEST_nCONTROL_FILESを指定しない場合、このパラメータは、次のファイルのコピーを含むフラッシュ・リカバリ領域に対するデフォルトのディスク・グループを指定します。

  • 制御ファイル

  • REDOログ・ファイル

ローカルのアーカイブ先を指定しない場合、このパラメータはLOG_ARCHIVE_DEST_10USE_DB_RECOVERY_FILE_DEST値に暗黙的に設定します。 

CONTROL_FILES  

制御ファイルを作成するときのディスク・グループを指定します。 

次の初期化パラメータには、宛先として、ASMファイル名の複数ファイル作成のコンテキスト形式およびASMディレクトリ名を指定できます。

初期化パラメータ  説明 

LOG_ARCHIVE_DEST_n 

アーカイブREDOログ・ファイルの宛先として、デフォルトのディスク・グループまたはASMディレクトリを指定します。 

LOG_ARCHIVE_DEST  

アーカイブREDOログ・ファイルの宛先として、デフォルトのディスク・グループまたはASMディレクトリを指定するために使用するオプションのパラメータです。宛先を1つ指定する場合にのみ使用します。 

STANDBY_ARCHIVE_DEST  

管理リカバリ・モードのスタンバイ・データベースについてのみ使用します。プライマリ・データベースのアーカイブ・ログの宛先として、デフォルトのディスク・グループまたはASMディレクトリを指定します。このマニュアルでは説明していません。 『Oracle Data Guard概要および管理』を参照してください。 

次の例では、ASMファイル(この例ではデータ・ファイル)をデフォルトのディスク・グループ内に作成する方法を示します。

デフォルトのディスク・グループを使用したデータ・ファイルの作成: 例

次のような初期化パラメータの設定を想定します。

DB_CREATE_FILE_DEST = '+dgroup1'

次の文は、表領域tspace1を作成します。

CREATE TABLESPACE tspace1;

ASMは、ディスク・グループdgroup1内のASMディスクに、tspace1のデータ・ファイルを自動的に作成して管理します。ファイルのエクステントは、データ・ファイルに対するデフォルトのテンプレートで定義した属性を使用して格納されます。

SQL文でのASMファイル名の使用

SQL文のファイル仕様句にはASMファイル名を指定できます。ファイルを最初に作成する場合は、ASMファイル名の作成形式を使用します。ASMファイルがすでに存在する場合は、ファイル名のファイル参照のコンテキスト形式を使用し、ファイルを再作成する場合はREUSEキーワードを追加する必要があります。これによって、領域が新しいファイルで再利用されます。 この操作は、制御ファイルの再作成(「ASMによる制御ファイルの作成」を参照)などで使用されます。

参照のコンテキスト形式がREUSEキーワードで使用され、ファイルが存在しない場合は、エラーが発生します。

システム・エラーが原因で完全に作成されなかったファイルは、自動的に削除されます。

SQL文でのASMファイル名の使用: 例

次に、SQL文でASMファイル名を指定する例を示します。この例では、ファイル作成のコンテキストでファイル名が使用されています。

CREATE TABLESPACE  tspace2 DATAFILE '+dgroup2' SIZE 200M AUTOEXTEND ON;

作成される表領域tspace2は、ディスク・グループdgroup2に格納されたサイズが200MBの1つのデータ・ファイルで構成されます。このデータ・ファイルは自動拡張可能に設定され、最大サイズに制限はありません。このデフォルトは、AUTOEXTEND句を使用して上書きできます。

ASMによるデータベースの作成

データベースは、データベース・コンフィギュレーション・アシスタント(DBCA)を使用して作成することをお薦めします。ただし、CREATE DATABASE文を使用して手動でデータベースを作成する場合は、ASMを使用すると、最小限の入力でデータベースおよび基礎となるすべてのファイルを作成できます。

次に示すCREATE DATABASE文の使用例では、ASMによって自動的にデータベース・ファイルが作成および管理されます。

ASMによるデータベースの作成: 例

この例では、次のASMファイルを含むデータベースが作成されます。

初期化パラメータ・ファイルには、次の初期化パラメータの設定が含まれています。

DB_CREATE_FILE_DEST = '+dgroup1'
DB_RECOVERY_FILE_DEST = '+dgroup2'
DB_RECOVERY_FILE_DEST_SIZE = 10G

SQLプロンプトから次の文を発行します。

SQL> CREATE DATABASE sample;

ASMによる表領域の作成

ASMによって作成された永続表領域のデータ・ファイル(一時表領域の場合は一時ファイル)は、自動拡張可能に設定され最大サイズに制限はありません。デフォルトのサイズは100MBです。AUTOEXTEND句を使用してこのデフォルトの拡張性を変更し、SIZE句を使用してデフォルトのサイズを変更できます。

自動ストレージ管理は、「ディスク・グループのテンプレートの管理」の表に示すように、データ・ファイル用のシステム・デフォルトのテンプレートの指定に従って、属性をデータ・ファイルに適用します。独自のテンプレートを作成して指定することもできます。

表領域内のファイルは、その表領域の履歴に応じて、ASMファイルである場合とASMファイルでない場合があります。Recovery Managerのコマンドを使用すると、ASM以外のファイルをASMディスク・グループに再配置したり、ASMファイルをASM以外のファイルとして再配置できます。

次に、自動ストレージ管理を使用して表領域を作成する例を示します。次の例では、ディスク・グループはすでに構成されていると想定します。

関連項目

  • 『Oracle Databaseバックアップおよびリカバリ基礎』

  • 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

 

ASMによる表領域の作成: 例1

この例では、自動ストレージ管理の開梱時の使用方法を示します。ほとんどの状況に対応できるOracle指定のデフォルト値を自動ストレージ管理で使用して、表領域のデータ・ファイルを作成および管理します。

次のような初期化パラメータの設定を想定します。

DB_CREATE_FILE_DEST = '+dgroup2'

次の文は、表領域とそのデータ・ファイルを作成します。

CREATE TABLESPACE tspace2;
ASMによる表領域の作成: 例2

次の文は表領域を作成します。この表領域では、ユーザー定義のテンプレート(すでに定義されていると想定します)を使用して、データ・ファイルの冗長性属性とストライプ化属性を指定します。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+dgroup1(my_template)';
SQL> CREATE TABLESPACE tspace3;
ASMによる表領域の作成: 例3

次の文は、データ・ファイルを含む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';

ASMによるREDOログの作成

オンラインREDOログは複数のディスク・グループに作成できます。その場合、初期化パラメータ・ファイルで暗黙的に作成するか、ALTER DATABASE...ADD LOGFILE文で明示的に作成します。複数のディスク・グループに作成される各オンライン・ログには、1つのログ・メンバーが必要です。ログ・ファイルのメンバー用のファイル名は、自動的に生成されます。

システム・エラーによって完全に作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。

新しいREDOログ・ファイルの追加: 例

次の例では、ディスク・グループdgroup1dgroup2に、1つのメンバーを持つログ・ファイルを1つずつ作成します。

初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_ONLINE_LOG_DEST_1 = '+dgroup1'
DB_CREATE_ONLINE_LOG_DEST_2 = '+dgroup2'

SQLプロンプトから次の文を発行します。

ALTER DATABASE ADD LOGFILE;

ASMによる制御ファイルの作成

制御ファイルは、複数のディスク・グループ内に明示的に作成できます。制御ファイル用のファイル名は、自動的に生成されます。制御ファイルの作成に失敗した場合、完全に作成されなかった制御ファイルは自動的に削除されます。

制御ファイルを名前で指定することが必要な場合があります。管理者がASMファイルをわかりやすい名前で参照できるように、別名ファイル名が提供されています。制御ファイルの作成時に別名の使用を指定すると、DBAは制御ファイルをわかりやすい名前で参照できるようになります。さらに、CONTROL_FILES初期化パラメータで別名を制御ファイル名として指定することもできます。制御ファイルの作成時に別名を指定しなかった場合でも、後で別名を指定できます。この操作を行うには、ALTER DISKGROUP...CREATE ALIAS文を使用します。

制御ファイルを作成するときは、ASMファイル名のファイル参照のコンテキスト形式を使用して、ASMディスク・グループに格納されているデータ・ファイルとログ・ファイルをCREATE CONTROLFILEコマンドに指定する必要があります。ただし、RESETLOGSオプションを使用する場合は、ログ・ファイルの指定に、ファイル作成のコンテキスト形式を使用する必要があります。

ASMによる制御ファイルの作成: 例1

次の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
;
ASMによる制御ファイルの作成: 例2

次の例は、データ・ファイルを持つデータベースに対する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
;

ASMによるアーカイブ・ログ・ファイルの作成

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(RMAN)とASM

Recovery ManagerはASMには不可欠で、ASMファイル名を追跡し、不要なASMファイルを削除する役割があります。ASMファイルは、通常のオペレーティング・システムのインタフェースを介してコピーできないため(FTPまたはHTTP/WebDAVを介したXML DBリポジトリを除く)、ASMファイルのコピーにはRecovery Managerの使用をお薦めします。ASMファイルを含むデータベースのバックアップは、Recovery Managerを使用して実行する方法しかありません。

データベースやファイルをASM記憶域に移動する場合もRecovery Managerを使用できます。

関連項目

  • 『Oracle Databaseバックアップおよびリカバリ基礎』

  • 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

 

自動ストレージ管理へのデータベースの移行

Oracle Databaseと自動ストレージ管理(ASM)の新規インストールでは、最初にデータベースをASMで作成します。オペレーティング・システムのファイル・システムまたはRAWデバイスにデータベース・ファイルを格納している既存のOracleデータベースがある場合は、そのデータベース・ファイルの一部またはすべてをASMに移行できます。

データベース・ファイルをASMに移行する方法は、次の2通りあります。

XML DB仮想フォルダを使用した自動ストレージ管理ファイルへのアクセス

自動ストレージ管理(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ロールが付与されている必要があります。


注意

FTPプロトコルは、XML DBの新規インストールの初期状態では無効です。有効にするには、FTPポートを0(ゼロ)以外の値に設定する必要があります。最も簡単な方法は、catxdbdbca.sqlスクリプトの使用です。このスクリプトは2つの引数を取ります。最初の引数はFTPポート番号で、2番目の引数はHTTP/WebDAVポート番号です。次の例では、FTPポート番号を7787に、HTTP/WebDAVポート番号を8080に設定しています。

SQL> @?/rdbms/admin/catxdbdbca.sql 7787 8080

これらのポート番号は、Enterprise Managerの「XDB構成」ページでも設定できます。 


関連項目

XML DBプロトコル・サーバー用のポート番号を設定する他の方法を含む、Oracle XML DBの詳細は、『Oracle XML DB開発者ガイド』を参照してください。DBMS_XDBパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 

/sys/asm内部

ASM仮想フォルダは、XML DBのインストール時にデフォルトで作成されます。ASMを使用するようにデータベースが構成されていない場合、このフォルダは空で、関連する操作は実行できません。

ASM仮想フォルダには、複数のフォルダとサブフォルダが含まれており、これらのフォルダは、ASMの完全修飾ファイル名の構造によって定義された階層に従っています。このため、/sys/asmには、マウントされているディスク・グループごとにサブフォルダがあり、各ディスク・グループ・フォルダには、そのディスク・グループを使用するデータベースごとにサブフォルダがあります(さらに、ディスク・グループ・フォルダには、管理者が作成した別名に対応するファイルとフォルダが含まれる場合があります)。階層では、データベース・フォルダにファイル・タイプ・フォルダが含まれ、そのファイル・タイプ・フォルダにASMファイルが含まれます。次の図に示す階層では、わかりやすくするために、別名用に作成されたディレクトリは除外してあります。


画像の説明

制限事項

/sys/asmに関する使用上の制限事項は、次のとおりです。

サンプルFTPセッション

次のサンプルFTPセッションでは、ディスク・グループがDATARECOVERYで、データベース名がMFGdbsが別名用に作成されたディレクトリです。/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

自動ストレージ管理に関する情報の表示

自動ストレージ管理に関する情報は、次のビューを使用して問い合せることができます。

ビュー  説明 

V$ASM_DISKGROUP  

ASMインスタンスの場合は、ディスク・グループ(番号、名前、サイズ関連情報、状態および冗長性タイプ)が表示されます。

DBインスタンスの場合は、ローカルのASMインスタンスによってマウントされたASMディスク・グループごとに1行が表示されます。

このビューでは、問合せごとにディスク検出が実行されます。 

V$ASM_DISK  

ASMインスタンスの場合は、ASMインスタンスによって検出されたディスクごとに1行が表示されます。ディスク・グループに属していないディスクも含まれます。

DBインスタンスの場合は、DBインスタンスで使用されているディスク・グループ内のディスクについてのみ行が表示されます。

このビューでは、問合せごとにディスク検出が実行されます。 

V$ASM_DISKGROUP_STAT 

V$ASM_DISKGROUPと同じ列がありますが、オーバーヘッドを軽減するために、問合せごとのディスク検出は実行されません。したがって、ストレージ・システムにとって新しいディスクに関する情報を返しません。最も正確なデータを得るには、かわりにV$ASM_DISKGROUPを使用してください。 

V$ASM_DISK_STAT 

V$ASM_DISKと同じ列がありますが、オーバーヘッドを軽減するために、問合せごとのディスク検出は実行されません。したがって、ストレージ・システムにとって新しいディスクに関する情報を返しません。最も正確なデータを得るには、かわりにV$ASM_DISKを使用してください。 

V$ASM_FILE  

ASMインスタンスの場合は、ASMインスタンスによってマウントされた各ディスク・グループのASMファイルごとに1行が表示されます。

DBインスタンスの場合、行は表示されません。 

V$ASM_TEMPLATE  

ASMインスタンスまたはDBインスタンスの場合は、ASMインスタンスによってマウントされた各ディスク・グループのテンプレートごとに1行が表示されます。 

V$ASM_ALIAS  

ASMインスタンスの場合は、ASMインスタンスによってマウントされた各ディスク・グループで使用されている別名ごとに1行が表示されます。

DBインスタンスの場合、行は表示されません。 

V$ASM_OPERATION  

ASMインスタンスの場合は、ASMインスタンスで長時間実行されているアクティブなASM操作ごとに1行が表示されます。

DBインスタンスの場合、行は表示されません。 

V$ASM_CLIENT  

ASMインスタンスの場合は、ASMインスタンスによって管理されているディスク・グループを使用しているデータベースを識別します。

DBインスタンスの場合は、データベース内でオープンしているASMファイルが存在すると、ASMインスタンスごとに1行が表示されます。 

関連項目

これらすべての動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引