3 ExadataでのOracle ASMの管理

3.1 Exadata Database Machineのストレージの概要

Exadata Database Machineのストレージは、サーバー、セル・ディスク、グリッド・ディスク、Oracle ASMディスク・グループおよびOracle ASM障害グループで構成されています。

次の図は、Oracle Exadata Storage Serverグリッド・ディスクから作成されたOracle ASMディスク・グループを示しています。この図は一般的なもので構成を簡略化していますが、ストレージ・サーバーとディスクを追加して大規模なストレージのグリッドを構築する場合のモデルとして使用できます。

図3-1 Oracle Exadata Storage Serverのサンプル・グリッド

図3-1の説明が続きます
「図3-1 Oracle Exadata Storage Serverのサンプル・グリッド」の説明

このストレージ・グリッドの例は、次のことを示しています。

  • グリッド内のストレージ・サーバーは、RDMAネットワーク・ファブリック・ネットワークを使用して、単一インスタンスのデータベースまたはOracle Real Application Clusters (Oracle RAC)データベースのインストールを含むデータベース・サーバーに接続します。
  • 各ストレージ・サーバーには複数の物理ディスクが含まれています。
  • 各セル・ディスクは、物理ディスクおよびLUNを表します。
  • 各セル・ディスクは、グリッド・ディスクにパーティション化されます。
  • Oracle ASMディスク・グループは、グリッド・ディスクを使用して作成されます。

Oracle ASM障害グループは、1つのストレージ・サーバーで障害が発生してもフォルト・トレランスを実行できるように、同じストレージ・サーバーでファイルがミラー化されないように作成されます。障害グループの数は、ストレージ・サーバーの数と同じです。各障害グループは、1つのストレージ・サーバーに属するOracle ASMディスク・グループのグリッド・ディスクのサブセットで構成されます。

3.2 Oracle Exadata Storage Serverを使用したOracle ASMディスク・グループの管理

Oracle Exadata Storage Serverを使用するために必要となる基本的なOracle ASMタスクがあります。

3.2.1 Oracle Exadata Storage ServerOracle ASMディスク・グループの理解

このトピックでは、Oracle Automatic Storage Management (Oracle ASM)ディスク・グループについて説明し、CREATE DISKGROUP SQLコマンドを使用してOracle Exadata System SoftwareOracle ASMディスク・グループを作成する方法を紹介します。

Oracle ASMディスク・グループを作成する前に、Oracle ASMディスク・グループに追加するグリッド・ディスクを決定します。Oracle ASMディスク・グループおよびそのグリッド・ディスクの名前は、可能であれば同様の名前を選択することをお薦めします。

Oracle Exadata Storage Serverのグリッド・ディスクは、次のパターンで指定します。

o/cell_IPaddress/griddisk_name

この構文において、cell_IPaddressOracle Exadata Storage ServerのIPアドレスを示し、griddisk_nameはグリッド・ディスクの名前を示します。

セルの検出文字列はo/接頭辞で始まります。

グリッド・ディスクをディスク・グループに追加するように指定する場合は、次の点を考慮します。

  • デフォルトのOracle ASMディスク名はグリッド・ディスク名です。デフォルト名の設定を使用することをお薦めします。
  • デフォルトの障害グループ名はセル名です。デフォルト名の設定を使用することをお薦めします。
  • '*'の形式のワイルドカードをcell_IPaddressまたはgriddisk_nameで使用すると、単一のコマンドで複数のディスクを追加できます。たとえば:
    CREATE DISKGROUP reco HIGH REDUNDANCYDISK 'o/*/DATA*'

障害グループが指定されていない場合は、Oracle ASM独自の障害グループ内に各ディスクが追加されます。ただし、ディスクがOracle Exadata Storage Serverに格納されており、障害グループが指定されていない場合は、Oracle ASMによってそのセルの障害グループにディスクが追加されます。障害グループ名はセル名になります。

ノート:

セルの名前が変更され、そのセルのディスクが属する既存のディスク・グループにセルのディスクが追加されると、Oracle ASMによって新しいディスクは障害グループに追加され、新しいセル名が使用されます。セルのすべてのディスクが1つの障害グループに含まれるようにするには、ディスクをディスク・グループに追加して、元の障害グループ名を指定します。

スマート・スキャンの条件のオフロード処理を有効にするには、ディスク・グループのすべてのディスクをOracle Exadata Storage Serverのグリッド・ディスクにする必要があります。Oracle Exadata Storage Serverのグリッド・ディスクには従来型のディスクを含めることはできません。

3.2.1.1 高速ディスク・スキャン率について

高速ディスク・スキャン率を実現するには、最低4MBの連続領域でセグメントをレイアウトすることが重要です。これにより、ディスク・スキャンでは、ディスク上の異なる場所で別の検索を実行する前に、4MBのデータを読み取ることができます。4MBの連続領域でセグメントをレイアウトするには、Oracle ASMの割当て単位のサイズを4MBに設定し、データ・ファイルのエクステントも最低4MBにする必要があります。割当て単位は、ディスク・グループの作成時にディスク・グループ属性のAU_SIZEで設定できます。

次のSQLコマンドでは、割当て単位のサイズを4MBに設定してディスク・グループを作成します。リリース11.2.0.2およびリリース11.2.0.3の両方のデータベースを統合環境でサポートするために、compatible.rdbms属性は11.2.0.2に設定されます。

SQL> CREATE DISKGROUP data NORMAL REDUNDANCY 
     DISK 'o/*/data_CD*'
     ATTRIBUTE 'compatible.rdbms' = '11.2.0.2', 
               'compatible.asm' = '11.2.0.3',
               'content.type' = 'data',
               'cell.smart_scan_capable' = 'TRUE',
               'au_size' = '4M';
3.2.1.2 Oracle ASMコンテンツ・タイプの設定

content.typeディスク・グループ属性を設定すると、特に標準冗長性ディスク・グループのフォルト・トレランスが向上します。

Oracle Grid Infrastructureリリース11.2.0.3以降、Oracle ASMでは、各ディスク・グループに関連付けられたコンテンツ・タイプを管理者が指定できるオプションが提供されています。この機能は、content.typeディスク・グループ属性によって提供されます。使用可能な設定は、datarecoveryまたはsystemの3つです。各コンテンツ・タイプ設定によって、セカンダリ・エクステント配置アルゴリズムで使用される隣接メジャーが変更されます。

その結果、コンテンツ・タイプ設定が異なるディスク・グループのコンテンツは、使用可能なディスク間で異なる方法で分散されます。これにより、コンテンツ・タイプの設定が異なる複数の標準冗長性ディスク・グループ間で、二重障害によってデータが失われる可能性が低くなります。同様に、コンテンツ・タイプ設定が異なる複数の高冗長性ディスク・グループで、三重障害によってデータが失われる可能性も低くなります。

content.type属性の値は、次のように設定する必要があります。

  • DATAおよびSPARSEディスク・グループ — data

  • RECOディスク・グループ — recovery

  • DBFS_DGディスク・グループ(存在する場合) — system

この推奨事項に従うと、フォルト・トレランスが強化されます。たとえば、DATAディスク・グループとRECOディスク・グループで標準冗長性が使用されている場合でも、2つのディスクで同時に障害が発生した場合に、少なくとも1つのディスク・グループは存続します。そのため、DATAがディスマウントされている場合でも、通常はRECOのバックアップ・オブジェクトからデータベースをリカバリできます。

ノート:

  • 特定のサービスをサポートするために作成されるディスク・グループなど、異なる目的に使用されるディスク・グループの可用性の特性を区別するには、content.type属性を使用しないでください。

  • スパース・グリッド・ディスクを使用する場合は、Oracle DatabaseおよびOracle Grid Infrastructureソフトウェアはリリース12.1.0.2.0 BP5以上である必要があります。

  1. ALTER DISKGROUPコマンドを使用して、既存のディスク・グループに対してcontent.type属性を設定してから、ディスク・グループをリバランスします。

    たとえば:

    ALTER DISKGROUP reco SET ATTRIBUTE 'content.type'='recovery';
    ALTER DISKGROUP reco REBALANCE POWER preferred_power_setting ; 
    

    リバランス操作には時間がかかる場合がありますが、この操作によりディスク・グループのデータの冗長性が完全になります。Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。

  2. 次の問合せを使用してcontent.type属性をチェックします。
    SQL> SELECT dg.name,a.value FROM v$asm_diskgroup dg,        \
         v$asm_attribute a WHERE dg.group_number=a.group_number \
         AND a.name='content.type' AND (dg.name LIKE 'DATA%'    \
         OR dg.name LIKE 'RECO%' OR dg.name LIKE 'DBFS_DG%');
     
    NAME                 VALUE
    -------------------- --------------------
    DATA                 data
    RECO                 recovery
    DBFS_DG              system

例3-1 ディスク・グループ作成時のcontent.typeの指定

この例では、Oracle Databaseリリース11.2.0.2およびリリース11.2.0.3の両方のデータベースを統合環境でサポートするために、compatible.rdbms属性は11.2.0.2に設定されます。

CREATE DISKGROUP data NORMAL REDUNDANCY
DISK 'o/*/DATA*'
ATTRIBUTE 'content.type' = 'DATA',
'AU_SIZE' = '4M',
'cell.smart_scan_capable'='TRUE',
'compatible.rdbms'='11.2.0.2',
'compatible.asm'='11.2.0.3';

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

Oracle Exadata Storage Serverグリッド・ディスクでOracle ASMのディスク・グループを作成できます。

Oracle Exadata Storage Serverのグリッド・ディスクを使用するためにOracle ASMディスク・グループを作成するには、次の手順を実行します。

  1. Oracle ASMインスタンスに接続します。
  2. 次のようなコマンドを使用して、ORACLE_SID環境変数をOracle ASMインスタンスに設定します。
    $ setenv ORACLE_SID ASM_instance_SID
    
  3. Oracle ASMインスタンスでSQL*Plusを起動し、SYSASM管理権限を持つユーザーとしてログインします。
    $ sqlplus / AS SYSASM
    
  4. 次の構文を使用してOracle ASMインスタンスでV$ASM_DISKビュー問合せを実行し、使用可能なOracle Exadata Storage Serverのグリッド・ディスクを特定します。
    SQL> SELECT path, header_status STATUS FROM V$ASM_DISK WHERE path LIKE 'o/%';
    
  5. セルのディスクを格納するOracle ASMディスク・グループを作成します。

    この例では、インストール中に作成されたディスク・グループのcompatible.rdbmsを変更してOCRおよび投票ディスクを保持するために、ALTERコマンドが必要です。統合環境でOracle Databaseリリース11.2.0.2以降のデータベースをサポートするために、compatible.rdbms属性が11.2.0.2に設定されています。

    CREATE DISKGROUP data HIGH REDUNDANCY
    DISK 'o/*/DATA*'
    ATTRIBUTE 'AU_SIZE' = '4M',
              'content.type' = 'data',
              'compatible.rdbms'='11.2.0.4',
              'compatible.asm'='19.0.0.0';
    
    SQL> CREATE DISKGROUP reco HIGH REDUNDANCY
    DISK 'o/*/RECO*'
    ATTRIBUTE 'AU_SIZE' = '4M',
              'content.type' = 'recovery',
              'compatible.rdbms'='11.2.0.4',
              'compatible.asm'='19.0.0.0';
     
    REM for Exadata systems prior to X7
    SQL> ALTER DISKGROUP dbfs_dg SET ATTRIBUTE 
         'content.type' = 'system',
         'compatible.rdbms' = '11.2.0.4';
    

    スパース・ディスク・グループを作成する場合、次のようなコマンドを使用します。

    SQL> CREATE DISKGROUP sparsedg NORMAL REDUNDANCY
    DISK 'o.*/sparse_*'
    ATTRIBUTE 'AU_SIZE' = '4M',
              'content.type' = 'data',
              'cell.smart_scan_capable'='TRUE',
              'compatible.rdbms' = '12.1.0.2',
              'compatible.asm' = '19.0.0.0', 
              'cell.sparse_dg' = 'allsparse';
    

    前述のコマンドでは、cell.sparse_dg属性によってディスク・グループをスパース・ディスク・グループとして定義しています。ディスク・グループがスパース・ディスク・グループでない場合、この属性は必要ありません。

    ノート:

    • スパース・グリッド・ディスクを定義する場合、compatible.asmおよびcompatible.rdbms属性は少なくとも12.1.0.2.0である必要があります。
    • Oracle ASMディスク・グループのcompatible属性は、Oracle ASMインスタンスのCOMPATIBLE初期化パラメータよりも優先されます。
    • スパース・グリッド・ディスクを使用する場合は、Oracle DatabaseおよびOracle Grid Infrastructureソフトウェアはリリース12.1.0.2.0 BP5以上である必要があります。
    • Exadata上のOracle ASMディスク・グループの場合、お薦めの割当て単位サイズ(AU_SIZE)は4MBです。
  6. V$ASM動的ビューでSQL問合せを実行して、Oracle ASMディスク・グループおよび関連する属性を表示します。
    SQL> SELECT dg.name AS diskgroup, SUBSTR(a.name,1,24) AS name, 
         SUBSTR(a.value,1,24) AS value FROM V$ASM_DISKGROUP dg, V$ASM_ATTRIBUTE a 
         WHERE dg.group_number = a.group_number;
    
    DISKGROUP                    NAME                       VALUE
    ---------------------------- ------------------------ ------------------------
    DATA                         compatible.rdbms           11.2.0.4
    DATA                         compatible.asm             19.0.0.0
    DATA                         au_size                    4194304
    DATA                         disk_repair_time           3.6h
    DATA                         cell.smart_scan_capable    TRUE
    ...
    
  7. オフロード処理などのOracle Exadata System Software機能を利用できるように、ディスク・グループに表領域を作成します。この表領域には、オフロード処理で問合せを実行する表を含める必要があります。
    SQL> CREATE TABLESPACE tablespace_name DATAFILE '+DATA';
    

    このコマンドの+DATAは、Oracle ASMディスク・グループの名前です。

  8. 表領域がOracle Exadata Storage Serverのディスク・グループにあることを確認します。DBA_TABLESPACESビューのPREDICATE_EVALUATION列は、条件がホスト(HOST)またはストレージ(STORAGE)のどちらで評価されるかを示しています。
    SQL> SELECT tablespace_name, predicate_evaluation FROM dba_tablespaces
         WHERE tablespace_name = 'DATA_TB';
    
    TABLESPACE_NAME                PREDICA
    ------------------------------ -------
    DATA_TB                        STORAGE
    

3.2.3 Oracle ASMディスク・グループへのディスクの追加

Oracle ASMディスク・グループにディスクを追加できます。

新しいOracle Exadata Storage Serverを追加する場合またはカスタム・ディスク・グループを管理する場合に、これが必要になることがあります。

Oracle Exadata Storage Serverに登録されていないOracle ASMディスク・グループにOracle Exadata Storage Serverグリッド・ディスクを追加しないでください。ただし、このディスク・グループをOracle Exadata Storage Serverディスク・グループに移行する予定がある場合は除きます。

  1. Oracle ASMインスタンスでV$ASM_DISKビュー問合せを実行し、使用可能なディスクを特定します。

    ヘッダーのステータスがCANDIDATEに設定されている場合、ディスクはディスク・グループの候補になっています。

  2. SQLコマンドALTER DISKGROUPを使用してADD DISK句を指定し、Oracle ASMディスク・グループにディスクを追加します。

    たとえば:

    SQL> ALTER DISKGROUP disk_group_name 
    ADD DISK 'o/cell_IP_address/grid_disk_prefix*';
    

ディスクが追加されると、Oracle ASMによってディスク・グループがリバランスされます。Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。

リバランス操作のステータスを確認するには、V$ASM_OPERATIONビューに問い合せます。

3.2.4 Oracle ASMディスク・グループのマウントおよびディスマウント

ディスク・グループ内のファイルにデータベースがアクセスするには、Oracle ASMによってそのディスク・グループがマウントされている必要があります。

ディスク・グループをマウントするには、すべてのディスクを検出し、ディスク・グループ内のファイルを特定する必要があります。Oracle ASMが起動すると、ASM_DISKGROUPSインスタンス・パラメータで示されているディスク・グループが自動的にマウントされます。

次の点にも留意してください。

  • ディスク・グループをマウントするには、MOUNTオプションを指定してSQL ALTER DISKGROUPコマンドを使用します。
    FORCEオプションをALTER DISKGROUP ... MOUNTコマンドとともに使用すると、ディスクが使用できない場合でもディスク・グループをマウントできます。ただし、これにより、ディスク・グループの冗長性が損なわれます。
  • ディスク・グループをディスマウントするには、DISMOUNTオプションを指定してSQL ALTER DISKGROUPコマンドを使用します。

3.2.5 ディスクのオフラインとオンラインの切替え

Oracle ASMディスクをINACTIVEまたはACTIVEに変更できます。

  1. Oracle ASMディスク・グループでオフラインとオンラインを切り替えるディスクを特定します。

    Oracle ASMインスタンスでV$ASM_DISKおよびV$ASM_DISKGROUPビューを問い合せます。

  2. 次のコマンドのいずれかを使用します。
    • ディスクを非アクティブにするには、次のコマンドを使用します。

      CellCLI> ALTER GRIDDISK gdisk_name INACTIVE
      
    • ディスクをアクティブにするには、次のコマンドを使用します。

      CellCLI> ALTER GRIDDISK gdisk_name ACTIVE
      

    ディスクがオンラインになると、ディスク・グループがリバランスされます。

Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。

リバランス操作のステータスを確認するには、V$ASM_OPERATIONビューに問い合せます。

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

グリッド・ディスクをディスク・グループから削除できます。

  1. Oracle ASMディスク・グループから削除するディスクを特定します。

    Oracle ASMインスタンスでV$ASM_DISKおよびV$ASM_DISKGROUPビューを問い合せます。

    Oracle Exadata Storage Serverのグリッド・ディスクを削除する場合は、各Oracle ASMディスク・グループにマップされているグリッド・ディスクを特定できるようにします。

  2. SQL ALTER DISKGROUPコマンドを使用してDROP DISK句を指定し、Oracle ASMディスク・グループからディスクを削除します。
    SQL> ALTER DISKGROUP disk_group_name 
    DROP DISK data_CD_11_cell01 NORMAL;
    Oracle ASMディスク・グループからディスクを削除する際に、FORCEオプションを使用しないでください。FORCEオプションを使用すると、たとえば、ストレージ・サーバーを再起動するなどでディスク・オンライン自動化操作がトリガーされた場合に、Oracle Exadata System Softwareによってディスクが追加され、ディスク・グループに戻されます。『Oracle Exadata Database Machineシステム概要』拡張管理機能に関する項を参照してください。

Oracle ASMディスク・グループからディスクが削除されると、Oracle ASMによってディスク・グループがリバランスされます。Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。

リバランス操作のステータスを確認するには、V$ASM_OPERATIONビューに問い合せます。

Oracle Exadata Storage Serverのグリッド・ディスクがOracle ASMディスク・グループから削除されたら、セルからグリッド・ディスクを削除できます。

3.2.7 Oracle ASMディスク・グループの削除

Oracle ASMディスク・グループを削除できます。

ディスク・グループをマウントできないが削除する必要がある場合は、DROP DISKGROUPコマンドのFORCEオプションを使用してください。

  1. 削除するディスク・グループを特定します。
    Oracle ASMインスタンスでV$ASM_DISKGROUPビューを問い合せます。
  2. SQL DROP DISKGROUPコマンドを使用して、Oracle ASMディスク・グループを削除します。

3.2.8 Oracle ASM appliance.mode属性の有効化

Oracle ASM appliance.mode属性を使用すると、1つ以上のOracle ASMディスクを削除するときにディスクのリバランス完了時間が改善されます。

appliance.mode属性を設定すると、障害発生後に冗長性を迅速にリストアするのに役立ちます。属性は、次の要件を満たすディスク・グループのみで有効にできます。

  • Oracle ASMディスク・グループ属性compatible.asmがリリース11.2.0.4または12.1.0.2以上に設定されている。

  • cell.smart_scan_capable属性がTRUEに設定されている。

  • ディスク・グループ内のすべてのディスクが同じタイプである(すべてのディスクがハード・ディスクであるか、すべてのディスクがフラッシュ・ディスクであるなど)。

  • ディスク・グループのすべてのディスクが同じサイズである。

  • ディスク・グループのすべての障害グループのディスク数が等しい。

    • エイス・ラック構成の場合、すべての障害グループに4ディスクが含まれるか、すべての障害グループに6ディスクが含まれる。

    • それ以外のラック構成の場合、すべての障害グループに10ディスクが含まれるか、すべての障害グループに12ディスクが含まれる。

  • ディスク・グループに少なくとも3つの障害グループが含まれている。

  • ディスク・グループにオフラインのディスクがない。

ノート:

既存のディスク・グループに対してappliance.mode属性を有効化すると、次回のリバランス操作でデータ移動が増える可能性があります。

appliance.mode属性は、新規ディスク・グループを作成するときに自動的に有効化されます。既存のディスク・グループでは、ALTER DISKGROUPコマンドを使用して明示的に属性を設定する必要があります。

SQL> ALTER DISKGROUP disk_group SET ATTRIBUTE 'appliance.mode'='TRUE';

ノート:

appliance.mode属性は通常TRUEに設定する必要があります。まれに、ディスク・グループにディスクを追加するときに、回避策としてappliance.modeを無効にすることが必要な場合があります。ディスク・グループをALTERで変更した後、appliance.modeを有効にしてREBALANCE操作を実行します。

ディスク・グループの作成時にappliance.mode属性を無効化するには、属性をFALSEに設定します。

SQL> CREATE DISKGROUP data NORMAL REDUNDANCY
DISK
'o/*/DATA*'
ATTRIBUTE 'content.type' = 'data',
          'au_size' = '4M',
          'cell.smart_scan_capable'='TRUE',
          'compatible.rdbms'='11.2.0.3',
          'compatible.asm'='11.2.0.4',
          'appliance.mode'='FALSE';

3.2.9 ディスク・グループのバランスのチェック

ファイルはすべてのディスクで均等になるようにしてください。次の問合せおよびスクリプトを使用すると、ディスク・グループのバランスをチェックできます。

  • I/Oバランスをチェックするには、大きいSQL文の実行前後にV$ASM_DISK_IOSTATビュー問合せを実行します。たとえば、大きい問合せで読取り数が多い場合は、ディスク・グループのすべてのディスクでread列とread_bytes列の値をほぼ同じにしてください。

  • マウントされたすべてのディスク・グループをチェックするには、My Oracle Supportのドキュメント367445.1で入手できるスクリプトを実行します。

3.2.10 Oracle ASMディスク修復タイマーの設定

Oracle ASMディスク修復タイマーは、Oracle ASMで削除される前にディスクをオフラインのままにできる時間を表します。ディスクがオフラインの場合、オンラインに戻ったときにディスクを再同期できるように、変更されたエクステントがOracle ASMによって追跡されます。デフォルトのディスク修復時間は3.6時間です。デフォルト値では十分でない場合は、ASMで一時的なディスク障害を検出して修復するまでの最大時間まで属性値を変更できます。次のコマンドは、DATAディスク・グループのディスク修復タイマーの値を8.5時間に変更する例です。

SQL> ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '8.5h'

disk_repair_time属性では、オフライン中のディスクの修復タイマーは変更されません。このようなオフライン状態のディスクの修復タイマーは、デフォルトの修復タイマー、またはディスクが手動でオフラインに設定されたときにコマンドラインで指定した修復タイマーのいずれかになります。オフライン中のディスクの修復タイマーを変更するには、OFFLINEコマンドを使用して修復タイマーの値を指定します。次のコマンドは、オフラインのディスクのディスク修復タイマーの値を変更する例です。

SQL> ALTER DISKGROUP data OFFLINE DISK data_CD_06_cell11 DROP AFTER 20h;

ノート:

二重障害に対する脆弱性は、ディスク修復時間の値の増加にあわせて増加します。

3.3 Oracle ASMを使用したOracle Exadata Storage Serverのグリッド・ディスクの管理

Oracle ASMで使用するグリッド・ディスクを管理するには、次の手順を使用します。

3.3.1 Oracle Exadata Storage Serverのグリッド・ディスクのネーミング規則

一貫性のあるネーミング規則を使用すると、Exadataコンポーネントを識別できます。

セル・ディスクに属するグリッド・ディスクを容易に判別できるように、グリッド・ディスクの名前にはセル・ディスク名を含めるようにしてください。また、Oracle ASMディスク・グループに属するグリッド・ディスクを判別できるように、グリッド・ディスクが属するOracle ASMディスク・グループの名前とグリッド・ディスク名のサブセットをすべて同じにするか、一部を同じにしてください。

たとえば、グリッド・ディスクがセル・ディスクCD_03_cell01上で作成され、そのグリッド・ディスクがdata0の名前のOracle ASMディスク・グループに属する場合は、グリッド・ディスク名をdata0_CD_03_cell01にしてください。

CREATE GRIDDISKALL PREFIXオプションを指定すると、接頭辞とセル名を含む一意のグリッド・ディスク名が自動的に生成されます。グリッド・ディスクの作成時にデフォルトの生成名を使用しない場合は、すべてのセルでグリッド・ディスク名を一意にする必要があります。Oracle ASMディスク・グループに同じ名前の複数のディスクを含めることはできません。

3.3.2 Oracle ASMディスク・グループに属するOracle Exadata Storage Serverのグリッド・ディスクの変更

Oracle ASMディスク・グループに属するグリッド・ディスクを変更する前に、変更によりグリッド・ディスクが属するOracle ASMディスク・グループが受ける可能性がある影響を考慮する必要があります。

3.3.2.1 Oracle Exadata Storage Serverのグリッド・ディスク名の変更

CellCLIインタフェースを使用して、グリッド・ディスクの名前を変更します。

  • グリッド・ディスクの属性を変更するには、CellCLIALTER GRIDDISKコマンドを使用します。

    変更可能なOracle Exadata Storage Serverのグリッド・ディスク属性を特定するには、DESCRIBE GRIDDISKコマンドを使用します。

    注意:

    Oracle ASMディスク・グループに属するグリッド・ディスクの名前を変更する前に、対応するOracle ASMディスクがオフラインになっていることを確認します。

例3-2 Oracle Exadata Storage Serverのグリッド・ディスク名の変更

ALTER GRIDDISKコマンドを使用して、グリッド・ディスクの名前を変更します。

CellCLI> ALTER GRIDDISK data011 name='data0_CD_03_cell04'
3.3.2.2 Oracle Exadata Storage Serverのグリッド・ディスクの削除

Oracle Exadata Storage Serverのグリッド・ディスクを削除するには、CellCLIDROP GRIDDISKコマンドを使用します。

グリッド・ディスクを削除する前にグリッド・ディスクを非アクティブにし、そのグリッド・ディスクが使用されていないことを確認します。FORCEオプションを使用すると、使用中のグリッド・ディスクを強制的に削除できます。

注意:

  • Oracle ASMディスク・グループに属するグリッド・ディスクを削除する前に、対応するOracle ASMディスクがディスク・グループから削除されていることを確認します。

  • FORCEオプションを使用してグリッド・ディスクを削除する前に、ディスク・グループからOracle ASMディスクが削除されていることを確認します。まだASMディスク・グループの一部になっているグリッド・ディスクを削除すると、ディスク・グループのデータの冗長性が損なわれることや、ディスク・グループがディスマウントされることがあります。

  1. ディスク・グループからOracle ASMディスクを削除します。
    SQL> ALTER DISKGROUP disk_group_name DROP DISK disk_name;
    
  2. 対応するグリッド・ディスクを非アクティブにします。
    CellCLI> ALTER GRIDDISK disk_name INACTIVE
    
  3. グリッド・ディスクを削除します。
    CellCLI> DROP GRIDDISK disk_name
    

例3-3 特定のグリッド・ディスクの削除

ディスク・グループからOracle ASMディスクを削除した後に、関連するグリッド・ディスクを削除できます。

CellCLI> ALTER GRIDDISK data0_CD_03_cell04 INACTIVE
CellCLI> DROP GRIDDISK data0_CD_03_cell04

例3-4 すべてのグリッド・ディスクの削除

ディスク・グループからOracle ASMディスクを削除した後、単一のコマンドを使用して複数のグリッド・ディスクを削除できます。

CellCLI> ALTER GRIDDISK ALL INACTIVE
CellCLI> DROP GRIDDISK ALL PREFIX=data0

例3-5 グリッド・ディスクを削除する際のFORCEオプションの使用

FORCEオプションを指定すると、アクティブなグリッド・ディスクが強制的に削除されます。たとえば、グリッド・ディスクをINACTIVEにできないがグリッド・ディスクを削除する必要がある場合は、FORCEオプションを使用できます。

FORCEオプションは注意して使用してください。まだASMディスク・グループの一部になっているグリッド・ディスクを削除すると、ディスク・グループのデータの冗長性が損なわれることや、ディスク・グループがディスマウントされることがあります。

CellCLI> DROP GRIDDISK data02_CD_04_cell01 FORCE

3.3.3 グリッド・ディスクのサイズ変更

グリッド・ディスクとOracle ASMディスク・グループのサイズを変更して、空き領域が多すぎるディスクはサイズを減らしたり、最大容量に近いディスクはサイズを増やしたりできます。

Exadata Database Machineのディスク・グループ・サイズの初期構成は、Oracleベスト・プラクティスおよびバックアップ・ファイルの場所に基づきます。
  • 内部バックアップの場合: 使用可能な領域の割当ては、DATAディスク・グループで40%、RECOディスク・グループで60%です。

  • 外部バックアップの場合: 使用可能な領域の割当ては、DATAディスク・グループで80%、RECOディスク・グループで20%です。

ディスク・グループの割当ては、デプロイ後に変更できます。たとえば、DATAディスク・グループの割当てが60%では小さすぎるため、80%にサイズ変更する必要が生じる場合があります。

システムのセル・ディスクに使用可能な空き領域が存在せず、1つのディスク・グループ(RECOなど)に十分な空き領域がある場合、RECOディスク・グループのサイズを縮小し、DATAディスク・グループに空き領域を割り当てなおすことができます。RECOディスク・グループの縮小後に使用可能な空き領域は、DATAディスク・グループに割り当てられた既存の領域から離れた場所にあります。グリッド・ディスクはセル・ディスク上の任意の場所にある領域を使用でき、隣接している必要はありません。

セル・ディスクに既存のグリッド・ディスクを拡大する十分な領域がすでに存在している状態で、グリッド・ディスクを拡大する場合、最初に既存のディスク・グループのサイズを変更する必要はありません。RECOディスク・グループとグリッド・ディスクが縮小される次の例のステップ2と3を省略してください(ただし、DATAグリッド・ディスクを拡大する前に、セル・ディスクに十分な空き領域があることを確認する必要があります)。管理者が確保する必要がある空き領域の量は、障害時の補償範囲のレベルによって異なります。

グリッド・ディスクのサイズを縮小する場合、ミラー化用の領域がどのように確保されるかを理解する必要があります。データは、標準または高冗長性を使用してOracle ASMによって保護され、ファイル・エクステントとして保存される1つまたは2つのデータのコピーが作成されます。これらのコピーは、個別の障害グループに保存されます。1つの障害グループで障害が発生しても、ミラー・コピーには影響がないため、データにはまだアクセスできます。

障害が発生すると、アクセスできないエクステントがOracle ASMによって再ミラー化(またはリバランス)されるため、冗長性が再確立されます。プロセスの再ミラー化を成功するには、新しいファイル・エクステントのミラー・コピーの作成に十分な空き領域がディスク・グループに存在する必要があります。十分な空き領域がないと、一部のエクステントが再ミラー化されず、他のデータ・コピーで後で障害が発生した場合に、ディスク・グループをバックアップからリストアする必要があります。領域の不足により再ミラー化プロセスが失敗すると、Oracle ASMはエラーを送信します。

Oracle Exadata System Softwareリリース12.1.2.1.0以上を使用するか、バグ19695225のパッチをソフトウェアに適用する必要があります。

このグリッド・ディスクのサイズ変更手順は、ベア・メタルおよび仮想マシン(VM)のデプロイメントに適用されます。

3.3.3.1 使用可能な領域量の確認

ディスク・グループ内のディスクのサイズを増やすには、割り当てられていないディスク領域を使用可能にするか、異なるディスク・グループが現在使用している領域を割り当てなおす必要があります。

また、Exadataで新規グリッド・ディスクおよびディスク・グループのサイズを計算するためのスクリプト(My Oracle Support Doc ID 1464809.1)で使用可能なスクリプトを使用すると、ディスク・グループを縮小するために使用可能な量の空き領域の判別に役立ちます。

  1. ディスク・グループが現在使用している領域を確認します。
    SELECT name, total_mb, free_mb, total_mb - free_mb used_mb, round(100*free_mb/total_mb,2) pct_free
    FROM v$asm_diskgroup
    ORDER BY 1;
    
    NAME                             TOTAL_MB    FREE_MB    USED_MB   PCT_FREE
    ------------------------------ ---------- ---------- ---------- ----------
    DATAC1                           68812800    9985076   58827724      14.51
    RECOC1                           94980480   82594920   12385560      86.96

    この例では、DATAC1ディスク・グループの使用可能な空き領域は約15%しかありませんが、RECOC1ディスク・グループには約87%の空きディスク領域があります。ここに示されているPCT_FREEは、使用可能な空き領域ではなく、RAW空き領域です。リバランス操作用に追加の領域が必要です。

  2. サイズを変更するディスク・グループについて、ディスク・グループが使用する障害グループの数および状態を確認します。
    SELECT dg.name, d.failgroup, d.state, d.header_status, d.mount_mode, 
     d.mode_status, count(1) num_disks
    FROM V$ASM_DISK d, V$ASM_DISKGROUP dg
    WHERE d.group_number = dg.group_number
    AND dg.name IN ('RECOC1', 'DATAC1')
    GROUP BY dg.name, d.failgroup, d.state, d.header_status, d.mount_status,
      d.mode_status
    ORDER BY 1, 2, 3;
    
    NAME       FAILGROUP      STATE      HEADER_STATU MOUNT_S  MODE_ST  NUM_DISKS
    ---------- -------------  ---------- ------------ -------- -------  ---------
    DATAC1     EXA01CELADM01  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM02  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM03  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM04  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM05  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM06  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM07  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM08  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM09  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM10  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM11  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM12  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM13  NORMAL     MEMBER        CACHED  ONLINE   12
    DATAC1     EXA01CELADM14  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM01  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM02  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM03  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM04  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM05  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM06  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM07  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM08  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM09  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM10  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM11  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM12  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM13  NORMAL     MEMBER        CACHED  ONLINE   12
    RECOC1     EXA01CELADM14  NORMAL     MEMBER        CACHED  ONLINE   12
    

    この例はラック全体の表示で、DATAC1およびRECOC1のセルが14個、障害グループが14個あります。各障害グループにNORMAL状態のディスクが12個以上(num_disks)あることを確認します。MISSINGと表示されるディスクがある場合、または構成で予期しない数のディスクが表示される場合は、問題を解決してから続きを行います。

    Extreme Flashシステムでは、ディスク数としてnum_disksに12ではなく8が表示されます。

  3. 各セルおよび各障害グループに関連付けられているグリッド・ディスクを表示して、サイズを変更するグリッド・ディスクを確認します。
    SELECT dg.name, d.failgroup, d.path
    FROM V$ASM_DISK d, V$ASM_DISKGROUP dg
    WHERE d.group_number = dg.group_number
    AND dg.name IN ('RECOC1', 'DATAC1')
    ORDER BY 1, 2, 3;
    
    NAME        FAILGROUP      PATH
    ----------- -------------  ----------------------------------------------
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_00_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_01_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_02_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_03_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_04_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_05_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_06_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_07_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_08_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_09_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_10_exa01celadm01
    DATAC1      EXA01CELADM01  o/192.168.74.43/DATAC1_CD_11_exa01celadm01
    DATAC1      EXA01CELADM02  o/192.168.74.44/DATAC1_CD_00_exa01celadm01
    DATAC1      EXA01CELADM02  o/192.168.74.44/DATAC1_CD_01_exa01celadm01
    DATAC1      EXA01CELADM02  o/192.168.74.44/DATAC1_CD_02_exa01celadm01
    ...
    RECOC1      EXA01CELADM13  o/192.168.74.55/RECOC1_CD_00_exa01celadm13
    RECOC1      EXA01CELADM13  o/192.168.74.55/RECOC1_CD_01_exa01celadm13
    RECOC1      EXA01CELADM13  o/192.168.74.55/RECOC1_CD_02_exa01celadm13
    ...
    RECOC1      EXA01CELADM14  o/192.168.74.56/RECOC1_CD_09_exa01celadm14
    RECOC1      EXA01CELADM14  o/192.168.74.56/RECOC1_CD_10_exa01celadm14
    RECOC1      EXA01CELADM14  o/192.168.74.56/RECOC1_CD_11_exa01celadm14  
    
    168 rows returned.
  4. セル・ディスクの使用可能な空き領域を確認します。
    セル・ディスクの空き領域を使用して、DATAC1グリッド・ディスクのサイズを増やすことができます。DATAC1グリッド・ディスクを拡大する使用可能な空き領域が十分にない場合、RECOC1グリッド・ディスクを縮小して、DATAC1グリッド・ディスクの新しいサイズ用に追加の領域を用意する必要があります。
    [root@exa01adm01 tmp]# dcli -g ~/cell_group -l root "cellcli -e list celldisk \
      attributes name,freespace" 
    exa01celadm01: CD_00_exa01celadm01 0 
    exa01celadm01: CD_01_exa01celadm01 0 
    exa01celadm01: CD_02_exa01celadm01 0 
    exa01celadm01: CD_03_exa01celadm01 0 
    exa01celadm01: CD_04_exa01celadm01 0 
    exa01celadm01: CD_05_exa01celadm01 0 
    exa01celadm01: CD_06_exa01celadm01 0 
    exa01celadm01: CD_07_exa01celadm01 0 
    exa01celadm01: CD_08_exa01celadm01 0 
    exa01celadm01: CD_09_exa01celadm01 0 
    exa01celadm01: CD_10_exa01celadm01 0 
    exa01celadm01: CD_11_exa01celadm01 0 
    ...

    この例では、使用可能な空き領域がないため、最初にRECOC1グリッド・ディスクを縮小して、DATAC1グリッド・ディスク用に領域を用意する必要があります。使用可能な空き領域が十分にある構成では、RECOC1グリッド・ディスクを縮小するかわりに、その空き領域を使用できます。

  5. RECOC1グリッド・ディスクおよび各グリッド・ディスクから縮小する領域の量を計算します。

    ディスク・グループおよびそのグリッド・ディスクを安全に縮小する最小サイズについては、次の点を考慮する必要があります。

    • 現在使用中の領域(USED_MB)

    • 拡大に想定される領域(GROWTH_MB)

    • ディスク障害発生時のリバランスに必要な領域(DFC_MB) (通常は合計ディスク・グループ・サイズの15%)

    前述の要素を考慮に入れた、最小サイズの計算は次のようになります。

    Minimum DG size (MB) = ( USED_MB + GROWTH_MB ) * 1.15 
    • USED_MBは、TOTAL_MB - FREE_MBを計算して、V$ASM_DISKGROUPから算出できます

    • GROWTH_MBは、ディスク・グループの将来の使用方法によって異なる推定量であり、拡大の過去のパターンに基づいている必要があります

    ステップ1で示したRECOC1ディスク・グループの領域を使用する場合、拡大推定量がないと仮定すると、縮小可能な最小サイズは、次のようになります。

    最小RECOC1サイズ = (TOTAL_MB - FREE_MB + GROWTH_MB) * 1.15

    = ( 94980480 - 82594920 + 0) * 1.15 = 14243394 MB = 13,910 GB

    ステップ1の出力例では、RECOC1には十分な空き領域がありますが、DATAC1の空き領域は15%未満です。よって、RECOC1を縮小し、解放されたディスク領域をDATAC1に付与します。RECOC1のサイズを現在の半分に減らす場合、新しいサイズは94980480 / 2 = 47490240MBになります。このサイズは、前述のRECOC1ディスク・グループに対して計算した最小サイズを大幅に上回る値です。したがって、安全にこの値に縮小できます。

    ステップ2の問合せでは、RECOC1に168個のグリッド・ディスクがあることがわかりました。14個のセルがあり、セルごとに12個のディスクがあるためです(14 * 12 = 168)。RECOC1ディスク・グループの各グリッド・ディスクの新しい推定サイズは、47490240 / 168、すなわち282,680MBになります。

    新しいグリッド・ディスクのサイズに対して最も近い16MB境界を見つけます。このチェックを実行しないと、セルによって、最も近い16MBごとの境界にグリッド・ディスク・サイズが自動的に切り下げられるため、Oracle ASMディスクとグリッド・ディスクの間でサイズの不一致が発生することがあります。

    SQL> SELECT 16*TRUNC(&new_disk_size/16) new_disk_size FROM dual;
    Enter value for new_disk_size: 282680
    
    NEW_DISK_SIZE
    -------------
           282672

    この結果から、RECOC1ディスク・グループのグリッド・ディスクの新しいサイズとして282672MBを選択します。グリッド・ディスクのサイズ変更後のRECOC1ディスク・グループのサイズは47488896MBになります。

  6. DATAC1ディスク・グループの各グリッド・ディスクのサイズの増加量を計算します。

    Oracle ASMディスクのサイズとグリッド・ディスクのサイズがディスク・グループ全体で一致するようにします。次の問合せでは、各ディスク・グループのディスクのサイズが表示されます。すべてのディスクのサイズが同じで、Oracle ASM (total_mb)ディスクとグリッド・ディスク(os_mb)のサイズが一致しているのが理想です。

    SELECT dg.name, d.total_mb, d.os_mb, count(1) num_disks
    FROM v$asm_diskgroup dg, v$asm_disk d
    WHERE dg.group_number = d.group_number
    GROUP BY dg.name, d.total_mb, d.os_mb;
    
    NAME                             TOTAL_MB      OS_MB  NUM_DISKS
    ------------------------------ ---------- ---------- ----------
    DATAC1                             409600     409600        168
    RECOC1                             565360     565360        168
    

    RECOC1のグリッド・ディスクを縮小した後のDATAC1の各ディスクの領域は次のとおりです。

    DATAC1ディスクの追加領域 = RECOC1の現在のサイズ - RECOC1の新しいサイズ
                                                           = 565360 - 282672 = 282688MB

    DATAC1ディスク・グループのグリッド・ディスクの新しいサイズを計算するには、次を使用します。

    DATAC1のディスクの新しいサイズ = DATAC1の現在のサイズ - RECOC1の新しいサイズ
                                                         񤀀 = 565360 - 282688 = 692288MB

    新しいグリッド・ディスクのサイズに対して最も近い16MB境界を見つけます。このチェックを実行しないと、セルによって、最も近い16MBごとの境界にグリッド・ディスク・サイズが自動的に切り下げられるため、Oracle ASMディスクとグリッド・ディスクの間でサイズの不一致が発生することがあります。

    SQL> SELECT 16*TRUNC(&new_disk_size/16) new_disk_size FROM dual;
    Enter value for new_disk_size: 692288
    
    NEW_DISK_SIZE
    -------------
           692288

    問合せ結果から、DATAC1ディスク・グループのディスクの使用可能なサイズは692288MBになります。この計算されたサイズは16MB境界上にあります。問合せ結果と指定した値が異なる場合、セルがグリッド・ディスクのサイズをその値に四捨五入することから、問合せで返された値を使用する必要があります。

    新しいグリッド・ディスクのサイズの計算値により、DATAC1ディスク・グループの合計サイズは116304384MBになります(168個のディスク * 692288MB)。

3.3.3.2 ドナー・ディスク・グループのOracle ASMディスクの縮小

セル・ディスクに使用可能な空き領域がない場合、1つのディスク・グループが使用する領域を減らして、異なるディスク・グループに追加のディスク領域を提供できます。

このタスクは、RECOC1ディスク・グループの領域をDATAC1ディスク・グループに再割当てする例の続きです。
ディスク・グループのサイズを変更する前に、領域を縮小するディスク・グループに十分な空き領域があることを確認してください。
  1. RECOディスク・グループのOracle ASMディスクを縮小して、すべてのディスクが新しい目標サイズになるようにします。

    「使用可能な領域量の確認」のステップ5で計算したRECOディスク・グループのディスクの新しいサイズを使用します。

    SQL> ALTER DISKGROUP recoc1 RESIZE ALL SIZE 282672M REBALANCE POWER 64;

    ノート:

    ALTER DISKGROUPコマンドは完了するまでに数分間かかることがあります。この操作が完了するまで、SQLプロンプトから何も返されません。

    指定したディスク・グループでディスク・グループ内にquorumディスクが構成されている場合、ALTER DISKGROUP ... RESIZE ALLコマンドはエラーORA-15277で失敗することがあります。quorumディスクは、高冗長性ディスク・グループ用のquorumディスクの管理に関する項で指定されている要件が満たされている場合に構成されます。回避方法として、SQLコマンドでストレージ・サーバーの障害グループの名前(FAILURE_TYPEがQUORUMではなくREGULARの障害グループの名前)を明示的に指定できます。たとえば:

    SQL> ALTER DISKGROUP recoc1 RESIZE DISKS IN FAILGROUP exacell01 SIZE 282672M,
    exacell02 SIZE 282672M, exacell03 SIZE 282672M REBALANCE POWER 64;

    GV$ASM_OPERATIONビューを確認して、リバランスが完了するまで待機します。

    SQL> set lines 250 pages 1000
    SQL> col error_code form a10
    SQL> SELECT dg.name, o.*
      2  FROM gv$asm_operation o, v$asm_diskgroup dg
      3  WHERE o.group_number = dg.group_number;

    GV$ASM_OPERATIONの問合せで変更されるディスク・グループの行が表示されなくなったら、次のステップに進みます。

  2. 次の問合せを使用して、ASMディスクの新しいサイズを確認します。
    SQL> SELECT name, total_mb, free_mb, total_mb - free_mb used_mb,
      2   ROUND(100*free_mb/total_mb,2) pct_free
      3  FROM v$asm_diskgroup
      4  ORDER BY 1;
    
    NAME                             TOTAL_MB    FREE_MB    USED_MB   PCT_FREE
    ------------------------------ ---------- ---------- ---------- ----------
    DATAC1                           68812800    9985076   58827724      14.51
    RECOC1                           47488896   35103336   12385560      73.92
    
    SQL> SELECT dg.name, d.total_mb, d.os_mb, COUNT(1) num_disks
      2  FROM v$asm_diskgroup dg, v$asm_disk d
      3  WHERE dg.group_number = d.group_number
      4  GROUP BY dg.name, d.total_mb, d.os_mb;
    
    NAME                             TOTAL_MB      OS_MB  NUM_DISKS
    ------------------------------ ---------- ---------- ----------
    DATAC1                             409600     409600        168
    RECOC1                             282672     565360        168

    この問合せの例では、RECOC1ディスク・グループのディスクのサイズがそれぞれ282672MGに変更されています。ディスク・グループの合計サイズは47488896MBです。

3.3.3.3 ドナー・ディスク・グループのグリッド・ディスクの縮小

Oracle ASMディスク・グループのディスクを縮小したら、各セルのグリッド・ディスクのサイズを縮小できます。

このタスクは、RECOC1ディスク・グループの領域をDATAC1ディスク・グループに再割当てする例の続きです。
最初に、「ドナー・ディスク・グループのOracle ASMディスクの縮小」の作業を完了する必要があります。
  1. すべてのセルのRECOディスク・グループに関連付けられているグリッド・ディスクを新しい小さいサイズに縮小します。

    「使用可能領域の容量の判別」のステップ3で確認したストレージ・セルごとに、グリッド・ディスクを縮小して、前のタスクで縮小したOracle ASMディスクのサイズと一致するようにします。次のようなコマンドを使用します。

    dcli -c exa01celadm01 -l root "cellcli -e alter griddisk RECOC1_CD_00_exa01celadm01 \
    ,RECOC1_CD_01_exa01celadm01 \
    ,RECOC1_CD_02_exa01celadm01 \
    ,RECOC1_CD_03_exa01celadm01 \
    ,RECOC1_CD_04_exa01celadm01 \
    ,RECOC1_CD_05_exa01celadm01 \
    ,RECOC1_CD_06_exa01celadm01 \
    ,RECOC1_CD_07_exa01celadm01 \
    ,RECOC1_CD_08_exa01celadm01 \
    ,RECOC1_CD_09_exa01celadm01 \
    ,RECOC1_CD_10_exa01celadm01 \
    ,RECOC1_CD_11_exa01celadm01 \
    size=282672M "
    
    dcli -c exa01celadm02 -l root "cellcli -e alter griddisk RECOC1_CD_00_exa01celadm02 \
    ,RECOC1_CD_01_exa01celadm02 \
    ,RECOC1_CD_02_exa01celadm02 \
    ,RECOC1_CD_03_exa01celadm02 \
    ,RECOC1_CD_04_exa01celadm02 \
    ,RECOC1_CD_05_exa01celadm02 \
    ,RECOC1_CD_06_exa01celadm02 \
    ,RECOC1_CD_07_exa01celadm02 \
    ,RECOC1_CD_08_exa01celadm02 \
    ,RECOC1_CD_09_exa01celadm02 \
    ,RECOC1_CD_10_exa01celadm02 \
    ,RECOC1_CD_11_exa01celadm02 \
    size=282672M "
    
    ...
    
    dcli -c exa01celadm14 -l root "cellcli -e alter griddisk RECOC1_CD_00_exa01celadm14 \
    ,RECOC1_CD_01_exa01celadm14 \
    ,RECOC1_CD_02_exa01celadm14 \
    ,RECOC1_CD_03_exa01celadm14 \
    ,RECOC1_CD_04_exa01celadm14 \
    ,RECOC1_CD_05_exa01celadm14 \
    ,RECOC1_CD_06_exa01celadm14 \
    ,RECOC1_CD_07_exa01celadm14 \
    ,RECOC1_CD_08_exa01celadm14 \
    ,RECOC1_CD_09_exa01celadm14 \
    ,RECOC1_CD_10_exa01celadm14 \
    ,RECOC1_CD_11_exa01celadm14 \
    size=282672M "
  2. 次の問合せを使用して、グリッド・ディスクの新しいサイズを確認します。
    [root@exa01adm01 tmp]# dcli -g cell_group -l root "cellcli -e list griddisk attributes name,size where name like \'RECOC1.*\' "
    
    exa01celadm01: RECOC1_CD_00_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_01_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_02_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_03_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_04_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_05_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_06_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_07_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_08_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_09_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_10_exa01celadm01 276.046875G
    exa01celadm01: RECOC1_CD_11_exa01celadm01 276.046875G  
    ...

    この例では、RECOC1ディスク・グループのディスクのサイズがそれぞれ282672MBに変更されています(276.046875 * 1024)。

3.3.3.4 使用可能な領域を使用したグリッド・ディスクのサイズの拡大

未割当てのディスク領域(すでに使用可能な領域、または別のOracle ASMディスク・グループで使用されている領域を縮小することで使用可能になった領域)がある場合は、グリッド・ディスクで使用されるサイズを増やすことができます。

このタスクは、RECOC1ディスク・グループの領域をDATAC1ディスク・グループに再割当てする例の続きです。既存のディスク・グループを拡大する十分な領域がすでにある場合、異なるディスク・グループの領域を割り当てなおす必要はありません。

  1. セル・ディスクに必要な量の空き領域があることを確認します。
    Oracle ASMディスクおよびグリッド・ディスクを縮小するタスクを完了すると、セル・ディスクの空き領域は次のようになります。
    [root@exa01adm01 tmp]# dcli -g ~/cell_group -l root "cellcli -e list celldisk \
    attributes name,freespace"
    
    exa01celadm01: CD_00_exa01celadm01 276.0625G
    exa01celadm01: CD_01_exa01celadm01 276.0625G
    exa01celadm01: CD_02_exa01celadm01 276.0625G
    exa01celadm01: CD_03_exa01celadm01 276.0625G
    exa01celadm01: CD_04_exa01celadm01 276.0625G
    exa01celadm01: CD_05_exa01celadm01 276.0625G
    exa01celadm01: CD_06_exa01celadm01 276.0625G
    exa01celadm01: CD_07_exa01celadm01 276.0625G
    exa01celadm01: CD_08_exa01celadm01 276.0625G
    exa01celadm01: CD_09_exa01celadm01 276.0625G
    exa01celadm01: CD_10_exa01celadm01 276.0625G
    exa01celadm01: CD_11_exa01celadm01 276.0625G 
    ...
  2. ストレージ・セルごとに、DATAグリッド・ディスクのサイズを新しいサイズまで増やします。

    「使用可能な領域量の確認」で計算したサイズを使用します。

    dcli -c exa01celadm01 -l root "cellcli -e alter griddisk DATAC1_CD_00_exa01celadm01 \
    ,DATAC1_CD_01_exa01celadm01 \
    ,DATAC1_CD_02_exa01celadm01 \
    ,DATAC1_CD_03_exa01celadm01 \
    ,DATAC1_CD_04_exa01celadm01 \
    ,DATAC1_CD_05_exa01celadm01 \
    ,DATAC1_CD_06_exa01celadm01 \
    ,DATAC1_CD_07_exa01celadm01 \
    ,DATAC1_CD_08_exa01celadm01 \
    ,DATAC1_CD_09_exa01celadm01 \
    ,DATAC1_CD_10_exa01celadm01 \
    ,DATAC1_CD_11_exa01celadm01 \
    size=692288M "
    ...
    dcli -c exa01celadm14 -l root "cellcli -e alter griddisk DATAC1_CD_00_exa01celadm14 \
    ,DATAC1_CD_01_exa01celadm14 \
    ,DATAC1_CD_02_exa01celadm14 \
    ,DATAC1_CD_03_exa01celadm14 \
    ,DATAC1_CD_04_exa01celadm14 \
    ,DATAC1_CD_05_exa01celadm14 \
    ,DATAC1_CD_06_exa01celadm14 \
    ,DATAC1_CD_07_exa01celadm14 \
    ,DATAC1_CD_08_exa01celadm14 \
    ,DATAC1_CD_09_exa01celadm14 \
    ,DATAC1_CD_10_exa01celadm14 \
    ,DATAC1_CD_11_exa01celadm14 \
    size=692288M "
  3. 次の問合せを使用して、DATAC1ディスク・グループに関連付けられているグリッド・ディスクの新しいサイズを確認します。
    dcli -g cell_group -l root "cellcli -e list griddisk attributes name,size \ 
    where name like \'DATAC1.*\' "
    
    exa01celadm01: DATAC1_CD_00_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_01_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_02_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_03_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_04_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_05_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_06_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_07_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_08_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_09_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_10_exa01celadm01 676.0625G
    exa01celadm01: DATAC1_CD_11_exa01celadm01 676.0625G

DATAディスク・グループのサイズを増やすかわりに、新しく解放された空き領域を使用して新しいディスク・グループを作成したり、将来使用するために確保したりすることができます。一般的には、必要な最小数のディスク・グループ(通常はDATA、RECOおよびDBFS_DG)を使用して、管理の柔軟性と容易さを最大限にすることをお薦めします。ただし、仮想マシンを使用したり、多くのデータベースを統合する場合、将来使用するために追加のディスク・グループまたは使用可能な空き領域が必要になることがあります。

将来使用するためにグリッド・ディスクの空き領域を残しておく場合は、後で空き領域を既存のディスク・グループに割り当てるステップについて、My Oracle Supportノート1684112.1を参照してください。

3.3.3.5 Oracle ASMディスクのサイズの拡大

関連するグリッド・ディスクに割り当てられた領域を増やした後で、Oracle ASMディスクによって使用されるサイズを増やすことができます。

このタスクは、RECOC1ディスク・グループの領域をDATAC1ディスク・グループに再割当てする例の続きです。
Oracle ASMディスク・グループのサイズを変更するには、対応するグリッド・ディスクのサイズ変更のタスクを前もって完了しておく必要があります。
  1. DATAC1ディスク・グループのOracle ASMディスクを、ストレージ・セル上のグリッド・ディスクの新しいサイズに増やします。
    SQL> ALTER DISKGROUP datac1 RESIZE ALL;

    このコマンドによって、Oracle ASMディスクのサイズがグリッド・ディスクのサイズと一致するように変更されます。

    ノート:

    指定したディスク・グループでディスク・グループ内にquorumディスクが構成されている場合、ALTER DISKGROUP ... RESIZE ALLコマンドはエラーORA-15277で失敗することがあります。『Oracle Exadata Database Machineメンテナンス・ガイド』に記載されている要件が満たされている場合は、quorumディスクが構成されます。

    回避方法として、SQLコマンドでストレージ・サーバーの障害グループの名前(FAILURE_TYPEが"QUORUM"ではなく"REGULAR"の障害グループの名前)を明示的に指定できます。たとえば:

    SQL> ALTER DISKGROUP datac1 RESIZE DISKS IN FAILGROUP exacell01, exacell02, exacell03;
  2. リバランス操作が完了するまで待機します。
    SQL> set lines 250 pages 1000 
    SQL> col error_code form a10 
    SQL> SELECT dg.name, o.* FROM gv$asm_operation o, v$asm_diskgroup dg 
         WHERE o.group_number = dg.group_number;

    問合せで変更されたディスク・グループの行が返されなくなるまで、次のステップに進まないでください。

  3. Oracle ASMディスクとディスク・グループの新しいサイズが目標のサイズになったことを確認します。
    SQL> SELECT name, total_mb, free_mb, total_mb - free_mb used_mb, 
         ROUND(100*free_mb/total_mb,2) pct_free
         FROM v$asm_diskgroup
         ORDER BY 1;
    
    NAME                             TOTAL_MB    FREE_MB    USED_MB   PCT_FREE
    ------------------------------ ---------- ---------- ---------- ----------
    DATAC1                          116304384   57439796   58864588      49.39
    RECOC1                           47488896   34542516   12946380      72.74
    
    SQL>  SELECT dg.name, d.total_mb, d.os_mb, COUNT(1) num_disks
          FROM  v$asm_diskgroup dg, v$asm_disk d
          WHERE dg.group_number = d.group_number
          GROUP BY dg.name, d.total_mb, d.os_mb;
     
    NAME                             TOTAL_MB      OS_MB  NUM_DISKS
    ------------------------------ ---------- ---------- ----------
    DATAC1                             692288     692288        168
    RECOC1                             282672     282672        168
    
    

    問合せの結果は、RECOC1およびDATAC1ディスク・グループとディスクのサイズが変更されたことを示します。

3.3.4 Oracle ASMディスク・グループに含まれるOracle Exadata Storage Serverのグリッド・ディスクの特定

グリッド・ディスク名がOracle ASMディスク名に一致しており、名前にOracle ASMディスク・グループ名が含まれている場合は、グリッド・ディスクが属するOracle ASMディスク・グループを特定できます。

Oracle ASMインスタンスでSQLコマンドを使用して、特定のグリッド・ディスク名と部分一致するOracle ASMディスク・グループを検索することもできます。これにより、特定のグリッド・ディスクを含むOracle ASMディスク・グループを特定できます。

例3-6 Oracle ASMディスク・グループのグリッド・ディスクの特定

この例は、DATA0で始まるグリッド・ディスク(たとえばDATA0_CD_03_CELL04)を含むOracle ASMディスク・グループを見つける方法を示しています。

SQL> SELECT d.label AS asmdisk, dg.name AS diskgroup
     FROM V$ASM_DISK d, V$ASM_DISKGROUP dg 
     WHERE dg.name LIKE 'DATA0%'
           AND d.group_number = dg.group_number;

ASMDISK                DISKGROUP
---------------------- -------------
DATA0_CD_00_CELL04      DATA0
DATA0_CD_01_CELL04      DATA0
DATA0_CD_02_CELL04      DATA0
DATA0_CD_03_CELL04      DATA0

3.3.5 Oracle ASMディスク・グループに属するOracle Exadata Storage Serverのグリッド・ディスクの特定

グリッド・ディスク名にOracle ASMディスク・グループ名が含まれている場合、Oracle ASMインスタンスでSQLコマンドを使用して、Oracle ASMディスク・グループ名をリストできます。

CellCLIユーティリティを使用して、特定のグリッド・ディスク名を検索できます。

例3-7 Oracle ASMディスク・グループ名の表示

この例は、SQLコマンドを使用して、Oracle ASMインスタンス上のOracle ASMディスク・グループ名を表示する方法を示しています。

SQL> SELECT name FROM V$ASM_DISKGROUP;

NAME
------------------------------
CONTROL
DATA0
DATA1
DATA2
LOG
STANDBY

例3-8 名前によるグリッド・ディスクの検索

この例は、dcliユーティリティを使用して、セル上の同様のグリッド・ディスク・グループ名を表示する方法を示しています。

$ ./dcli "cellcli -e list griddisk where -c cell04"

data0_CD_01_cell04
data0_CD_02_cell04
data0_CD_03_cell04
...

3.3.6 ディスク交換の処理

ディスクに問題がある場合は、物理ディスクのステータスが変更されます。

物理ディスクが取り外されると、ステータスはnot presentになります。物理ディスクのグリッド・ディスクにアクセスしようとした場合に、I/Oエラーが発生すると、Oracle ASMはグリッド・ディスクをオフラインにすることがあります。物理ディスクが交換されると、Oracle Exadata System Softwareでは、それぞれのOracle ASMディスク・グループで、その物理ディスクのグリッド・ディスクを自動的にオンラインにします。グリッド・ディスクがdisk_repair_time属性で指定した時間よりも長い時間オフラインの場合、Oracle ASMはそのグリッド・ディスクを強制的に削除し、リバランスを開始してデータの冗長性をリストアします。Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。

次の表は、物理ディスクのステータスと、物理ディスクに問題が発生した場合にOracle ASMがグリッド・ディスクをどのように処理するかをまとめたものです。

表3-1 物理ディスクのステータス

物理ディスクのステータス Oracle Exadata System Softwareの処理

normal

ディスクは正常に動作しています。

処理なし。

not present

ディスクが削除されています。

Oracle Exadata System Softwareはディスクをオフラインにし、disk_repair_timeの上限を超えた場合にDROP ... FORCEコマンドを使用します。リバランス操作が開始されます。

predictive failure

ディスクに問題が発生しており、障害が発生する可能性があります。

Oracle Exadata System Softwareでは、影響を受ける物理ディスク上のグリッド・ディスクをFORCEオプションを使用せずにOracle ASMから削除し、影響を受ける物理ディスク上のデータをリバランス操作で他のディスクにコピーします。

すべてのグリッド・ディスクがそれぞれのOracle ASMディスク・グループから正常に削除されたら、管理者はディスク交換に進むことができます。

critical

ディスクで障害が発生しました。

Oracle Exadata System Softwareでは、影響を受ける物理ディスク上のグリッド・ディスクをDROP ... FORCEコマンドを使用してOracle ASMから削除し、リバランス操作でデータの冗長性をリストアします。

管理者は、ディスク交換にすぐに進むことができます。

このステータスは、リリース11.2.3.1.1以上に対してのみ使用可能です。

poor performance

ディスクのパフォーマンスが低下しています。

Oracle Exadata System Softwareでは、影響を受ける物理ディスク上のグリッド・ディスクをFORCEオプションを使用してOracle ASMから削除しようとします。

DROP ... FORCEコマンドが成功すると、リバランス操作によりデータの冗長性のリストが開始され、管理者はすぐにディスク交換に進むことができます。

オフライン・パートナによりDROP ... FORCEコマンドが失敗すると、Oracle Exadata System Softwareでは、影響を受ける物理ディスク上のグリッド・ディスクをFORCEオプションを使用せずにOracle ASMから削除し、影響を受ける物理ディスク上のデータをリバランス操作で他のディスクにコピーします。

すべてのグリッド・ディスクがそれぞれのOracle ASMディスク・グループから正常に削除されたら、管理者はディスク交換に進むことができます。

物理ディスクが交換された後、Oracle Exadata System Softwareでは、交換用ディスク上にグリッド・ディスクを自動的に作成し、それぞれのOracle ASMディスク・グループに追加します。Oracle ASMのリバランス操作により、新しく追加されたグリッド・ディスクにデータが移動されます。Oracle ASMではリバランス操作を監視し、Oracle Exadata System Softwareでは操作の完了時に電子メール・メッセージを送信します。