CREATE DISKGROUP

ノート:

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

目的

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

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

関連項目:

前提条件

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

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

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

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

構文

create_diskgroup::=

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つの障害グループが消失してもリカバリできます。

  • FLEX REDUNDANCYディスク・グループ・タイプを指定すると、ディスク・グループを作成した後、データベースによって独自の冗長性が指定されることが許可されます。ファイルを作成した後で、その冗長性を変更することもできます。このタイプのディスク・グループでは、Oracle ASMファイル・グループおよび割当て制限グループがサポートされます。フレックス・ディスク・グループには、3つ以上の障害グループが存在する必要があります。フレックス・ディスク・グループに含まれる障害グループの数が5個より少ない場合、1つが消失してもリカバリできます。それ以外の場合は、2つの障害グループが消失してもリカバリできます。フレックス・ディスク・グループを作成するには、COMPATIBLE.ASMおよびCOMPATIBLE.RDBMSディスク・グループ属性が12.2以上に設定されている必要があります。

  • EXTENDED REDUNDANCYは、拡張クラスタ環境で可用性が高いことに加えて、フレックス・ディスク・グループのすべての機能を持つディスク・グループです。クラスタには、物理的に食べられた複数のサイトにまたがるノートがあります。詳細は、「Oracle ASM拡張ディスク・グループについて」を参照してください。

    SITEキーワードを使用すると、拡張ディスク・グループ内のファイルおよびファイル・グループの冗長性を、ディスク・グループごとではなく、サイトごとに指定できます。

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

作成したディスク・グループの冗長性レベルを後で変更することはできませんが、例外として、標準冗長性および高冗長性のディスク・グループをフレックス・ディスク・グループに変換できます。詳細は、「ALTER DISKGROUP」の「convert_redundancy_clause」を参照してください。

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は、「diskgroupname_####」(####はディスク番号)という書式のデフォルト名を作成します。この名前を使用して、後続のOracle ASM操作でディスクを参照できます。

SIZE句

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

FORCE

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

ノート:

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

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

NOFORCE

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

ATTRIBUTE句

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

表13-2 ディスク・グループの属性

属性 有効な値 説明

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です。

CONTENT.CHECK

trueまたはfalse

ディスク・グループのリバランスのためにデータ・コピー操作を実行する際のコンテンツ・チェックを有効化(true)または無効化(false)します。デフォルト値はfalseです。この属性は、ディスク・グループの作成時には設定できません。

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以上に設定されている場合、デフォルトは12Hになります。それ以外の場合、ディスクは即時に削除されます。この属性は、ALTER DISKGROUP ... OFFLINE DISK文およびDROP AFTER句によって上書きできます。

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

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

FAILGROUP_REPAIR_TIME

<number>m (分数)または<number>h (時間数)

ディスク・グループ内の障害グループのデフォルトの修復時間を指定します。Oracle ASMで障害グループ全体が失敗したと判別される場合、障害グループの修復時間が使用されます。デフォルト値は、24時間(24h)です。

ALTER DISKGROUP OFFLINE DISK文のDROP AFTER句などでディスクに指定された修復時間がある場合は、そのディスク修復時間が障害グループの修復時間に優先します。

この属性は、ディスク・グループの変更時にのみ設定でき、標準冗長性および高冗長性のディスク・グループにのみ適用できます。

LOGICAL_SECTOR_SIZE

512、4096または4K

ディスク・グループの論理セクター・サイズを設定します。この値は、ディスク・グループが受け入れることのできる最小許容I/Oを指定します。デフォルト値は、ディスク・グループに参加するディスクから推定されます。

このディスク・グループ属性をディスク・グループの作成中に設定するか、またはディスク・グループの作成後に変更するには、COMPATIBLE.ASMディスク・グループ属性を12.2以上に設定する必要があります。

PHYS_META_REPLICATED

trueまたはfalse

ディスク・グループのレプリケーション・ステータスを追跡します。ディスク・グループのOracle ASM互換性が12.0以降に昇格されていると、各ディスクの物理メタデータ(ディスク・ヘッダー、表のブロックの空き領域、表のブロックの割当てなど)がレプリケートされます。このレプリケーションは、オンライン非同期で実行されます。ディスク・グループに含まれる各ディスクの物理メタデータがレプリケートされると、Oracle ASMはPHYS_META_REPLICATEDtrueに設定します。

このディスク・グループ属性は、Oracle ASMディスク・グループ互換性(COMPATIBLE.ASM)が12.0以上に設定されているディスク・グループでのみ定義されています。この属性は読取り専用であり、情報提供のみを目的としています。この値は、設定や変更ができません。

PREFERRED_READ.ENABLED

trueまたはfalse

物理的に離れた複数サイトにわたるノードを含むOracle拡張クラスタでは、ディスク・グループに対して優先読取り機能を有効化するかどうかは、PREFERRED_READ.ENABLEDディスク・グループ属性によって制御します。優先読取り機能が有効化されている場合、この機能により、インスタンスがそれ自体と同じサイトにあるディスクを特定して読み取ることができるため、パフォーマンスが向上することがあります。拡張クラスタの場合、デフォルト値はtrueです。拡張されていないクラスタ(1つの物理サイトのみ)の場合、優先読取りは無効(false)です。優先読取りステータスは、拡張、標準、高およびフレックス冗長性ディスク・グループに適用されます。

このディスク・グループ属性は、Oracle ASMディスク・グループ互換性(COMPATIBLE.ASM)が12.2以上に設定されているディスク・グループでのみ定義されています。

SECTOR_SIZE

512、4096または4K

ディスク・グループの物理セクター・サイズを設定します。ディスク・グループ内のすべてのディスクは、この物理セクター・サイズである必要があります。デフォルト値は、ディスク・グループに参加するディスクから取得されます。

このディスク・グループ属性をディスク・グループの作成中に設定するには、COMPATIBLE.ASMおよびCOMPATIBLE.RDBMSディスク・グループ属性を11.2以上に設定する必要があります。ディスク・グループの作成後にこのディスク・グループ属性を変更するには、COMPATIBLE.ASMディスク・グループ属性を12.2以上に設定する必要があります。

THIN_PROVISIONED

trueまたはfalse

ディスク・グループのリバランスの完了後に未使用の記憶域領域を破棄する機能を有効化(true)または無効化(false)します。デフォルト値はfalseです。

CONTENT_HARDCHECK trueまたはfalse CONTENT_HARDCHECKは、ディスク・グループのリバランスのためにデータ・コピー操作を実行する際のHardware Assisted Resilient Data (HARD)チェックを有効化または無効化します。この属性は、ディスク・グループの変更時にのみ設定できます。

脚注 1

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

関連項目:

これらの属性設定の管理の詳細は、『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*';