日本語PDF

6 クラスタ・ノードの追加および削除

既存のクラスタにノードを追加する方法、およびクラスタからノードを削除する方法について説明します。

この章では、Linux、UNIXおよびWindowsシステムでこれらのタスクを実行する手順を説明しています。

ノート:

  • 特に指定がないかぎり、Oracle Clusterwareをインストールしたユーザーとしてノードの追加および削除のすべてのステップを実行します。

  • フリート・パッチ適用およびプロビジョニングを使用して、クラスタ・ノードを追加および削除できます。

  • クラスタを作成する場合は、「Oracle Clusterwareのクローニング」に記載されているクローニング手順を使用することをお薦めします。

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

クラスタ・ノードを追加するための必須ステップ

ノート:

クラスタにノードを追加する前に、『Oracle Grid Infrastructureインストレーション・ガイドfor Linux』に示す前処理を実行してください。

Oracle Clusterwareはインストールしないでください。ソフトウェアはクラスタにノードを追加したときに既存のノードからコピーされます。

次のステップを実行して、クラスタに追加するノードを準備します。

  1. 物理的な接続を確立します。

    ノードのハードウェアをクラスタのネットワーク・インフラストラクチャに接続します。この作業には、電気的な接続の確立、ネットワーク・インターコネクトの構成、共有ディスク・サブシステム接続の構成などが含まれます。このステップの詳細は、ハードウェア・ベンダーのマニュアルを参照してください。

  2. オペレーティング・システムをインストールします。

    クラスタの他のノード上のオペレーティング・システムと一致するオペレーティング・システムのクローン・イメージをインストールします。これには、必要なサービス・パッチ、更新およびドライバのインストールも含まれます。この手順の詳細は、オペレーティング・システム・ベンダーのマニュアルを参照してください。

    ノート:

    クローン・イメージを使用することをお薦めします。ただし、インストール要件が満たされている場合は、ベンダーのドキュメントに従ってオペレーティング・システムをインストールしてください。

  3. Oracleユーザーを作成します。

    既存ノードに存在すべてのOracleユーザーを新規ノードで作成する必要があります。たとえば、2つのノードを持つクラスタにノードを追加する際、これら2つのノードでOracle Grid InfrastructureホームとOracleホームに異なる所有者が存在する場合は、新規ノードにOracleホームをインストールする予定がなくても、新規ノードでこれらの所有者を作成する必要があります。

    ノート:

    このステップは、LinuxおよびUNIXシステムに対してのみ実行します。

    rootとして、既存ノードと同じユーザーIDおよびグループIDを使用してOracleユーザーおよびグループを作成します。

  4. SSHがノードに構成されていることを確認します。

    ノート:

    Oracle Clusterwareをインストールすると、SSHが構成されます。SSHが構成されない場合は、SSHの構成について、『Oracle Grid Infrastructureインストレーション・ガイド』を参照してください。

  5. クラスタ検証ユーティリティ(CVU)を使用して、ハードウェアおよびオペレーティング・システムのインストールを確認します。

    追加対象ノードにハードウェアおよびオペレーティング・システムを構成した後、次のコマンドを実行して、クラスタ内の他のノードから追加対象ノードへの到達可能性を検査できます。また、このコマンドで、ローカル・ノードから指定されたすべてのノードへのユーザー等価関係、指定されたすべてのノード間のノード接続性、指定されたすべてのノードからの共有記憶域へのアクセス可能性などを検査することもできます。

    1. 既存ノードで、Grid_home/binディレクトリからCVUコマンドを実行して、参照ノードのプロパティと、現在のクラスタ環境に含まれるその他のすべてのノードのプロパティとの詳細な比較情報を取得します。ref_nodeを、CVUで追加対象ノードと比較する既存クラスタ内のノードの名前に置き換えます。-nオプションの後に、カンマ区切りのノードのリストを指定します。次の例では、orainventory_groupはOracle Inventoryグループの名前、osdba_groupはOSDBAグループの名前です。

      $ cluvfy comp peer [-refnode ref_node] -n node_list
      [-orainv orainventory_group] [-osdba osdba_group] [-verbose]
    2. グリッド・インフラストラクチャ管理リポジトリに、前述の4つの手順で追加された各ノードに対して500MB以上の追加領域があることを確認します。

      $ oclumon manage -get repsize

      必要な場合は、次のように追加領域を追加します。

      $ oclumon manage -repos changerepossize total_in_MB

      関連項目:

      OCLUMONの使用の詳細は、Oracle Autonomous Health Frameworkユーザーズ・ガイドを参照してください。

    ノート:

    参照ノードについては、CVUによる比較を行うクラスタ・ノードを選択します。たとえば、-nオプションで指定して追加するノードなどです。

この項の手順を完了すると、ノードをクラスタに追加できるようになります。

ノート:

Oracle Clusterwareインストールの完了後は、ホスト名の変更(ドメイン修飾の追加または削除を含む)はしないでください。ホスト名を変更されたノードはクラスタから削除され、新しい名前で追加されます。

LinuxおよびUNIXシステムでのクラスタ・ノードの追加および削除

LinuxおよびUNIXシステムでのクラスタ・ノードの追加および削除。

この項のノードの追加の手順は、「クラスタ・ノードを追加するための必須ステップ」の項のステップを完了していることを前提としています。

ノード追加プロセスの最後のステップには、既存のノード上のOracle Clusterwareホームから追加対象ノードへのOracle Clusterwareホームの拡張が含まれます。

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

ノート:

Oracle Clusterware 11g リリース2 (11.2)以降では、ノードの追加時、Oracle Universal Installerはデフォルトでサイレント・モードになっています。

LinuxおよびUNIXシステムでのクラスタ・ノードの追加

ノードをクラスタに追加する場合は、使用できる方法が2つあります。

フリート・パッチ適用およびプロビジョニングを使用したノードの追加

フリート・パッチ適用およびプロビジョニング・サーバーがある場合は、次の例に示すように、フリート・パッチ適用およびプロビジョニングを使用して、1つのコマンドだけでクラスタにノードを追加できます。

$ rhpctl addnode gihome -client rhpclient -newnodes clientnode2:clientnode2-vip -root

前述の例では、VIP clientnode2-vipを含むclientnode2というノードを、ルート資格証明を使用して(追加するノードへのログイン)、rhpclientというフリート・パッチ適用およびプロビジョニング・クライアントに追加しています。

Oracle Grid Infrastructureインストーラを使用したノードの追加

クラスタへのノードの追加にフリート・パッチ適用およびプロビジョニングを使用しない場合は、Oracle Grid Infrastructureインストーラを使用してこのタスクを完了できます。

ノート:

$Oracle_home/install/response/gridSetup.rspテンプレートを使用すると、非対話型(サイレント・モード)操作用のOracle Grid Infrastructureインストーラを使用してノードを追加するためのレスポンス・ファイルを作成できます。

Oracle Grid Infrastructureインストーラを使用してノードをクラスタに追加するには、次の手順を実行します。

  1. ./gridSetup.shを実行して、インストーラを起動します。

  2. 「構成オプションの選択」ページで、「クラスタに、さらにノードを追加してください」を選択します。

  3. 「クラスタ・ノード情報」ページで、「追加」をクリックして、追加するノードに関する情報を提供します。

  4. 検証プロセスが「前提条件チェックの実行」ページで完了したら、サマリーを確認し、「インストール」をクリックします。

  5. プロンプトに従い、orainstRoot.shスクリプトをrootとして実行して、/etc/oraInst.locファイルに中央インベントリの場所を移入します。たとえば:

    # /opt/oracle/oraInventory/orainstRoot.sh
  6. node3rootとしてGrid_home/root.shスクリプトを実行し、指示に従って後続のスクリプトを実行します。

    ノート:

    • 前のステップでroot.shスクリプトを実行した場合は、再度実行する必要はありません。

    • ポリシー管理データベースを使用している場合、必ずOracleホームを新しいノードにクローニングしてからroot.shスクリプトを実行してください。

    • クラスタに追加するノード上で管理者管理データベース・インスタンスが構成されている場合は、root.shスクリプトを実行する前に、Oracleホームを新規ノードに拡張する必要があります。

      または、srvctl remove instanceコマンドを使用して管理者管理データベース・インスタンスを削除します。

  7. Oracle RACまたはOracle RAC One Nodeデータベースをクラスタで構成した場合で、ローカルのOracleホームを持つ場合は、次を実行してOracle Databaseホームをnode3に拡張します。

    1. node1Oracle_home/addnodeディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.shスクリプトを実行します。

      $ ./addnode.sh "CLUSTER_NEW_NODES={node3}"
    2. rootとしてnode3Oracle_home/root.shスクリプトを実行します。Oracle_homeはOracle RACホームです。

    3. SQL*Plusセッションで次のコマンドを使用して、新しく追加したノードでプラガブル・データベース(PDB)をオープンします。

      SQL> CONNECT / AS SYSDBA
      SQL> ALTER PLUGGABLE DATABASE pdb_name OPEN;

    Oracle Automatic Storage Management Cluster File System (Oracle ACFS)を使用して共有されている共有Oracleホームを持つ場合は、次の手順を実行し、Oracle Databaseホームをnode3に拡張します。

    1. rootとして、node3に対しGrid_home/root.shスクリプトを実行します。Grid_homeはOracle Grid Infrastructureホームです。

    2. Oracle RACをインストールしたユーザーとして、追加したノードのOracle_home/oui/binディレクトリから次のコマンドを実行し、Oracle RACデータベース・ホームを追加します。

      $ ./runInstaller -attachHome ORACLE_HOME="ORACLE_HOME" "CLUSTER_NODES={node3}"
      LOCAL_NODE="node3" ORACLE_HOME_NAME="home_name" -cfs
    3. node1Oracle_home/addnodeディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.shスクリプトを実行します。

      $ ./addnode.sh -noCopy "CLUSTER_NEW_NODES={node3}"

      ノート:

      宛先ノードのOracleホームはすでにソフトウェアに完全に移入されているため、-noCopyオプションを使用します。

    Oracle ACFS以外の共有ファイル・システムで共有Oracleホームを持つ場合は、まずターゲット・ノードでOracle RACデータベース・ホームのマウント・ポイントを作成し、Oracle RACデータベース・ホームをマウントおよびアタッチし、次のようにOracle Inventoryを更新します。

    1. クラスタ内の既存ノードでsrvctl config database -db db_nameコマンドを実行して、マウント・ポイント情報を取得します。

    2. 次のコマンドをrootとしてnode3で実行し、マウント・ポイントを作成します。

      # mkdir -p mount_point_path
    3. Oracle RACデータベース・ホームをホストするファイル・システムをマウントします。

    4. Oracle RACをインストールしたユーザーとして、追加したノードのOracle_home/oui/binディレクトリから次のコマンドを実行し、Oracle RACデータベース・ホームを追加します。

      $ ./runInstaller -attachHome ORACLE_HOME="ORACLE_HOME" "CLUSTER
      _NODES={local_node_name}" LOCAL_NODE="node_name" ORACLE_HOME_NAME="home_name" -cfs

      node1Oracle_home/addnodeディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.shスクリプトを実行します。

      $ ./addnode.sh -noCopy "CLUSTER_NEW_NODES={node3}"

      ノート:

      宛先ノードのOracleホームはすでにソフトウェアに完全に移入されているため、-noCopyオプションを使用します。

    ノート:

    addnode.shの実行後、Grid_home/network/admin/samplesディレクトリの権限が750に設定されていることを確認します。
  8. rootとしてGrid_home/binディレクトリから次のコマンドを実行して、新しいノードでOracle ACFSリソースを起動します。

    # srvctl start filesystem -device volume_device_name -node node3

    ノート:

    Oracleホームが格納されているOracle ACFSレジストリ・リソースおよびOracle ACFSファイル・システム・リソースを含むOracle ACFSリソースが、新しく追加されたノードでオンラインであることを確認します。

  9. Oracle Clusterwareをインストールしたユーザーとして次のCVUコマンドを実行して、クラスタの整合性をチェックします。このコマンドで、指定した任意の数のノードがネットワーク、共有記憶域およびクラスタウェアの各レベルでクラスタに正常に追加されていることを確認します。

    $ cluvfy stage -post nodeadd -n node3 [-verbose]

LinuxおよびUNIXシステムでのクラスタ・ノードの削除

LinuxおよびUNIXシステムでのクラスタ・ノードの削除。

ノート:

  • GNSが提供するクラスタの最後のノードを削除する場合、GNSからそのクラスタのエントリを削除する必要があります。

  • 固定解除されているクラスタにノードがある場合、しばらくするとOracle Clusterwareはそれらのノードを無視するため、ユーザーが削除する必要はありません。

  • (特定のノードでサービスを無効にしたり、サーバー・プールの候補リストにノードを追加するなどして)あるノードにノード固有の構成を作成すると、ノードがクラスタから削除されても、ノード固有の構成は削除されません。このようなノード固有の構成は、手動で削除する必要があります。

  • クラスタに変更を行うと、投票ファイルは自動的にOCRにバックアップされます。

  • Oracle Flex Clusterからハブではないノードを削除する場合は、次の手順のステップ1から4のみを実行します。

クラスタからノードを削除するには:

  1. Grid_homeが各ノード上のOracle Clusterwareホームへの完全なディレクトリ・パスを正しく指定していることを確認します。Grid_homeは、Oracle Clusterwareソフトウェアをインストールした場所です。
  2. rootとしてまたはOracle Clusterwareをインストールしたユーザーとして次のコマンドを実行し、削除対象のノードがアクティブであるかどうか、および固定されているかどうかを確認します。
    $ olsnodes -s -t

    ノードが固定されている場合は、crsctl unpin cssコマンドを実行します。それ以外の場合は、次のステップに進みます。

  3. 削除するノードで、実行中のすべてのOracle Databaseインスタンスを停止します。
    $ srvctl stop instance -n node_to_be_deleted
  4. 削除対象のノードで、共有Oracleホームを持つかローカルOracleホームを持つかに応じて、Oracle Clusterwareをインストールしたユーザーとして、次のいずれかの手順を実行します。
    • ローカル・ホームの場合は、次のコマンドを実行し、削除対象のノードからOracle Clusterwareホームを削除します。Grid_homeは、Oracle Clusterwareホームに定義されているパスです。

      $ Grid_home/deinstall/deinstall -local

      注意:

      • -localフラグを指定しない場合は、コマンドによって、クラスタ内のすべてのノードからOracle Grid Infrastructureホームが削除されます。

      • 前述のコマンドラインをカット・アンド・ペーストする場合は、このドキュメントに含まれている書式設定を削除するために、テキスト・エディタにペーストしてからコマンドラインにペーストしてください。

      ノート:

      または、Oracle Grid Infrastructureを構成した後でグリッド・インフラストラクチャからノードを削除する場合、Grid_home/gridSetup.shを実行し、「クラスタからのノードの削除」を選択してプロンプトに従えば削除できます。
    • 共有ホームがある場合は、削除するノードで次のコマンドを次の順序で実行します。

      Oracle Clusterwareを構成解除するには、次のコマンドを実行します。

      $ Grid_home/crs/install/rootcrs.sh -deconfig -force

      Gridホームをデタッチするには、次のコマンドをGrid_home/oui/binディレクトリから実行します。

      $ ./runInstaller -detachHome ORACLE_HOME=Grid_home -silent -local

      インストール・ユーティリティの指示に従って、構成ファイルがあれば手動で削除します。

  5. 削除対象ではない任意のノードから、rootとしてGrid_home/binディレクトリで次のコマンドを実行して、クラスタからノードを削除します。
    # crsctl delete node -n node_to_be_deleted
  6. 指定したノードがクラスタから正常に削除されたことを確認するには、次のCVUコマンドを実行します。
    $ cluvfy stage -post nodedel -n node_list [-verbose]
  7. Oracle Clusterwareが停止しているクラスタ・ノードを削除した場合、次のようにして、削除したノードのVIPが削除されずに残っていないかどうか確認します。
    $ srvctl config vip -node deleted_node_name

    VIPがまだ残っている場合、次のようにして削除します。

    $ srvctl stop vip -vip vip_name
    $ srvctl remove vip -vip vip_name

フリート・パッチ適用およびプロビジョニングを使用したノードの削除

フリート・パッチ適用およびプロビジョニングを使用して、次の例に示す1つのコマンドでクラスタからノードを削除することもできます。

$ rhpctl deletenode gihome -client rhpclient -node clientnode2 -root

前述の例では、clientnode2というノードを、ルート資格証明を使用して(削除するノードへのログイン)、rhpclientというフリート・パッチ適用およびプロビジョニング・クライアントから削除しています。

Windowsシステムでのクラスタ・ノードの追加および削除

この項では、Windowsシステムでのクラスタ・ノードの追加および削除について説明します。この項には次のトピックが含まれます:

関連項目:

クラスタ全体を削除する方法の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Microsoft Windows』を参照してください

Windowsシステムでのクラスタへのノードの追加

ノードを追加する前に、「クラスタ・ノードを追加するための必須ステップ」にリストされている前提条件を満たしておく必要があります。

この手順では、クラスタにノードを追加する方法について説明します。この手順では、次の項目を前提としています。

  • node1およびnode2という2つのノードを持つクラスタが存在する

  • node3という名前のノードを追加する

  • Oracle Clusterwareがnode1およびnode2のローカル・ホームにインストールされており、Grid_homeは正常にインストールされたホームを表す

ノート:

WindowsシステムでOracle DatabaseがOracle Database 10gリリース1(10.1)からアップグレードされている構成の場合は、クラスタ・ノードの追加に、この項で説明する手順を使用しないでください。

ノードを追加するには:

  1. クラスタおよびnode3の整合性を検証します。

    C:\>cluvfy stage -pre nodeadd -n node3 [-fixup] [-verbose]

    -fixupオプションと、検証が失敗した場合にクラスタまたはノードを修正するための指示がCVUによって出力されるディレクトリを指定できます。

  2. node1Grid_home\addnodeディレクトリに移動し、addnode.batスクリプトを次のように実行します。

    C:\>addnode.bat "CLUSTER_NEW_NODES={node3}"
    "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node3-vip}"
  3. 新規ノードで次のコマンドを実行します。

    C:\>Grid_home\crs\config\gridconfig.bat
  4. Oracle ACFSを使用するようにデータベース・ホームを構成した場合にのみ、次のステップを実行する必要があります。

    1. Oracle ACFSを使用するように構成した各データベースに対して、Oracle RACデータベース・ホームから次のコマンドを実行します。

      C:\>ORACLE_HOME\bin\srvctl stop database -db database_unique_name

      ノート:

      Oracle Clusterwareで構成されているすべてのデータベースをリストするには、srvctl config databaseコマンドを実行します。データベースの詳細を検索するには、srvctl config database -db database_unique_nameを使用します。ORACLE_HOMEのパスがOracle ACFSのマウント・パスにつながる場合、データベースはOracle ACFSを使用します。このコマンドの出力から、新しく追加されたノードで実行するように構成されたデータベース・インスタンス名を見つけます。

    2. Windows Server Manager Controlを使用して、サービスを停止して削除します。

    3. このステップの最初の部分で収集したデータベースおよびデータベース・ホームのそれぞれに対して、次のコマンドを実行します。

      C:\> ORACLE_HOME\bin\srvctl start database -db database_unique_name
  5. 次のコマンドを実行し、構成済のすべてのノード(既存のノードと追加したノードの両方)でOracle Clusterwareコンポーネントの整合性を検証します。

    C:\>cluvfy stage -post crsinst -n all [-verbose]

この項のノードの追加手順を完了してから、必要に応じてOracle RACコンポーネントを含むOracle Databaseを新規ノードに拡張し、新規ノードを既存のOracle RACデータベースのメンバーにすることも可能です。

関連項目:

Oracle RACを含むOracle Databaseの新規ノードへの拡張の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

OraMTS Service for Microsoft Transaction Serverの作成

Oracle Services for Microsoft Transaction Server (OraMTS)を使用すると、Microsoftアプリケーションで調整されるトランザクション内で、リソース・マネージャとしてOracle Databaseを使用できます。OraMTSは、Microsoft分散トランザクション・コーディネータ(MSDTC)に対するOracle Databaseのプロキシとして機能します。この結果、OraMTSによってクライアント側の接続プールが提供され、Oracleを利用するクライアント・コンポーネントを昇格可能なトランザクションおよび分散トランザクションに使用できるようになります。また、サービス自体がWindowsで実行される場合、OraMTSは、任意のオペレーティング・システム上で実行されているOracle Databaseと連携して動作できます。

Oracle Database 12cより前のリリースでは、OraMTSはソフトウェアのみのインストールの一部として作成されました。Oracle Database 12c以上では、構成ツールを使用してこのサービスを作成する必要があります。

ノードの追加後、またはOracle RACのソフトウェアのみのインストールを実行した後でOraMTSサービスを作成するには、次の手順を実行します。

  1. コマンド・ウィンドウを開きます。

  2. ディレクトリを%ORACLE_HOME%\binに変更します。

  3. OraMTSCtlユーティリティを実行してOraMTSサービスを作成します(ここで、host_nameはサービスが作成されるノードのリストです)。

    C:\..bin> oramtsctl.exe -new -host host_name

関連項目:

分散されるトランザクション内で、リソース・マネージャとしてOracle Databaseを使用できるOraMTSの詳細は、『Oracle Services for Microsoft Transaction Server開発者ガイドfor Microsoft Windows』を参照してください。

Windowsシステムでのクラスタ・ノードの削除

Windowsシステムでのクラスタ・ノードの削除。

この手順は、Oracle Clusterwareがnode1node2およびnode3にインストールされており、クラスタからnode3を削除すると想定しています。

ノート:

  • Oracleでは、WindowsシステムでOracle Enterprise Managerを使用してノードを削除することはサポートしていません。

  • GNSが提供するクラスタの最後のノードを削除する場合、GNSからそのクラスタのエントリを削除する必要があります。

  • クラスタからノードを削除する前にノードからOracle RACデータベース・インスタンスを削除することができますが、このステップは必須ではありません。インスタンスを削除しない場合、インスタンスは構成されたままですが、実行されることはありません。クラスタからノードを削除しても、クラスタからノードの構成情報が削除されることはありません。残った構成情報がクラスタの操作を妨害することはありません。

    関連項目: Oracle RACデータベース・インスタンスの削除の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

Windowsシステムでクラスタ・ノードを削除するには:

  1. ローカル・ホームを持つ場合のみ、削除対象のノードで次のコマンドを-localオプションで実行し、ノード・リストを更新します。
    C:\>Grid_home\oui\bin\setup.exe -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES=
    {node_to_be_deleted}" CRS=TRUE -local

    ノート:

    Oracle Flex Clusterからハブではないノードを削除する場合、このコマンドを実行する必要はありません。

  2. 次のように、削除するノードで削除ツールを実行して、Oracle Clusterwareホームを削除して構成解除します。
    C:\Grid_home\deinstall\>deinstall.bat -local

    注意:

    • -localフラグを指定しない場合は、コマンドによって、クラスタ内のすべてのノードからOracle Grid Infrastructureホームが削除されます。

    • 前述のコマンドラインをカット・アンド・ペーストする場合は、このドキュメントに含まれている書式設定を削除するために、テキスト・エディタにペーストしてからコマンドラインにペーストしてください。

  3. 削除対象ではないノードで、次のコマンドを実行します。
    C:\>Grid_home\bin\crsctl delete node -n node_to_be_deleted
  4. 指定したノードがクラスタから正常に削除されたことを確認するには、次のCVUコマンドを実行します。
    C:\>cluvfy stage -post nodedel -n node_list [-verbose]
  5. Oracle Clusterwareが停止しているクラスタ・ノードを削除した場合、次のようにして、削除したノードのVIPが削除されずに残っていないかどうか確認します。
    C:\> ORACLE_HOME\bin\srvctl config vip -node deleted_node_name

    VIPがまだ残っている場合、次のようにして削除します。

    C:\> ORACLE_HOME\bin\srvctl stop vip -vip vip_name
    C:\> ORACLE_HOME\bin\srvctl remove vip -vip vip_name