日本語PDF

4 Oracle Flex Cluster

Oracle Flex Clusterは、Oracle Clusterwareを多数のノードに拡張します。

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

Oracle Flex Clusterの概要

Oracle Flex Cluster構成でインストールされるOracle Grid Infrastructureは、スケーラブルで動的、強固なノード・ネットワークです。

Oracle Flex Clusterは、多数のノードを持つOracle Real Application Clusters (Oracle RAC)データベースなどの様々なアプリケーションにプラットフォームを提供します。Oracle Flex Clusterでは、高可用性のために調整および自動化が必要な他のサービス・デプロイメントのプラットフォームも提供されます。

Oracle Flex Cluster内のすべてのノードは、単一のOracle Grid Infrastructureクラスタに属します。このアーキテクチャでは、様々なサービス・レベル、負荷、障害のレスポンス、およびリカバリに対処するために、アプリケーション・ニーズに基づいてリソースのデプロイメントに対するポリシー決定が集中管理されます。

Oracle Flex Clusterには、ハブ・ノードとサポートされている他のノードが多数含まれています。Oracle Flex Cluster内のハブ・ノードの最大数は64です。他のノードの数は、さらに多くできます。ハブ・ノードは、異なるタイプのアプリケーションをホストできます。

ハブ・ノードは、接続が強固であり、共有ストレージに直接アクセスできる点で、Oracle Clusterwareの標準クラスタ構成におけるOracle Grid Infrastructureノードに類似しています。ハブ・ノードを使用して、読取り/書込みデータベース・インスタンスをホスティングします。

Oracle Flex Clusterでサポートされる他のノードは、共有記憶域への直接アクセスが必要なく、かわりにハブ・ノードを介してデータを要求する点が、標準のOracle Grid Infrastructureノードと異なります。他のノードを使用して、読取り専用データベース・インスタンスをホスティングします。

ノート:

同じプライマリ・データベースの読取り/書込みデータベース・インスタンスと読取り専用データベース・インスタンスは、Oracle Flex Clusterで共存できます。

ハブ・ノードは、クラスタ・メンバー・ノードとして他のノードを一切必要とせずにOracle Flex Cluster構成で実行できますが、他のノードは最低1つのハブ・ノードを含むクラスタのメンバーである必要があります。

ノート:

Oracle Flex Clusterをアップグレードする場合、最初にハブ・ノードをアップグレードし、アップグレード・プロセスの一環としてアップグレード済のハブ・ノードを起動しておくことをお薦めします。

リーダー・ノード

読取り専用モードで実行されるOracle RACデータベース・インスタンスをホスティングするために他のノードを使用でき、これらのリーフ・ノードはリーダー・ノードになります。これらのノードをパラレル問合せ操作に最適化するには、大量のメモリーをノードにプロビジョニングして、データがホスティング・ノードにキャッシュされるようにします。

ホスティング・ノードでは、ハブ・ノード間で発生するハートビート・メッセージとは異なる定期的なハートビート・メッセージを、関連付けられているハブ・ノードに送信します。ハブ・ノードの計画停止中、ホスティング・ノードは、1つのハブ・ノードにのみ接続されている場合を除き、別のハブ・ノードへの接続を試行します。ハブ・ノードが削除されると、ホスティング・ノードもクラスタから削除されます。

Oracle Flex Clusterの管理

CRSCTLを使用して、小さいクラスタまたは大きいクラスタのいずれかにOracle Grid Infrastructureを正常にインストールした後のOracle Flex Clusterを管理します。

この項には次のトピックが含まれます:

クラスタ・モードの変更

既存のOracle Clusterwareの標準クラスタをOracle Flex Clusterに変更できます。

ノート:

  • クラスタ・モードを変更する場合、ダウンタイムが発生します。

  • Oracle Flex ClusterからのOracle Clusterwareの標準クラスタへの変更をサポートしていません。

  • Oracle Flex Clusterではグリッド・ネーミング・サービス(GNS)が必要です。

  • ゾーン委任は必要ありません。

Oracle Clusterwareの標準クラスタからのOracle Flex Clusterへの変更

CRSCTLを使用して、既存のOracle Clusterwareの標準クラスタからOracle Flex Clusterに変更します。

次のステップを実行します。

  1. 次のコマンドを実行して、クラスタの現在のモードを判断します。

    $ crsctl get cluster mode status
  2. 次のコマンドを実行して、グリッド・ネーミング・サービス(GNS)が固定VIPで構成されているかを確認します。

    $ srvctl config gns

    この手順は、GNSが固定のVIPで構成されていない場合は失敗します。GNSがない場合、次のようにrootとして1つ作成します。

    # srvctl add gns -vip vip_name | ip_address

    次のコマンドをrootとして実行して、GNSを起動します。

    # srvctl start gns
  3. Oracle Automatic Storage Management Configuration Assistant (ASMCA)を使用して、クラスタでOracle Flex ASMを有効にしてからクラスタ・モードを変更します。

  4. rootとして次のコマンドを実行して、クラスタのモードがOracle Flex Clusterになるよう変更します。

    # crsctl set cluster mode flex
  5. クラスタの各ノードでrootとして次のコマンドを実行し、Oracle Clusterwareを停止します。

    # crsctl stop crs
  6. クラスタの各ノードでrootとして次のコマンドを実行し、Oracle Clusterwareを起動します。

    # crsctl start crs -wait

    ノート:

    進捗状況およびステータス・メッセージを表示するには、-waitオプションを使用します。

Oracle拡張クラスタ

1つのOracle RACクラスタを、地理的に離れ、それぞれ独自の記憶域を備えた2つ以上のサイトにわたって拡張できます。いずれかのサイトに障害が発生すると、他のサイトがアクティブ・スタンバイとして機能します。

Oracle ASMとOracle Databaseスタックは、いずれも、通常、データ・センターのエンタープライズ・クラスの共有記憶域を使用するように設計されています。ただし、ファイバ・チャネル・テクノロジにより、計算リソースと記憶域リソースを2つ以上のデータ・センターにわたって分散でき、それらを計算および記憶域のそれぞれのニーズに従ってイーサネット・ケーブルやファイバ・チャネルを介して接続できます。

Oracle拡張クラスタは、Oracle Grid Infrastructureをインストールするときに構成できますが、インストール後も、ConvertToExtendedスクリプトを使用して構成できます。CRSCTLを使用して、Oracle拡張クラスタを管理します。

Oracle拡張クラスタの構成

この手順は、Oracle Grid Infrastructure 12c リリース2 (12.2)以上とともにインストールされたか、後でこのリリースに更新され、通常は1つのサイト(デフォルト・サイト)のみで構成されるクラスタの場合にのみサポートされます。

ノート:

この手順では、クラスタ内のすべてのノードがアクセス可能である必要があります。データベース・アクセスが中断すると、クラスタも停止します。
1つまたは複数のディスク・グループおよび複数の障害グループを含むOracle拡張クラスタを構成できます。ConvertToExtendedスクリプトを使用して、複数のデータ・サイトを作成し、1つのノードを各データ・サイトに関連付けることができます。すべてのOracle Flex ASM記憶域は、既存のディスク・グループを拡張ディスク・グループに変換するメカニズムがないため、デフォルトのクラスタ・サイトに関連付けられたままとなります。クラスタをOracle拡張クラスタに変換した後、投票ファイル・メンバーシップは階層化されず、フラットなままとなります。
サイト固有の階層的な投票ファイル・アルゴリズムを利用するには、拡張ディスク・グループを追加し、投票ファイルを拡張ディスク・グループに移行することも必要となります。
次のように、CRSCTLを使用してクラスタを問い合せ、その拡張ステータスを判別します。
$ crsctl get cluster extended
CRS-6579: The cluster is 'NOT EXTENDED'
$ crsctl query cluster site -all
Site 'crsclus' identified by '7b7b3bef4c1f5ff9ff8765bceb45433a' in state 'ENABLED',
 and contains nodes 'node1,node2,node3,node4', and disks ''.

前述の例では、4つのノード(node1node2node3およびnode4)と1つのディスク・グループ(datadg)が含まれるcrsclusというクラスタを識別します。このクラスタには構成済のサイトが1つ含まれます。

一部のOracle Flex ASMインスタンス、cssdおよびcrsdがクラスタ・モードを拡張ではないとみなす一方で、他のコンポーネントがクラスタ・モードを拡張であるとみなすことを回避するために、Oracle Clusterwareスタックを停止します。グリッド・プラグ・アンド・プレイ・デーモン(gpnpd)をオンラインのままにする利点は、プロファイルがリモート・ノードで更新されることです。Oracle Clusterwareスタックを次回起動したときに、クラスタ・モードが拡張されます。
# crsctl stop cluster -all
  1. クラスタ内の最初のノードで、次のコマンドを実行します。
    $ rootcrs.sh -converttoextended -firstnode -sites site_list -site site_name
  2. crsctl check cssを実行して、クラスタ同期サービス(CSS)がいずれのリモート・ノードでも実行されていないことを確認します。
  3. 次のコマンドを使用して、サイト名とサイトGUIDを生成します。
    $ crsctl query cluster site -all
    前述のコマンドでは次のような出力が表示されます。
    Site 'SiteA' identified by GUID '7b7b3bef4c1f5ff9ff8765bceb45433a' in state
      'ONLINE' contains nodes 'node1,node2,node3', and disks 'disk1, disk2, disk3'.
    Site 'SiteB' identified by GUID '23453bef4c1f5ff9ff8765bceb45433a' in state
      'QUARANTINED' contains nodes 'node4, node5, node6', and disks 'disk4, disk5, disk6'.
    Site 'SiteQ' identified by GUID '98763bef4c1f5ff9ff8765bceb45433a' in state
      'ONLINE' contains no nodes and disk 'disk7'.
    Site 'SiteD' identified by GUID '4abcd453c6bc6fc1ffd3a58849d5ba41' in state
      'ONLINE' contains nodes 'cuj1234' and no disk

    チェックポイントをこの情報で更新し、クラスタ内の残りのノードにコピーします。

  4. 次のコマンドを使用して、グリッド・プラグ・アンド・プレイ・プロファイルを更新し、ext_modeをTRUEに設定します。
    $ cd $Grid_home/gpnp/host_name/profiles/peer
    
    $ gpnptool getpval -p=profile.xml -prf_sq -o=temp_file // run_gpnptool_getpval()
    $ gpnptool edit -p=profile.xml -asm_ext="" prf_sq=seq+1 -o=profile_ext.xml

    ノート:

    prf_sqの値は、ProfileSequenceキーの現在のプロファイル内の値よりも大きい必要があります。
    $ gpnptool sign -p=profile_ext.xml -o=profile_ext_sign.xml
    $ mv profile_ext_sign.xml profile.xml
    $ gpnptool put -p=profile.xml
  5. 次のように、サイトをローカル構成に追加します。
    $ crsctl add crs site site_name -guid site_guid -local
  6. 次のように、サイトをグローバル構成に追加します(そのためにはOCRが実行中である必要があります)。
    $ crsctl add crs site site_name -guid site_guid
  7. 次のように、このノードのローカル構成でサイトへのマッピングを更新します。
    $ crsctl modify cluster site site_name -n local_host -local
  8. 次のように、ノードからサイトへのマッピングを更新します。
    $ crsctl modify cluster site site_name -n host1, host2, ...
  9. 次のように、Oracle高可用性サービス・スタックを停止してから起動します。
    # crsctl stop crs
    # crsctl start crs
クラスタ内の残りのノードで、次を実行します。
  1. 次のように、クラスタを特定のノードに拡張します。

    $ rootcrs.sh -converttoextended -site site_name
  2. CSSがいずれのリモート・ノードでも実行されていないことを確認します。

  3. 前述のチェックポイント情報を使用して、新しいサイトおよびサイトGUIDを参照します。

  4. 次のように、サイトをローカル構成に追加します。

    $ crsctl add crs site site_name -guid site_guid -local
  5. 次のように、このノードのローカル構成でサイトへのマッピングを更新します。

    $ crsctl modify cluster site site_name -n local_host -local
  6. 次のように、Oracle高可用性サービス・スタックを停止してから起動します。

    # crsctl stop crs
    # crsctl start crs
Oracle拡張クラスタの構成が完了したら、次のコマンドを実行して、構成を検証します。
$ crsctl get cluster extended
CRS-XXXX: The cluster is 'EXTENDED'

$ crsctl query cluster site -all
Site 'crsclus' identified by '7b7b3bef4c1f5ff9ff8765bceb45433a' is 'ONLINE', and 
contains nodes '', and disks ''.
Site 'ny' identified by '888b3bef4c1f5ff9ff8765bceb45433a' is 'ONLINE', and \
contains nodes 'node1,node2', and disks ''.
Site 'nj' identified by '999b3bef4c1f5ff9ff8765bceb45433a' is 'ONLINE', and \
contains nodes 'node3,node4', and disks ''.

前述のコマンド例の出力は、コマンドを実行したときにCRSCTLによって表示される内容と似ています。