プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

CREATE DISKGROUP


注意:

このSQL文は、Oracle ASMを使用しており、Oracle ASMインスタンスを起動している場合にのみ有効です。この文の発行は、通常のデータベース・インスタンスからではなく、Oracle ASMインスタンスから行う必要があります。Oracle ASMインスタンスの起動の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

用途

CREATE DISKGROUP句を使用すると、ディスクのグループに名前を付け、そのグループをOracle Databaseが管理するように指定できます。Oracle Databaseは、ディスク・グループを論理単位として管理し、I/Oの均衡を保つために各ファイルを均等に分散します。また、ディスク・グループで使用可能なすべてのディスクにデータベース・ファイルを自動的に分散し、記憶域構成が変更されるたびに、自動的にストレージの均衡を再調整します。

この文を使用すると、ディスク・グループが作成され、1つ以上のディスクがディスク・グループに割り当てられ、ディスク・グループの初めてのマウントが実行されます。CREATE DISKGROUPは、ローカル・ノードのディスク・グループのみマウントします。後続のインスタンスで、Oracle ASMによって自動的にディスク・グループをマウントさせる場合は、初期化パラメータ・ファイルのASM_DISKGROUPS初期化パラメータの値に、そのディスク・グループ名を追加する必要があります。SPFILEを使用している場合、そのディスク・グループは自動的に初期化パラメータに追加されます。


関連項目:

  • ディスク・グループの変更については、「ALTER DISKGROUP」を参照してください。

  • Oracle ASMおよびディスク・グループを使用してデータベース管理を簡略化する方法については、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

  • 初期化パラメータ・ファイルへのディスク・グループ名の追加の詳細は、「ASM_DISKGROUPS」を参照してください。

  • Oracle ASM操作を監視する方法については、「V$ASM_OPERATION」を参照してください。

  • ディスク・グループの削除については、「DROP DISKGROUP」を参照してください。


前提条件

この文を発行するには、SYSASMシステム権限が必要です。

この文を発行する前に、オペレーティング・システムのフォーマット・ユーティリティを使用して、ディスクをフォーマットしておく必要があります。また、Oracle Databaseユーザーが読取り/書込み権限を持ち、ASM_DISKSTRINGを使用してディスクが検出可能であることを確認します。

ファイル・システムまたはRAWデバイスではなく、Oracle ASMディスク・グループにデータベース・ファイルを格納している場合、Oracle ASMインスタンスを構成および起動してディスク・グループを管理しないと、データベース・インスタンスがディスク・グループのファイルにアクセスできません。

各データベース・インスタンスは、データベースと同じノード上にある1つのOracle ASMインスタンスと通信します。同じノード上にある複数のデータベース・インスタンスが、1つのOracle ASMインスタンスと通信できます。

構文

create_diskgroup::=

create_diskgroup.gifの説明が続きます。
図「create_diskgroup.gif」の説明

qualified_disk_clause::=

qualified_disk_clause.gifの説明が続きます。
図「qualified_disk_clause.gif」の説明

(size_clause::=を参照)

セマンティクス

diskgroup_name

ディスク・グループ名を指定します。ディスク・グループには、データベース・スキーマ・オブジェクトと同じネーミング規則および制限が適用されます。データベース・オブジェクト名の詳細は、「データベース・オブジェクトのネーミング規則」を参照してください。ただし、ディスク・グループはスキーマ・オブジェクトではありません。ディスク・グループ名は、引用符で囲んだ場合も、大/小文字が区別されません。それらは常に内部的には大文字で格納されます。


注意:

ディスク・グループ名には引用識別子を使用しないことをお薦めします。SQL*PlusでCREATE DISKGROUP文を発行する場合はこのような引用識別子は許可されていますが、ディスク・グループを管理する他のツールでは有効でない場合があります。

REDUNDANCY句

REDUNDANCY句を使用すると、ディスク・グループの冗長レベルを指定できます。

  • NORMAL REDUNDANCYの場合、2つ以上の障害グループが存在する必要があります(次の「FAILGROUP句」を参照)。Oracle ASMでは、ディスク・グループ・テンプレートで指定された属性に従って、ディスク・グループのすべてのファイルの冗長性が提供されます。NORMAL REDUNDANCYディスク・グループでは、1つのグループが消失してもリカバリできます。ディスク・グループ・テンプレートの詳細は、「ALTER DISKGROUP」のdiskgroup_template_clausesを参照してください。

    REDUNDANCY句を指定しない場合、NORMAL REDUNDANCYがデフォルトになります。したがって、この句を指定しない場合、2つ以上の障害グループを作成する必要があります。それを作成しないと、作成操作は正常に実行されません。

  • HIGH REDUNDANCYの場合、少なくとも3つの障害グループが存在する必要があります。Oracle ASMでは、エクステントごとにミラー化された2つのコピーが存在する3方向ミラー化でミラーリングが行われます。HIGH REDUNDANCYディスク・グループでは、2つの障害グループが消失してもリカバリできます。

  • EXTERNAL REDUNDANCYは、Oracle ASMでディスク・グループの冗長性が提供されないことを示します。ディスク・グループを構成する各ディスクで冗長性を確保する(たとえばストレージ・アレイを使用する)か、ディスク障害が発生した場合にはディスク・グループのデータ損失を想定しておく(テスト環境など)必要があります。EXTERNAL REDUNDANCYを指定する場合、FAILGROUP句は指定できません。

ディスク・グループの作成後は、冗長性レベルを変更できません。

QUORUM | REGULAR

これらのキーワードを使用すると、障害グループまたはディスク指定を修飾できます。

  • REGULARディスク、またはクォーラム以外の障害グループ内のディスクには、任意のファイルを含めることができます。

  • QUORUMディスクまたはクォーラム障害グループ内のディスクには、データベース・ファイル、Oracle Cluster Registry(OCR)または動的ボリュームを含めることはできません。ただし、QUORUMディスクにCluster Synchronization Services(CSS)の投票ファイルは含めることができます。Oracle ASMは可能な場合は常に、投票ファイル用に、クォーラム・ディスクまたはクォーラム障害グループ内のディスクを使用します。

    クォーラム障害グループ内のディスクは、冗長性要件の確認時に考慮されません。

いずれのキーワードも指定しない場合、デフォルトでREGULARが使用されます。

障害グループを明示的に指定する場合は、キーワードFAILGROUPの前にQUORUMまたはREGULARを指定します。暗黙的に作成した障害グループとともにディスク・グループを作成する場合は、キーワードDISKの前にこれらのキーワードを指定します。


関連項目:

クォーラム・ディスクと標準ディスクおよび障害グループの詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

FAILGROUP句

この句を使用すると、1つ以上の障害グループの名前を指定できます。NORMALまたはHIGH REDUNDANCYを指定している場合にこの句を省略すると、Oracle Databaseは、自動的にディスク・グループの各ディスクを障害グループに追加します。障害グループの暗黙的な名前は、オペレーティング・システムに依存しないディスク名と同じです(「NAME句」を参照)。

EXTERNAL REDUNDANCYディスク・グループを作成している場合、この句は指定できません。

qualified_disk_clause

DISK qualified_disk_clauseを指定すると、ディスク・グループにディスクを追加できます。

search_string  ディスク・グループに追加するディスクごとに、オペレーティング・システム依存の検索文字列を指定します。Oracle ASMでは、この文字列を使用してディスクが検索されます。search_stringは、ASM_DISKSTRING初期化パラメータの文字列を使用した検索で戻されるディスクのサブセットを指している必要があります。search_stringが、Oracle Databaseユーザーが読取り/書込み権限を持っているディスクを指していない場合、Oracle ASMはエラーを戻します。また、異なるディスク・グループに割り当てられている1つ以上のディスクを指している場合、FORCEを指定していなければ、エラーが戻されます。

Oracle ASMでは、有効な追加候補のディスクごとにディスク・ヘッダーがフォーマットされ、このディスクが新規のディスク・グループのメンバーであることが示されます。


関連項目:

検索文字列の指定の詳細は、「ASM_DISKSTRING」初期化パラメータを参照してください。

NAME句 NAME句は、search_stringが1つのディスクを指す場合にのみ有効です。この句を使用すると、オペレーティング・システムに依存しないディスクの名前を指定できます。名前は、最大30文字の英数字で指定できます。最初の文字は、英字にする必要があります。ASMLIBでディスクにラベルを割り当てている場合にこの句を省略すると、ディスク名としてそのラベルが使用されます。ASMLIBでラベルを割り当てていない場合にこの句を省略すると、Oracle ASMは、「diskgroup_name_####」(####はディスク番号)という書式のデフォルト名を作成します。この名前を使用して、後続のOracle ASM操作でディスクを参照できます。

SIZE句 この句を使用すると、ディスクのサイズをバイト単位で指定できます。ディスク容量を超えるサイズを指定すると、Oracle ASMはエラーを戻します。ディスク容量よりも小さいサイズを指定した場合、Oracle ASMで使用されるディスク領域が制限されます。この句を指定しない場合、Oracle ASMはプログラム的にディスクのサイズを決定します。

FORCE FORCEを指定すると、Oracle ASMで、別のディスク・グループのメンバーであるディスクをディスク・グループに追加できます。


注意:

この方法でFORCEを使用すると、既存のディスク・グループが破棄される可能性があります。

この句を有効にするには、ディスクはディスク・グループのメンバーである必要があり、ディスクがマウントされたディスク・グループの一部であってはなりません。

NOFORCE NOFORCEを指定すると、Oracle ASMで、ディスクが別のディスク・グループのメンバーである場合にエラーを戻すことができます。デフォルトはNOFORCEです。

ATTRIBUTE句

この句を使用すると、ディスク・グループの属性値を設定できます。V$ASM_ATTRIBUTEビューを問い合せることによって、現在の属性値を確認できます。表14-1に、この句で設定できる属性を示します。属性値はすべて文字列です。

表14-1 ディスク・グループの属性

属性 有効な値 説明

ACCESS_CONTROL.ENABLED

trueまたはfalse

ディスク・グループでOracle ASMのファイル・アクセス制御を有効にするかどうかを指定します。trueに設定した場合、Oracle ASMファイルへのアクセスがアクセス制御の対象になります。falseに設定した場合、すべてのユーザーがディスク・グループ内のすべてのファイルにアクセスできます。他のすべての操作は、この属性とは関係なく動作します。デフォルト値はfalseです。

compatible.rdbms属性とcompatible.asm属性が両方とも11.2以上に設定されている場合、ALTER DISKGROUP ... SET ATTRIBUTE文でこの属性を設定できます。この属性は、ディスク・グループの作成時には設定できません。

ファイル・アクセス制御を既存のディスク・グループに対して設定した場合、作成済のファイルはすべてのユーザーからアクセス可能なままになります。これを避けるには、ALTER DISKGROUP SET PERMISSION文を実行して権限を制限します。

注意: この属性は、Oracle ASMのファイル・アクセス制御を管理するためにACCESS_CONTROL.UMASKとともに使用します。ACCESS_CONTROL.ENABLEDディスク属性を設定したら、ACCESS_CONTROL.UMASK属性で権限を設定する必要があります。

ACCESS_CONTROL.UMASK

3桁の数(各桁は0(ゼロ)、2または6)

Oracle ASMファイルの作成時に、そのファイルを所有するユーザー(最初の桁)、同じユーザー・グループ内のユーザー(2桁目)、およびそのユーザー・グループに属さない他のユーザー(3桁目)に対してマスクする権限を指定します。この属性は、ディスク・グループ内のすべてのファイルに適用されます。0(ゼロ)に設定すると、何もマスクされません。2に設定すると、書込み権限がマスクされます。6に設定すると、読取り権限と書込み権限の両方がマスクされます。デフォルト値は066です。

compatible.rdbms属性とcompatible.asm属性が両方とも11.2以上に設定されている場合、ALTER DISKGROUP ... SET ATTRIBUTE文でこの属性を設定できます。この属性は、ディスク・グループの作成時には設定できません。

ファイル・アクセス制御を既存のディスク・グループに対して設定した場合、作成済のファイルはすべてのユーザーからアクセス可能なままになります。これを避けるには、ALTER DISKGROUP SET PERMISSION文を実行して権限を制限します。

注意: この属性は、Oracle ASMのファイル・アクセス制御を管理するためにACCESS_CONTROL.ENABLEDとともに使用します。ACCESS_CONTROL.UMASKを設定する前に、ACCESS_CONTROL.ENABLEDtrueに設定する必要があります。

AU_SIZE

サイズ(バイト単位)。有効な値は、1Mから64Mの2の累乗です。例: 4M、4194304

割当て単位サイズを指定します。この属性は、ディスク・グループの作成時にのみ設定でき、ALTER DISKGROUP文で変更することはできません。

COMPATIBLE.ADVM

有効なOracle Databaseバージョン番号脚注 1 

ディスク・グループにOracle ADVMボリュームを含めることができるかどうかを決定します。11.2以上の値を設定する必要があります。この属性を設定する前に、COMPATIBLE.ASMの値を11.2以上に設定しておく必要があります。また、Oracle ADVMボリューム・ドライバをロードしておく必要があります。

デフォルトでは、COMPATIBLE.ADVM属性の値は、設定するまでは空です。

COMPATIBLE.ASM

有効なOracle Databaseバージョン番号脚注 1

Oracle ASMインスタンスでディスク・グループを使用するために必要な最小ソフトウェア・バージョンを指定します。この設定は、ディスク上のOracle ASMメタデータのデータ構造の形式にも影響します。

Oracle Database 11gのOracle ASMでは、CREATE DISKGROUP SQL文、ASMCMD mkdgコマンド、およびOracle Enterprise Managerの「ディスク・グループの作成」ページを使用する場合のCOMPATIBLE.ASM属性のデフォルト設定は10.1です。ASMCAを使用してディスク・グループを作成する場合、デフォルト設定は11.2です。

COMPATIBLE.RDBMS

有効なOracle Databaseバージョン番号脚注 1

すべてのデータベース・インスタンスでディスク・グループを使用するために必要なCOMPATIBLEデータベース初期化パラメータの最小設定を指定します。

COMPATIBLE.RDBMS属性を設定する前に、そのディスク・グループにアクセスするすべてのデータベースで、COMPATIBLE初期化パラメータの値がCOMPATIBLE.RDBMSの新しい設定値以上に設定されていることを確認します。たとえば、データベースのCOMPATIBLE初期化パラメータが11.1または11.2に設定されている場合、COMPATIBLE.RDBMSは、10.1から11.1の間(これらの値を含む)の任意の値に設定できます。

Oracle Database 11gのOracle ASMでは、SQLのCREATE DISKGROUP文、ASMCMD mkdgコマンド、ASMCAの「ディスク・グループの作成」ページ、およびOracle Enterprise Managerの「ディスク・グループの作成」ページを使用する場合のCOMPATIBLE.RDBMS属性のデフォルト設定は10.1です。

DISK_REPAIR_TIME

0から136年

ディスクは、オフラインに切り替えられると、デフォルトの時間が経過した後にOracle ASMによって削除されます。compatible.rdbmscompatible.asmの両方の属性が11.1以上に設定されている場合、ディスクを修復してオンラインに戻すことができるように、ALTER DISKGROUP ... SET ATTRIBUTE文でdisk_repair_time属性を設定して、そのデフォルトの時間を変更できます。この属性は、ディスク・グループの作成時には設定できません。

時間は分単位(M)または時間単位(H)で指定できます。指定した経過時間は、ディスク・グループがマウントされているときにのみ加算されます。単位を省略した場合、デフォルトはHになります。この属性を省略し、compatible.rdbmscompatible.asmの両方が11.1以上に設定されている場合、デフォルトは3.6Hになります。それ以外の場合、ディスクは即時に削除されます。この属性は、ALTER DISKGROUP ... OFFLINE DISK文およびDROP AFTER句によって上書きできます。

注意: disk_repair_timeの現行の値を使用してディスクがオフラインに切り替えられ、その後この属性の値が変更された場合、変更された値がOracle ASMによってディスク・オフライン・ロジックで使用されます。

参照: 詳細は、「ALTER DISKGROUP」の「disk_offline_clause」および『Oracle Automatic Storage Management管理者ガイド』を参照してください。

SECTOR_SIZE

ディスク・グループ内のディスクのセクター・サイズ。有効な値は、'512'、'4096'および'4K'。

ディスク・グループ内のすべてのディスクのセクター・サイズは、指定した属性値と同じである必要があります。CREATE DISKGROUP文の処理時に、Oracle ASMは、この文で指定したすべてのディスクがディスク・グループに追加される前に、そのセクター・サイズをオペレーティング・システムに問い合せて、ディスク・グループが同じセクター・サイズを持つディスクによって構成されるよう確認します。この属性で指定したサイズと異なるセクター・サイズを持つディスクが検出された場合、文は正常に実行されません。ディスク・グループのマウント時にも、同様のチェックが実行されます。CREATE DISKGROUP文でこの属性を指定しなかった場合、指定したすべてのディスクのセクター・サイズが同一であるかぎり、Oracle ASMは作成操作を続行し、そのサイズがディスク・グループのセクター・サイズとみなされます。

ALTER DISKGROUP ... ADD DISK文を使用して既存のディスク・グループに新規ディスクを追加する場合も、新規ディスクのセクター・サイズはディスク・グループ属性と同じ値である必要があります。Oracle ASMはこれを検証し、追加するディスクのいずれかが異なるセクター・サイズであることが検出されると、ALTER DISKGROUP文は正常に実行されません。

この属性の値を設定することで、Oracle ASMがディスク・グループ内のすべてのディスクの値を想定することなく、ディスク・グループに任意のセクター・サイズを設定できます。結果として、ユーザーは、V$ASM_ATTRIBUTEビューのSECTOR_SIZE列を問い合せて、ディスク・グループに新規ディスクを追加する前にセクター・サイズを確認できます。


脚注 1 有効なOracle Databaseリリース番号の最初の2桁以上を指定してください。有効なバージョン番号の指定の詳細は、『Oracle Database管理者ガイド』を参照してください。たとえば、互換性を10.2または11.2として指定できます。


関連項目:

これらの属性設定の管理の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

次の例では、ASM_DISKSTRINGパラメータは/devices/disks/c*のスーパーセットであり、/devices/disks/c*がOracle ASMディスクとして使用される1つ以上のデバイスを指し、Oracle Databaseユーザーはディスクに対する読取り/書込み権限を持っていることを想定しています。


関連項目:

Oracle ASMおよびディスク・グループを使用してデータベース管理を簡略化する方法については、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

ディスク・グループの作成例: 次の文は、Oracle ASMディスク・グループdgroup_01を作成します。このディスク・グループには、Oracle ASMによって冗長性が提供されておらず、search_stringと一致するすべてのディスクが含まれています。

CREATE DISKGROUP dgroup_01
  EXTERNAL REDUNDANCY
  DISK '/devices/disks/c*';