2.14.7 障害グループが5つ未満の高冗長性ディスク・グループ用のQuorumディスクの構成

データの可用性および整合性を確保するために、障害グループ(ストレージ・サーバー)が5つ未満のOracle ASM高冗長性ディスク・グループには、quorumディスクが必要です。Oracle Exadata Exachkでは、この要件への準拠を検証します。

また、Oracle Grid Infrastructure 19cリリース更新19.14以降では、高冗長性スパース・ディスク・グループもquorumディスクをサポートしています。

この手順を使用して、システムを確認し、必要に応じてquorumディスクを構成します。

quorumディスクを構成する前に、次のチェックを実行します:

  1. ASM管理者としてOracle ASMインスタンスに接続し、次の問合せを実行して、障害グループが5つ未満で、必要なquorumディスクがない高冗長性ディスク・グループを特定します。

    SQL> SELECT dg.name DISK_GROUP_NAME, dg.state, dg.type REDUNDANCY, COUNT(distinct d.failgroup) FAILURE_GROUPS
         FROM v$asm_diskgroup dg JOIN v$asm_disk d USING (group_number)
         WHERE dg.type = 'HIGH' AND group_number NOT IN
             ( SELECT group_number
               FROM v$asm_disk
               WHERE failgroup_type = 'QUORUM'
               HAVING COUNT(group_number) < 2
               GROUP BY group_number )
         HAVING count(distinct d.failgroup) < 5
         GROUP BY dg.name, dg.state, dg.type;
    
    DISK_GROUP_NAME                STATE       REDUNDANCY FAILURE_GROUPS
    ------------------------------ ----------- ---------- --------------
    SPAR1                          MOUNTED     HIGH                    3

    出力例は、必要なquorumディスクがないSPAR1という名前の1つのディスク・グループを示しています。この手順の残りの部分のコマンドは、この例に基づいて構築されています。必要に応じて、ご使用の環境にあわせてサンプル・コマンドを変更してください。

    ノート:

    行が返されない場合は、これ以上のアクションは必要ありません。

  2. 既存のquorumディスクのステータスを検証します。

    次に例を示します:

    SQL> set lines 160
    SQL> set pages 100
    SQL> SELECT dg.name disk_group, d.name, d.mode_status, d.state, d.header_status
         FROM v$asm_diskgroup dg JOIN v$asm_disk d USING (group_number) 
         WHERE d.failgroup_type = 'QUORUM' ;
    
    DISK_GROUP                     NAME                           MODE_STATUS STATE    HEADER_STATUS
    ------------------------------ ------------------------------ ----------- -------- ------------
    DATA1                          QD_DATA1_DBNODE01              ONLINE      NORMAL   MEMBER
    DATA1                          QD_DATA1_DBNODE02              ONLINE      NORMAL   MEMBER
    RECO1                          QD_RECO1_DBNODE01              ONLINE      NORMAL   MEMBER
    RECO1                          QD_RECO1_DBNODE02              ONLINE      NORMAL   MEMBER

    既存のquorumディスクの場合は、MODE_STATUS=ONLINESTATE=NORMALおよび各quorumディスクが対応するディスク・グループのメンバーであることを確認します。

    ノート:

    既存のquorumディスクに問題がある場合は、停止して、Oracleサポートに連絡してください。

  3. root OSユーザーとして、すべてのデータベース・ノードで既存のquorumディスク構成を確認します。

    次に例を示します:

    [root@dbnode01 ~]# /opt/oracle.SupportTools/quorumdiskmgr --list --config
    Owner: oracle
    Group: dba
    ifaces: exadata_re0 exadata_re1
    Initiatior name: iqn.1988-12.com.example:192.168.8.53
    
    [root@dbnode02 ~]# /opt/oracle.SupportTools/quorumdiskmgr --list --config
    Owner: oracle
    Group: dba
    ifaces: exadata_re0 exadata_re1
    Initiatior name: iqn.1988-12.com.example:192.168.8.55

    ノート:

    quorumディスク構成は、すべてのクラスタ・ノードに存在する必要があります。いずれかのノードに存在しない場合は、停止して、Oracleサポートに連絡してください。

次の手順を使用して、障害グループが5つ未満の高冗長性ディスク・グループにquorumディスクを追加します。

  1. 各データベース・ノードのクラスタ相互接続インタフェース名およびIPアドレスを取得します。
    1. クラスタ相互接続インタフェース名を確認するには、root OSユーザーとしてOracle Grid Infrastructure (GI)ホームからoifcfgユーティリティを実行します。

      次に例を示します:

      [root@dbnode01 ~]# /u01/app/19.22.0.0/grid/bin/oifcfg getif
      bondeth0  10.128.0.0  global  public
      re0  192.168.8.0  global  cluster_interconnect,asm
      re1  192.168.8.0  global  cluster_interconnect,asm

      出力例では、インタフェース名はre0およびre1です。

      ノート:

      あるいは、Exadataプラットフォームおよびデプロイメント・タイプに応じて、インタフェース名はclre0clre1またはib0ib1になります。

    2. 各データベース・ノードで、クラスタ相互接続インタフェース名を使用して、関連付けられたIPアドレスを取得します。

      次に例を示します:

      [root@dbnode01 ~]# ip addr show re0 | grep inet
          inet 192.168.8.53/24 brd 192.168.8.255 scope global noprefixroute re0
      [root@dbnode01 ~]# ip addr show re1 | grep inet
          inet 192.168.8.54/24 brd 192.168.8.255 scope global noprefixroute re1
      
      [root@dbnode02 ~]# ip addr show re0 | grep inet
          inet 192.168.8.55/24 brd 192.168.8.255 scope global noprefixroute re0
      [root@dbnode02 ~]# ip addr show re1 | grep inet
          inet 192.168.8.56/24 brd 192.168.8.255 scope global noprefixroute re1

      出力例では、IPアドレスは次のとおりです:

      • dbnode01の場合: 192.168.8.53192.168.8.54

      • dbnode02の場合: 192.168.8.55192.168.8.56

  2. すべてのデータベース・ノードで、ディスク・グループ用のquorumディスク・ターゲットを作成します。

    各クラスタ・ノードで、root OSユーザーとして、次を実行します:

    # /opt/oracle.SupportTools/quorumdiskmgr --create --target --asm-disk-group=<DISKGROUP_NAME> --visible-to="<IP1>,<IP2>,<IP3>,<IP4>"

    次に例を示します:

    [root@dbnode01 ~]# /opt/oracle.SupportTools/quorumdiskmgr --create --target --asm-disk-group=SPAR1 --visible-to="192.168.8.53,192.168.8.54,192.168.8.55,192.168.8.56"
    
    [INFO     ] [Success] Created logical volume /dev/VGExaDb/LVDbVdDBNODE01SPAR1.
    [INFO     ] [Success] Created backstore QD_SPAR1_DBNODE01.
    [INFO     ] [Success] Created target iqn.2015-05.com.example:qd--spar1--dbnode01.
    
    [root@dbnode02 ~]# /opt/oracle.SupportTools/quorumdiskmgr --create --target --asm-disk-group=SPAR1 --visible-to="192.168.8.53,192.168.8.54,192.168.8.55,192.168.8.56"
    
    [INFO     ] [Success] Created logical volume /dev/VGExaDb/LVDbVdDBNODE02SPAR1.
    [INFO     ] [Success] Created backstore QD_SPAR1_DBNODE02.
    [INFO     ] [Success] Created target iqn.2015-05.com.example:qd--spar1--dbnode02.

    次を実行して、新しく作成されたターゲットを確認します:

    # /opt/oracle.SupportTools/quorumdiskmgr --list --target

    次に例を示します:

    [root@dbnode01 ~]# /opt/oracle.SupportTools/quorumdiskmgr --list --target
    
    ...
    
    Name: iqn.2015-05.com.example:qd--spar1--dbnode01
    Host name:dbnode01
    ASM disk group name: SPAR1
    Visible to: iqn.1988-12.com.example:192.168.8.53, iqn.1988-12.com.example:192.168.8.54, iqn.1988-12.com.example:192.168.8.55, iqn.1988-12.com.example:192.168.8.56
    Discovered by: 192.168.8.53, 192.168.8.55, 192.168.8.56
    
    [root@dbnode02 ~]# /opt/oracle.SupportTools/quorumdiskmgr --list --target
    
    ...
    
    Name: iqn.2015-05.com.example:qd--spar1--dbnode02
    Host name:dbnode02
    ASM disk group name: SPAR1
    Visible to: iqn.1988-12.com.example:192.168.8.53, iqn.1988-12.com.example:192.168.8.54, iqn.1988-12.com.example:192.168.8.55, iqn.1988-12.com.example:192.168.8.56
    Discovered by: 192.168.8.53, 192.168.8.55

    ノート:

    出力例は、簡潔にするために切り捨てられています。通常、コマンド出力には、現在のノード上のすべてのquorumディスク・ターゲットが表示されます。

  3. すべてのデータベース・ノードで、quorumディスク・デバイスを作成します。

    各クラスタ・ノードで、root OSユーザーとして、次を実行します:

    /opt/oracle.SupportTools/quorumdiskmgr --create --device --target-ip-list="<IP1>,<IP2>,<IP3>,<IP4>"

    次に例を示します:

    [root@dbnode01 ~]# /opt/oracle.SupportTools/quorumdiskmgr --create --device --target-ip-list="192.168.8.53,192.168.8.54,192.168.8.55,192.168.8.56"
    
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.54
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.55
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.56
    
    [root@dbnode02 ~]# /opt/oracle.SupportTools/quorumdiskmgr --create --device --target-ip-list="192.168.8.53,192.168.8.54,192.168.8.55,192.168.8.56"
    
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.53
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.54
    [INFO     ] [Success] created all device(s) from target(s) on machine with IP address 192.168.8.56

    次を実行して、新しく作成されたデバイスを確認します:

    /opt/oracle.SupportTools/quorumdiskmgr --list --device

    次に例を示します:

    [root@dbnode01 ~]#  /opt/oracle.SupportTools/quorumdiskmgr --list --device
    
    ...
    
    Device path: /dev/exadata_quorum/QD_SPAR1_DBNODE01
    Host name: dbnode01
    ASM disk group name: SPAR1
    Size: 128 MB
    
    Device path: /dev/exadata_quorum/QD_SPAR1_DBNODE02
    Host name: dbnode02
    ASM disk group name: SPAR1
    Size: 128 MB
    
    [root@dbnode02 ~]#  /opt/oracle.SupportTools/quorumdiskmgr --list --device
    
    ...
    
    Device path: /dev/exadata_quorum/QD_SPAR1_DBNODE01
    Host name: dbnode01
    ASM disk group name: SPAR1
    Size: 128 MB
    
    Device path: /dev/exadata_quorum/QD_SPAR1_DBNODE02
    Host name: dbnode02
    ASM disk group name: SPAR1
    Size: 128 MB

    ノート:

    出力例は、簡潔にするために切り捨てられています。通常、コマンド出力には、システム上のすべてのquorumディスク・デバイスが表示されます。

  4. 新しいquorumディスク・デバイスが、Oracle ASMCANDIDATEディスクとして表示されていることを確認します。

    ASM管理者としてOracle ASMインスタンスに接続し、次の問合せを実行してデバイスのステータスを確認します。

    
    SQL> set linesize 200 pagesize 100
    SQL> col path format a50
    SQL> select inst_id, label, path, mode_status, header_status 
         from gv$asm_disk 
         where path like '/dev/exadata_quorum/%' 
         order by header_status, inst_id;
    
       INST_ID LABEL                           PATH                                               MODE_STATUS HEADER_STATUS
    ---------- ------------------------------- -------------------------------------------------- ----------- ------------
             1 QD_SPAR1_DBNODE02               /dev/exadata_quorum/QD_SPAR1_DBNODE02              ONLINE      CANDIDATE
             1 QD_SPAR1_DBNODE01               /dev/exadata_quorum/QD_SPAR1_DBNODE01              ONLINE      CANDIDATE
             2 QD_SPAR1_DBNODE01               /dev/exadata_quorum/QD_SPAR1_DBNODE01              ONLINE      CANDIDATE
             2 QD_SPAR1_DBNODE02               /dev/exadata_quorum/QD_SPAR1_DBNODE02              ONLINE      CANDIDATE
    ...

    新しく作成されたquorumディスクごとに、ヘッダーのステータスがCANDIDATEであることを確認します。

    ノート:

    出力例は、簡潔にするために切り捨てられています。通常、問合せ出力には、システム上のすべてのquorumディスク・デバイスが表示されます。

    新しく作成されたquorumディスクが表示されない場合は、Oracle ASMasm_diskstringパラメータで検出されないことが原因と考えられます。システムでこれに該当する場合、新しく作成されたquorumディスクを検出するようにasm_diskstringパラメータを更新する必要があります。

    次に例を示します:

    1. asm_diskstringパラメータを確認します:

      SQL> show parameter asm_diskstring
      
      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- -------------------------------------------------------------------
      asm_diskstring                       string      o/*/DATA1_*, o/*/RECO1_*, o/*/SPAR1_*, /dev/exadata_quorum/QD_DATA*
    2. 変更を行う前に、ASMサーバー・パラメータ・ファイル(spfile)のバックアップを作成します。

      SQL> create pfile='/tmp/asm_spfile_bakup.ora' from spfile;
      
      File created.
    3. asm_diskstringパラメータを更新します:

      SQL> alter system set asm_diskstring='o/*/DATA1_*', 'o/*/RECO1_*', 'o/*/SPAR1_*', '/dev/exadata_quorum/*' scope=both sid='*';

    ASMディスク検出文字列を更新した後、問合せを再実行して、新しいquorumディスク・デバイスがOracle ASMCANDIDATEディスクとして表示されることを確認します。

  5. 新しいquorumディスク・デバイスをディスク・グループに追加します。

    ASM管理者としてOracle ASMインスタンスに接続し、次を実行します:

    
    SQL> ALTER DISKGROUP <DISKGROUP_NAME> ADD 
         QUORUM FAILGROUP <FAILGROUP_NAME1> DISK '<DEVICE_PATH1>'
         QUORUM FAILGROUP <FAILGROUP_NAME2> DISK '<DEVICE_PATH2>';

    次に例を示します:

    
    SQL> ALTER DISKGROUP SPAR1 ADD 
         QUORUM FAILGROUP DBNODE01 DISK '/dev/exadata_quorum/QD_SPAR1_DBNODE01'
         QUORUM FAILGROUP DBNODE02 DISK '/dev/exadata_quorum/QD_SPAR1_DBNODE02';

    前のステップと同じ問合せを使用して、ASMのquorumディスクのステータスおよびメンバーシップを確認します。

    
    SQL> set linesize 200 pagesize 100
    SQL> col path format a50
    SQL> select inst_id, label, path, mode_status, header_status 
         from gv$asm_disk 
         where path like '/dev/exadata_quorum/%' 
         order by header_status, inst_id;
    
       INST_ID LABEL                           PATH                                               MODE_STATUS HEADER_STATUS
    ---------- ------------------------------- -------------------------------------------------- ----------- ------------
             1 QD_SPAR1_DBNODE02               /dev/exadata_quorum/QD_SPAR1_DBNODE02              ONLINE      MEMBER
             1 QD_SPAR1_DBNODE01               /dev/exadata_quorum/QD_SPAR1_DBNODE01              ONLINE      MEMBER
             2 QD_SPAR1_DBNODE01               /dev/exadata_quorum/QD_SPAR1_DBNODE01              ONLINE      MEMBER
             2 QD_SPAR1_DBNODE02               /dev/exadata_quorum/QD_SPAR1_DBNODE02              ONLINE      MEMBER
    ...

    新しく追加されたquorumディスクごとに、ヘッダーのステータスがMEMBERになっていることを確認します。

    ノート:

    出力例は、簡潔にするために切り捨てられています。通常、問合せ出力には、システム上のすべてのquorumディスク・デバイスが表示されます。

  6. Exachkを実行して、quorumディスク構成を確認します。

    ご使用の環境が、正しいquorumディスク設定のExachkによる検証に合格していることを確認します。

quorumディスクは、Oracle Exadataのベスト・プラクティスに従って、高冗長性ディスク・グループ用に構成されるようになりました。

quorumディスクのステータスを定期的に確認し、主要な構成の変更やOracleソフトウェアの更新後にExachkを再実行します。