Oracle ASMのミラー化およびディスク・グループ冗長性

この項では、次の項目について説明します。

ミラー化、冗長性および障害グループ・オプション

ファイルに対してミラー化を指定すると、Oracle ASMによりファイル・エクステントの冗長コピーが自動的に個別の障害グループに格納されます。障害グループは、標準冗長性、高冗長性、フレックス冗長性および拡張冗長性のディスク・グループに適用されます。ディスク・グループを作成または変更する場合、ディスク・グループごとに障害グループを定義できます。

Oracle ASMの冗長性レベルに基づいたディスク・グループ・タイプが複数あります。表4-2に、そのタイプと、サポートされるミラー化レベルおよびデフォルトのミラー化レベルを示します。デフォルトのミラー化レベルは、異なるミラー化レベルを指定しないかぎり、各ファイルの作成時に使用されるミラー化レベルを示します。

表4-2 Oracle ASMディスク・グループ・タイプのミラー化オプション

ディスク・グループ・タイプ サポートされるミラー化レベル デフォルトのミラー化レベル

外部冗長性

非保護(なし)

非保護

標準冗長性

双方向、3方向、非保護(なし)

双方向

高冗長性

3方向

3方向

フレックス冗長性

双方向、3方向、非保護(なし)

双方向(新規作成)

拡張冗長性

双方向、3方向、非保護(なし)

双方向

標準および高のディスク・グループ・タイプの場合、冗長性レベルによってディスク・グループのディスマウントやデータの消失なしに許容されるディスク障害の数が制御されます。各ファイルは固有の冗長性に基づいて割り当てられますが、デフォルトはディスク・グループから提供されます。

フレックス・グループ・タイプの場合、ディスマウント前に許容される障害の数は障害グループの数によって決まります。障害グループが5つ以上の場合、許容されるディスク障害は2つです。障害グループが3つまたは4つの場合、許容されるディスク障害は1つです。

拡張ディスク・グループの場合、各サイトはフレックス・ディスク・グループと同様です。サイトに5つ以上の障害グループがある場合、サイトが損なわれる前に、サイト内の2つのディスク障害を許容できます。サイトに3つまたは4つの障害グループがある場合、サイトが損なわれる前に、サイトは1つのディスク障害を許容できます。2つのサイトが損なわれると、ディスク・グループはディスマウントします。拡張ディスク・グループは、データ・サイトごとに最低でも3つの障害グループが必要です。

フレックス・ディスク・グループおよび拡張ディスク・グループの場合、ミラー化は、ディスク・グループそのものではなく、ディスク・グループ内のファイルの可用性を表します。たとえば、障害グループが5つあるフレックス・ディスク・グループ内のファイルが保護されていない場合、障害が1つ発生すると、ディスク・グループはマウントされたままですが、ファイルは使用不可になります。

冗長性レベルは次のとおりです。

  • 外部冗長性

    Oracle ASMではミラー化冗長性は提供されません。RAID機能を備えたストレージ・システムを使用します。書込みエラーが発生すると、ディスク・グループは強制的にディスマウントされます。ディスク・グループを正常にマウントするには、すべてのディスクを検出する必要があります。

  • 標準冗長性

    Oracle ASMは、デフォルトで双方向ミラー化を行います。つまり、すべてのファイルがミラー化されるため、各エクステントのコピーが2つ存在することになります。1つのOracle ASMディスクの損失は許容されます。必要に応じて、3方向ミラー化または非保護ミラー化を選択できます。

    NORMAL冗長性ディスク・グループ内でファイルにHIGH冗長性(3方向ミラーリング)を指定すると、あるディスクの不良ディスク・セクターおよび別のディスクの障害からの保護が追加されます。ただし、このシナリオは、2つのディスクの障害から保護するわけではありません。

  • 高冗長性

    Oracle ASMは、デフォルトで3方向(トリプル)ミラー化を行います。異なる障害グループの2つのOracle ASMディスクの損失は許容されます。

  • フレックス冗長性

    Oracle ASMは、新規作成されたフレックス・ディスク・グループに対してデフォルトで双方向ミラー化を行います。移行されたフレックス・ディスク・グループの場合、デフォルト値は移行前に標準冗長性または高冗長性のディスク・グループのテンプレート値から取得されます。標準冗長性からの移行の場合、テンプレートのデフォルトが変更されていなければ、フレックスのデフォルトは双方向ミラー化です。高冗長性からの移行の場合、テンプレートのデフォルトが変更されていなければ、フレックスのデフォルトは3方向ミラー化です。

  • 拡張冗長性

    Oracle ASMは、デフォルトで双方向ミラー化を行います。冗長性設定は、データ・サイト内の冗長性を表します。例: 2つのデータ・サイトの拡張ディスク・グループに双方向にミラー化されたファイルが存在する場合、ファイルのコピーが4つ(各データ・サイトに2つのコピー)存在します。

フレックス・ディスク・グループおよび拡張ディスク・グループのOracle ASMファイル・グループは、異なる冗長性レベルを持つことができます。

ディスク・グループのファイル・タイプ・テンプレートに指定されたファイルのミラー化(冗長性属性値)を満たすのに十分なオンラインの障害グループがない場合、Oracle ASMでは、できるかぎり多くのミラー・コピーを割り当て、その後十分なオンラインの障害グループが使用できるようになったときに残りのミラーを割り当てます。

障害グループを使用すると、メタデータおよびユーザー・データをミラー化できます。使用環境における障害グループの数が十分でない場合、システムの信頼性が損われる可能性があります。

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

関連項目:

Oracle ASMの障害グループ

障害グループは、データのミラー・コピーを格納するために使用されます。Oracle ASMが標準冗長性のファイルにエクステントを割り当てる場合、プライマリ・コピーとセカンダリ・コピーが割り当てられます。Oracle ASMにより、プライマリ・コピー以外に、別の障害グループに含まれるようにセカンダリ・コピーを格納するディスクが選択されます。各コピーは別の障害グループのディスク上にあるため、障害グループのすべてのディスクで同時に障害が発生してもデータは失われません。

障害グループはディスク・グループのディスクのサブセットです。これらのディスクはハードウェアを共有するため、同時に障害が発生する可能性があります。共通のハードウェアの障害は許容される必要があります。大きなJBOD(単純ディスク束)アレイの単一リムーバブル・トレイにある4つのドライブは、この4つのドライブで同時に障害が発生したときにトレイを削除できるため、同じ障害グループ内にある必要があります。キャビネットに冗長電源と冗長クーリングが装備され、キャビネット全体の障害から保護する必要がない場合、同じキャビネット内のドライブを複数の障害グループに置くことができます。ただし、Oracle ASMのミラー化は、キャビネット全体を破損させるコンピュータ・ルームの火災に対する保護を目的としていません。

障害グループは、明示的に作成されない場合でも常に存在します。ディスクの障害グループを指定しない場合、そのディスクのみを含む新しい障害グループが自動的に作成されます。ただし、Oracle Exadataセル上のディスクを含むディスク・グループを除きます。

標準冗長性のディスク・グループには、少なくとも2つの障害グループが含まれる必要があります。高い冗長性のディスク・グループには3つ以上の障害グループが含まれている必要があります。ただし、より多くの障害グループを使用することをお薦めします。障害グループの数が少ないか、容量が均一でない障害グループの場合、使用可能な記憶域のすべてを十分に使用できない割当ての問題が発生する可能性があります。

パートナ・ステータス表(PST)の必要な数のコピーを維持し、ストレージ・ハードウェアの障害に関する堅牢性を確保するには、標準冗長性ディスク・グループでは3つ以上の障害グループ、高冗長性ディスク・グループでは5つ以上の障害グループを指定することをお薦めします。

システム障害時、標準冗長性ディスク・グループの3つの障害グループにより、3つのPST間での比較が実行され、最新かつ正しいPSTバージョンが正確に判別されますが、これは2つのPST間のみの比較では不可能です。高冗長性ディスク・グループと同様に、2つの障害グループがオフラインの場合、Oracle ASMは残りの3つのPST間で比較を実行できます。

追加の障害グループを構成したことでストレージ容量の管理に問題が発生した場合、クォーラム障害グループを追加の障害グループとして使用し、PSTのコピーを格納できます。クォーラム障害グループでは、他の障害グループと同じ容量を必要としません。

障害グループは、標準障害グループまたはクォーラム障害グループとして指定できます。クォーラム障害グループの詳細は、Oracle ASMディスク・グループへのOracle Cluster Registryおよび投票ファイルの格納を参照してください。

関連項目:

Oracle Exadata障害グループの詳細は、Oracle Exadataのドキュメントを参照してください。

Oracle ASMによるディスク障害の管理方法

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

  • ディスクは最初にオフラインになった後、自動的に削除されます。この場合、ディスク・グループはマウントされて使用可能なままです。また、ミラー化のため、ディスク・グループのすべてのデータは依然としてアクセス可能です。ディスクの削除操作の後、Oracle ASMによりリバランスが実行され、障害が発生したディスク上のデータの冗長性が完全にリストアされます。

  • ディスク・グループ全体が自動的にディスマウントされます。つまり、データはアクセス不可能になります。

障害グループの使用に関するガイドライン

障害グループの使用に関するガイドラインは、次のとおりです。

  • ディスク・グループ内の各ディスクは、1つの障害グループにのみ属することができます。

  • 障害グループはすべて同じサイズである必要があります。障害グループのサイズが異なると、可用性が損われることがあります。

  • Oracle ASMでは、標準冗長性のディスク・グループを作成する場合は2つ以上の障害グループが、高冗長性のディスク・グループの場合は3つ以上の障害グループが必要です。

障害グループに関するよくある質問

この項では、障害グループに関してよくある質問について説明します。内容は次のとおりです。

作成する必要のある障害グループの数は

作成する障害グループ数の選択は、データを失わずに許容する必要のある障害のタイプによって決まります。通常、ディスクの数が少ない場合(20未満など)、デフォルトの障害グループ作成の使用が最適です。この場合、ディスクはすべて独自の障害グループに入れられます。

ディスク数が少ない場合を対象としたデフォルトの障害グループ作成の使用は、ディスク数が多くても、問題が主にディスク障害である場合に適しています。たとえば、ディスク・グループが複数の小規模なモジュール型ディスク・アレイで構成されている場合があります。1つのモジュール型アレイ全体に障害が発生してもシステムを稼働し続ける必要がある場合、障害グループは1つのモジュール内のすべてのディスクで構成される必要があります。1つのモジュールに障害が発生した場合、このモジュール上のすべてのデータが他のモジュールに再配置され、冗長性がリストアされます。データの可用性を損わずに障害を許容する必要のある共有ハードウェアに複数のディスクが依存している場合、これらのディスクは同じ障害グループに入れる必要があります。

同時障害発生後に複数の障害グループをリカバリする方法は

同時障害は、複数の障害グループで使用される1つのハードウェアに障害がある場合に発生する可能性があります。このような障害では通常、すべてのディスクが使用できない場合、ディスク・グループを強制的にディスマウントします。

外部、標準または高冗長性を使用する必要のある状況は

Oracle ASMのミラー化はデータベース・サーバーで実行されるため、外部冗長性を使用してこの処理の負荷をストレージ・ハードウェアのRAIDコントローラに分散することをお薦めします。標準冗長性は、次のような状況で使用できます。

  • ストレージ・システムにRAIDコントローラがない

  • ストレージ・アレイ間でミラー化を行う

  • クラスタ構成が拡張されている

通常、Oracle ASMのミラー化は、サード・パーティの論理ボリューム・マネージャに対するOracleの代替手段です。Oracle ASMのミラー化により、Oracle Database環境でのレイヤーの追加デプロイによるソフトウェアの複雑さを排除します。

読取りおよび書込みI/OエラーからのOracle ASMのリカバリ

読取りエラーは、ディスク全体にアクセスできなくなるか、正常なディスクでのメディア破損の結果、発生する可能性があります。Oracle ASMは、ディスク上の破損セクターでの読取りエラーからのリカバリを試みます。データベースまたはOracle ASMによる読取りエラーで、Oracle ASMインスタンスが不良ブロックの再マッピングを試みると、Oracle ASMではエクステントの正常なコピーを読み取り、読取りエラーが発生したディスクにこれをコピーします。

  • 同じ場所への書込みに成功すると、基礎となる割当て単位(セクター)は正常とみなされます。これは、基礎となるディスクで独自に不良ブロック再割当てが行われたためです。

  • 書込みに失敗すると、Oracle ASMでは同じディスクの新しい割当て単位にそのエクステントの書込みを試みます。この書込みに成功すると、元の割当て単位には使用禁止のマークが付けられます。書込みに失敗すると、ディスクはオフラインになります。

Oracle ASMベースのミラー化に特有の利点は、データベース・インスタンスでミラー化が認識される点です。不良チェックサムや間違ったシステム変更番号(SCN)などの様々な論理破損の場合、データベース・インスタンスは、ミラー側で有効なコンテンツを探しながら、エラーなく続行します。読取りが発生したデータベースでのプロセスが、データの整合性を保証するために適切なロックを取得できる場合、正しいデータがすべてのミラー側に書き込まれます。

書込みエラーが発生すると、データベース・インスタンスからOracle ASMインスタンスに、ディスク・オフライン・メッセージが送信されます。

  • データベースが1つ以上のエクステント・コピーへの書込みを正常に完了でき、Oracle ASMからオフライン・ディスクの確認を受信した場合、その書込みは成功したとみなされます。

  • すべてのミラー側への書込みが失敗した場合、データベースでは、書込みエラーに応じて、表領域をオフラインにするなどの適切な処置が取られます。

Oracle ASMインスタンスがデータベース・インスタンスから書込みエラー・メッセージを受信するか、Oracle ASMインスタンス自体に書込みエラーが発生した場合、Oracle ASMインスタンスでは、ディスクのオフライン化が試みられます。Oracle ASMは、ディスクのパートナでオフラインのものがあるかどうかを確認するために、パートナ・ステータス表(PST)を参照します。オフラインになっているパートナが多すぎる場合、Oracle ASMによりそのディスク・グループは強制的にディスマウントされます。それ以外の場合は、Oracle ASMはディスクをオフラインにします。

ASMCMD remapコマンドは、ディスクに一連の不良セクターが存在し、Oracle ASMまたはデータベースI/Oの前に修正する必要がある状況に対応するために導入されましたremapコマンドの詳細は、remapコマンドを参照してください。

Oracle ASMの高速ミラー再同期

一時的なディスク・パス障害後にOracle ASMディスク・グループの冗長性をリストアする処理には、時間がかかります。このことは特に、リカバリ・プロセスにOracle ASMディスク・グループ全体の再構築が必要である場合は顕著です。Oracle ASMの高速ミラー再同期を行うと、このような状況下で障害が発生したディスクの再同期に要する時間を大幅に短縮できます。障害が発生したディスクを置換する場合、Oracle ASMディスクのエクステントを簡単に再同期できます。

注意:

この機能を使用するには、ディスク・グループの互換性属性を11.1以上に設定する必要があります。

障害グループが一時的に使用できなくなる問題は、Oracle ASMの高速ミラー再同期機能によってリカバリすることが可能な、一時的障害とみなされます。一時的障害は、たとえば、ディスク・パスの不具合(ケーブル障害、ホスト・バス・アダプタ障害、コントローラ障害など)や、ディスク電源の停電などによって発生します。

Oracle ASMの高速再同期では、停止時にオフラインのディスクのエクステントに対して保留になっている変更が追跡されます。これらのエクステントは、ディスクがオンラインに戻ったときに再同期されます。

デフォルトでは、ディスクはオフラインになってから3.6時間でOracle ASMにより削除されます。この削除操作は、DISK_REPAIR_TIMEディスク・グループ属性を設定することによって遅らせることもできます。つまり、ディスクを修復してオンラインに戻すまでの時間間隔をこの属性に指定できます。この時間は、分単位(mM)または時間単位(hH)で指定できます。単位を省略すると、デフォルトでは時間単位になります。DISK_REPAIR_TIMEディスク・グループ属性は、ALTER DISKGROUP SQL文を使用してのみ設定でき、標準冗長性および高冗長性のディスク・グループにのみ適用されます。

この属性が明示的に設定されていない場合、明示的なDROP AFTER句なしでOFFLINEモードに設定されたディスクには、デフォルト値(3.6h)が適用されます。I/OエラーによってオフラインになったディスクにはDROP AFTER句がありません。

DISK_REPAIR_TIME属性のデフォルト値は、多くの環境に適合すると思われる予測値です。ただし、この属性値は、実際の環境で一時的なディスク・エラーを修正するために必要と考えられ、データの冗長性の低下を許容できる時間に設定してください。

経過時間(ディスクがOFFLINEモードになってからの時間)は、オフラインになったディスクが属しているディスク・グループがマウントされている場合にのみ増分されます。V$ASM_DISKREPAIR_TIMER列には、オフラインのディスクが削除されるまでの残り時間(秒単位)が表示されます。指定した時間を経過すると、Oracle ASMによりディスクは削除されます。この属性は、ALTER DISKGROUP OFFLINE DISK文およびDROP AFTER句を使用してオーバーライドできます。

注意:

ディスクがI/O(書込み)エラーのためにOracle ASMによってオフラインにされた場合、またはDROP AFTER句のないALTER DISKGROUP... OFFLINE文によって明示的にオフラインにされた場合は、ディスク・グループのDISK_REPAIR_TIME属性に指定された値が使用されます。

DISK_REPAIR_TIME属性の変更はオフライン・ディスクには影響しません。属性が更新された後にオフラインになるディスクには、この新しい値が使用されます。この動作は、Oracle ASMのアラート・ログを参照することによって確認できます。

オフラインのディスクが2回目にオフラインになると、経過時間はリセットされてから再開されます。このディスクに対してDROP AFTERを使用して別の時間を指定すると、最初の値がオーバーライドされ、新しい値が適用されます。OFFLINEモードのディスクは、ALTER DISKGROUP DROP DISK文では削除できません。削除しようとするとエラーが戻されます。なんらかの理由(ディスクを修復できない場合など)により、修復時間が経過する前にディスクを削除する必要がある場合、0hまたは0mを指定したDROP AFTER句を使用して2回目のOFFLINE文を発行して、ディスクを即時に削除できます。

ALTER DISKGROUPを使用して、DISK_REPAIR_TIME属性を特定の時間または分の値(4.5時間または270分など)に設定できます。次に例を示します。

ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '4.5h'
ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '270m'

ディスクを修復した後、SQL文ALTER DISKGROUP ONLINE DISKを実行します。この文により、修復したディスク・グループがオンラインに戻され、新しい書込みが失われないよう書込みが有効になります。また、この文により、冗長コピー上で失効とマークされているすべてのエクステントをコピーする手順が開始されます。

Oracle ASMインスタンスがローリング・アップグレード・モードのときにディスクがオフラインになると、ローリング・アップグレードが終了するまでディスクはオフラインのままであり、Oracle ASMクラスタがローリング・アップグレード・モードでなくなるまでディスクの削除タイマーは停止されます。ディスクをオフラインにして、オンラインに戻す例を次に示します。

次の例では、ディスクDATA_001をオフラインにして、5分後に削除します。

ALTER DISKGROUP data OFFLINE DISK DATA_001 DROP AFTER 5m;

次の例では、ディスクDATA_001をオフラインにして、DISK_REPAIR_TIMEで指定した時間の経過後にこのディスクを削除します。

ALTER DISKGROUP data OFFLINE DISK DATA_001;

この例では、障害グループFG2のディスクをすべてオフラインにして、DISK_REPAIR_TIMEで指定した時間の経過後にこれらを削除します。DROP AFTER句を使用した場合、指定時間の経過後にこのディスクは削除されます。

ALTER DISKGROUP data OFFLINE DISKS IN FAILGROUP FG2;

次の例では、障害グループFG2のディスクをすべてオンラインに戻します。

ALTER DISKGROUP data ONLINE DISKS IN FAILGROUP FG2;

この例では、ディスクDATA_001のみをオンラインに戻します。

ALTER DISKGROUP data ONLINE DISK DATA_001;

この例では、ディスク・グループDATAのディスクをすべてオンラインに戻します。

ALTER DISKGROUP data ONLINE ALL;

ALTER DISKGROUP ONLINE文の実行中にV$ASM_OPERATIONビューに問い合せると、現在実行している操作の名前と状態が表示されます。たとえば、次のSQL問合せでは、オンライン操作中のPASS列の値を示しています。

SQL> SELECT GROUP_NUMBER, PASS, STATE FROM V$ASM_OPERATION;
 
GROUP_NUMBER PASS      STAT
------------ --------- ----
           1 RESYNC    RUN
           1 REBALANCE WAIT
           1 COMPACT   WAIT

オフライン操作では、V$ASM_OPERATIONビュー問合せでの表示は生成されません。

FAILGROUP_REPAIR_TIMEおよびCONTENT.TYPEディスク・グループ属性を設定できます。FAILGROUP_REPAIR_TIMEディスク・グループ属性は、ディスク・グループ内の障害グループのデフォルトの修復時間を指定します。CONTENT.TYPEディスク・グループ属性は、ディスク・グループに格納される予定のデータのタイプを指定します。これらの属性は、ASMCA、ASMCMDのmkdg、またはSQLのCREATEおよびALTER DISKGROUP文を使用して設定できます。

ASMCMDのlsopコマンドは、再同期の見積時間を表示します。リバランスの各フェーズ(ディスク再同期、リバランスおよびデータ比較)用に、V$ASM_OPERATION表に別々の行があります。

ASMCMDのonlineコマンドには、オンライン操作の指数を指定するためのpowerオプションがあります。SQLのALTER DISKGROUP REPLACE DISK文にも指数オプションがあります。

ASMCMDのchdgコマンドでは、addおよびdropタグの他に、replaceオプションが提供されます。ASMCMDのmkdgコマンドには、障害グループをオフラインにする時間を指定するための追加の時間パラメータ(-t)があります。

関連項目:

優先読取りの障害グループ

Oracle ASM障害グループを構成する場合、ノードが読み取るエクステントがセカンダリ・エクステントであっても、最も近いエクステントから読み取った方が効率的である場合があります。つまり、ノードからは遠い可能性があるプライマリ・コピーから読み取るのではなく、セカンダリ・エクステントがノードに近ければ、そこから読み取るようOracle ASMを構成できます。優先読取りの障害グループ機能の使用は、拡張クラスタにおいて最も役に立ちます。

この機能を使用する場合、拡張クラスタ内のノードに対してローカルであるディスクからミラー化されたエクステント・コピーを1つ以上構成することをお薦めします。ただし、1つのインスタンスに優先される障害グループが、同じOracle RACデータベース内の別のインスタンスに対してはリモートである可能性があります。優先読取り障害グループのパラメータ設定は、インスタンス固有です。

注意:

物理的に切り離された複数のサイトに広がるノードで構成されるOracle Extended Clusterでは、PREFERRED_READ.ENABLEDディスク・グループ属性によって優先読取り機能をディスク・グループに対して有効にするかどうかを制御します。優先読取り機能が有効である場合、この機能により、インスタンスでは自身と同じサイトにあるディスクを特定し、そこから読み取ることができるため、パフォーマンスが向上します。PREFERRED_READ.ENABLEDが有効になっていてもいなくても、Oracle ASMインスタンスまたはクラスタ内のクライアント・インスタンスの障害グループ・レベルにASM_PREFERRED_READ_FAILURE_GROUPS初期化パラメータ(下位互換性のために使用可)を使用して、優先読取りを設定できます。

優先読取りの障害グループの構成および管理

この機能を構成するには、ASM_PREFERRED_READ_FAILURE_GROUPS初期化パラメータで、障害グループ名のリストを優先読取りディスクとして指定します。

diskgroupはディスク・グループの名前、failuregroupは障害グループの名前で、これらの変数をピリオドで区切ってこのパラメータを設定します。指定したディスク・グループに障害グループが存在しない場合、この障害グループの名前をこのパラメータ設定で使用しても、Oracle ASMは無視します。次のように、カンマをセパレータとして複数の値を追加できます。

ASM_PREFERRED_READ_FAILURE_GROUPS = diskgroup.failuregroup,...

拡張クラスタでは、ASM_PREFERRED_READ_FAILURE_GROUPSパラメータの設定を使用して指定する障害グループには、インスタンスに対してローカルであるディスクのみが含まれます。標準冗長性のディスク・グループの場合、拡張クラスタの各サイトに存在する障害グループは1つのみです。

ミラー化コピーが複数あり、ASM_PREFERRED_READ_FAILURE_GROUPSパラメータの値を設定してある場合、優先読取りディスク上にあるコピーがOracle ASMにより最初に読み取られます。この読取りが失敗すると、Oracle ASMにより次のミラー化コピーからの読取りが試みられますが、このコピーは優先読取りディスク上にはない可能性があります。

1つのサイトに複数の障害グループがある場合、このサイトに障害が発生すると、別のサイトからディスク・グループにアクセスできなくなることがあります。また、1つのサイトに複数の障害グループがある場合、エクステントを別のサイトにミラー化できないことがあります。これにより、その他のサイトにある障害グループの読取りパフォーマンスが低下する場合があります。

たとえば、標準冗長性のディスク・グループの場合、あるディスク・グループの2つの障害グループが1つのサイトに含まれていると、Oracle ASMによりエクステントの両方のミラー・コピーが同じサイトに配置される可能性があります。このような構成では、Oracle ASMはサイトの障害によるデータの損失を回避できません。

高冗長性のディスク・グループの場合、1つのサイトで構成する障害グループは最大でも2つにする必要があります。1つの拡張クラスタに3つのサイトがある場合、前述と同じ理由により、作成する障害グループは1つにする必要があります。

2サイトの拡張クラスタの場合、標準冗長性のディスク・グループにある障害グループは2つのみです。この場合、インスタンスごとに優先読取りの障害グループとして指定できる障害グループは1つのみです。

ビューを使用して、優先読取りの障害グループを識別できます。たとえば、PREFERRED_READ列の値によってディスクが優先読取りディスクであるかどうかを示すV$ASM_DISKビューなどがあります。また、V$ASM_DISKを使用して、拡張クラスタ内のローカル・ディスクが優先読取りディスクであるかどうかの検証もできます。構成した優先読取りディスクが読取り操作に使用されているかどうかを検証するには、Oracle ASMのディスクI/O統計を使用します。

拡張クラスタに対してディスク・グループが最適に構成されていない場合、Oracle ASMによりアラート・ログに警告メッセージが記録されます。Oracle ASMの優先読取りの障害グループに関する特定のパフォーマンス上の問題を識別するには、V$ASM_DISK_IOSTATビューを使用します。このビューには、Oracle ASMクライアントごとのディスクI/O統計が表示されます。また、データベース・インスタンスについてV$ASM_DISK_IOSTATビューに問い合せることもできます。ただし、この問合せではデータベース・インスタンスのI/O統計のみが表示されます。通常、優先読取りの拡張クラスタ構成が最適であれば、パフォーマンスとディスク・グループの可用性のバランスがとれます。

優先読取りの障害グループを使用するには、Oracle ASMクライアントとOracle ASMはいずれも、Oracle Database 11gリリース1 (11.1)以上を必要とします。

注意:

ディスク・グループの障害グループを指定しない場合、ディスク・グループ内の各ディスクは独自の障害グループに属します。1つのOracle ASMインスタンスについて、ディスク・グループ内に優先読取りの障害グループを複数構成することをお薦めしません。どのインスタンスについても、同じディスク・グループ内の複数の障害グループを優先読取りとして指定すると、アラート・ログに警告メッセージが書き込まれます。

関連項目: