6 クラスタ・ノードの追加および削除
既存のクラスタにノードを追加する方法、およびクラスタからノードを削除する方法について説明します。
ノート:
-
特に指定がないかぎり、Oracle Clusterwareをインストールしたユーザーとしてノードの追加および削除のすべてのステップを実行します。
-
クラスタを作成する場合は、「Oracle Clusterwareのクローニング」に記載されているクローニング手順を使用することをお薦めします。
関連トピック
クラスタ・ノードを追加するための必須ステップ
この項では、クラスにノードを追加する前に実行する必要がある必須ステップを示します。
ノート:
クラスタにノードを追加する前に、『Oracle Grid Infrastructureインストレーション・ガイドfor Linux』に示す前処理を実行してください。
Oracle Grid Infrastructureをインストールしないでください。ソフトウェアはクラスタにノードを追加したときに既存のノードからコピーされます。
次のステップを実行して、クラスタに追加するノードを準備します。
-
物理的な接続を確立します。
ノードのハードウェアをクラスタのネットワーク・インフラストラクチャに接続します。この作業には、電気的な接続の確立、ネットワーク・インターコネクトの構成、共有ディスク・サブシステム接続の構成などが含まれます。このステップの詳細は、ハードウェア・ベンダーのマニュアルを参照してください。
-
オペレーティング・システムをインストールします。
クラスタの他のノード上のオペレーティング・システムと一致するオペレーティング・システムのクローン・イメージをインストールします。これには、必要なサービス・パッチ、更新およびドライバのインストールも含まれます。この手順の詳細は、オペレーティング・システム・ベンダーのマニュアルを参照してください。
ノート:
クローン・イメージを使用することをお薦めします。ただし、インストール要件が満たされている場合は、ベンダーのドキュメントに従ってオペレーティング・システムをインストールしてください。
-
Oracleユーザーを作成します。
既存ノードに存在すべてのOracleユーザーを新規ノードで作成する必要があります。たとえば、2つのノードを持つクラスタにノードを追加する際、これら2つのノードでOracle Grid InfrastructureホームとOracleホームに異なる所有者が存在する場合は、新規ノードにOracleホームをインストールする予定がなくても、新規ノードでこれらの所有者を作成する必要があります。
ノート:
このステップは、LinuxおよびUNIXシステムに対してのみ実行します。
root
として、既存ノードと同じユーザーIDおよびグループIDを使用してOracleユーザーおよびグループを作成します。 -
指定したノードを既存のクラスタに追加する前に、そのノードが正しく構成されているかどうかを検証する場合、および指定したノードを追加する前にクラスタの整合性を検証する場合は、
cluvfy stage -pre nodeadd
コマンドを使用します。$ cluvfy stage -pre nodeadd -n node_list -method root
この手順を完了すると、ノードをクラスタに追加できるようになります。
ノート:
Oracle Clusterwareインストールの完了後は、ホスト名の変更(ドメイン修飾の追加または削除を含む)はしないでください。ホスト名を変更されたノードはクラスタから削除され、新しい名前で追加されます。
LinuxおよびUNIXシステムでのクラスタ・ノードの追加および削除
LinuxおよびUNIXシステムでのクラスタ・ノードの追加および削除。
この項のノードの追加の手順は、「クラスタ・ノードを追加するための必須ステップ」の項のステップを完了していることを前提としています。
ノード追加プロセスの最後のステップには、既存のノード上のOracle Clusterwareホームから追加対象ノードへのOracle Clusterwareホームの拡張が含まれます。
関連トピック
LinuxおよびUNIXシステムでのクラスタ・ノードの追加
ノードをクラスタに追加する場合は、使用できる方法が2つあります。
Oracle Grid Infrastructureインストーラを使用したノードの追加
ノート:
$Oracle_home/install/response/gridSetup.rsp
テンプレートを使用すると、非対話型(サイレント・モード)操作用のOracle Grid Infrastructureインストーラを使用してノードを追加するためのレスポンス・ファイルを作成できます。
この手順では、次の項目を前提としています。
-
node1
およびnode2
という2つのノードを持つクラスタが存在する -
node1
およびnode2
にOracle Clusterwareが正常にインストールされている -
node3
という名前のノードを追加する
Oracle Grid Infrastructureインストーラを使用してノードをクラスタに追加するには、次の手順を実行します。
-
クラスタの既存のノード上のGrid_homeで、gridユーザーとして
./gridSetup.sh
を実行しインストーラを起動します。Grid_homeはOracle Grid Infrastructureホームです。 -
「構成オプションの選択」ページで、「クラスタに、さらにノードを追加してください」を選択します。
-
「クラスタ・ノード情報」ページで、「追加」をクリックして、追加するノードに関する情報を提供します。
-
検証プロセスが「前提条件チェックの実行」ページで完了したら、サマリーを確認し、「インストール」をクリックします。
-
プロンプトに従い、追加するノードで
root
としてorainstRoot.sh
スクリプトを実行して、/etc/oraInst.loc
ファイルに中央インベントリの場所を移入します。たとえば:# /opt/oracle/oraInventory/orainstRoot.sh
ノート:
新しいノード用のデータベースと事前構成済データベース・インスタンスがない場合は、プロンプトに従って
Grid_home/root.sh
スクリプトを実行します。次のステップでGrid_home/root.sh
の実行を求められる場合がありますが、このスクリプトは、正常に実行された後に再度実行する必要はありません。 -
node3でrootとして
Grid_home/root.sh
スクリプトを実行し、指示に従って後続のスクリプトを実行します。このスクリプトを実行する前に、次のノートを確認してください。ノート:
-
前のステップで
root.sh
スクリプトを実行した場合は、再度実行する必要はありません。 -
クラスタに追加するノード上でデータベース・インスタンスが構成されている場合は、
root.sh
スクリプトを実行する前に、Oracleホームを新規ノードに拡張する必要があります。または、
srvctl remove instance
コマンドを使用してデータベース・インスタンスを削除します。
-
-
以下のうち、ご使用のシステム構成に当てはまる手順を実行します。
ノート:
対話モードで
Oracle_home
/addnode
を実行した場合は、新しいノードがまだOracle Grid Infrastructure用に構成されていないため、前提条件チェック・エラーがいくつか表示されます。これらの警告は無視してかまいません。クラスタ上でOracle RACまたはOracle RAC One Nodeデータベースを構成してあり、ローカルのOracleホームがある場合は、次の手順を実行してOracle Databaseホームを
node3
に拡張します。-
node1
のOracle_home
/addnode
ディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.sh
スクリプトを実行します。$ ./addnode.sh "CLUSTER_NEW_NODES='{node3,node4}'"
-
root
としてnode3
でOracle_home
/root.sh
スクリプトを実行します。Oracle_home
はOracle RACホームです。「OK」をクリックして、「構成スクリプトの実行」ダイアログ・ボックスを閉じます。
-
「閉じる」をクリックしてインストール・プロセスを完了し、インストーラを終了します。
-
node1
のORACLE_HOME/bin/
ディレクトリに移動し、Oracle RACをインストールしたユーザーとしてOracle DBCAを実行します。$ ./dbca
-
「データベース操作」ウィンドウで「Oracle RACデータベース・インスタンス管理」を選択し、「次」をクリックします。
-
「インスタンス操作」ウィンドウで「インスタンスの追加」を選択し、「次」をクリックします。
-
「データベースの選択」ウィンドウで、新しいノードにインスタンスを追加するデータベースを選択し、「次」をクリックします。
オペレーティング・システム認証を使用できない場合は、使用するデータベース資格証明をこのウィンドウに入力することもできます。
-
「インスタンスの詳細」ウィンドウでインスタンス名を指定し、「次」をクリックします。
- 「サマリー」ウィンドウで構成の詳細を確認し、「終了」をクリックします。
インスタンスの追加が完了したら、「終了」ウィンドウの「閉じる」をクリックしてOracle DBCAを終了します。
Oracle Advanced Cluster File System (Oracle ACFS)を使用して共有されている共有Oracleホームがある場合は、次の手順を実行してOracle Databaseホームを
node3
に拡張します。-
root
として、node3
に対しGrid_home
/root.sh
スクリプトを実行します。Grid_home
はOracle Grid Infrastructureホームです。 -
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
-
node1
のOracle_home
/addnode
ディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.sh
スクリプトを実行します。$ ./addnode.sh -noCopy "CLUSTER_NEW_NODES='{node3,node4}'"
ノート:
宛先ノードのOracleホームはすでにソフトウェアに完全に移入されているため、
-noCopy
オプションを使用します。
Oracle ACFS以外の共有ファイル・システム上に共有Oracleホームがある場合は、まず次のようにターゲット・ノードでOracle RACデータベース・ホームのマウント・ポイントを作成し、Oracle RACデータベース・ホームをマウントおよびアタッチし、Oracle Inventoryを更新します。
-
クラスタ内の既存ノードで
srvctl config database -db db_name
コマンドを実行して、マウント・ポイント情報を取得します。 -
次のコマンドを
root
としてnode3
で実行し、マウント・ポイントを作成します。# mkdir -p mount_point_path
-
Oracle RACデータベース・ホームをホストするファイル・システムをマウントします。
-
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
node1
のOracle_home/addnode
ディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.sh
スクリプトを実行します。$ ./addnode.sh -noCopy "CLUSTER_NEW_NODES='{node3,node4}'"
ノート:
宛先ノードのOracleホームはすでにソフトウェアに完全に移入されているため、
-noCopy
オプションを使用します。
ノート:
addnode.sh
の実行後、Grid_home/network/admin/samples
ディレクトリの権限が750に設定されていることを確認します。 -
-
root
としてGrid_home/bin
ディレクトリから次のコマンドを実行して、新しいノード(node3
)でOracle ACFSリソースを起動します。# srvctl start filesystem -device volume_device_name -node node3
ノート:
-
このステップは、クラスタ・ノードの追加の手順を実行する前にクラスタにOracle ACFSファイル・システムが登録されていた場合にのみ必要です。このステップが必要な場合は、登録されているOracle ACFSファイル・システムごとに繰り返します。
-
Oracleホームが格納されているOracle ACFSレジストリ・リソースおよびOracle ACFSファイル・システム・リソースを含むOracle ACFSリソースが、新しく追加されたノードでオンラインであることを確認します。
-
-
Oracle Clusterwareをインストールしたユーザーとして次のCVUコマンドを実行して、クラスタの整合性をチェックします。このコマンドで、指定した任意の数のノードがネットワーク、共有記憶域およびクラスタウェアの各レベルでクラスタに正常に追加されていることを確認します。
$ cluvfy stage -post nodeadd -n node3 [-verbose]
Oracle Fleet Patching and Provisioningを使用したノードの追加
Oracle Fleet Patching and Provisioning (Oracle FPP)サーバーがある場合は、次の例に示すように、Oracle FPPを使用して、1つのコマンドでクラスタにノードを追加できます:
$ rhpctl addnode gihome -client rhpclient -newnodes clientnode2:clientnode2-vip -root
前述の例では、VIP clientnode2-vip
を含むclientnode2
というノードを、ルート資格証明を使用して(追加するノードへのログイン)、rhpclient
というフリート・パッチ適用およびプロビジョニング・クライアントに追加しています。
LinuxおよびUNIXシステムでのクラスタ・ノードの削除
LinuxおよびUNIXシステムでのクラスタ・ノードの削除。
ノート:
-
GNSが提供するクラスタの最後のノードを削除する場合、GNSからそのクラスタのエントリを削除する必要があります。
-
固定解除されているクラスタにノードがある場合、しばらくするとOracle Clusterwareはそれらのノードを無視するため、ユーザーが削除する必要はありません。
-
特定のノードでサービスを無効にするなどして、あるノードにノード固有の構成を作成すると、ノードがクラスタから削除されても、ノード固有の構成は削除されません。このようなノード固有の構成は、手動で削除する必要があります。
-
クラスタに変更を行うと、投票ファイルは自動的にOCRにバックアップされます。
クラスタからノードを削除するには、次のいずれかの手順を実行します。gridSetup.sh
を使用する最初の手順をお薦めします。
ノート:
次の手順の中には、削除するノードから実行する必要があるコマンドを含んだステップがあります。削除しようとしているノードにアクセスできない場合は、これらのステップをスキップできます。gridSetupを使用したノードの削除
-
grid
ユーザーとして、削除しないノードからOracle Grid Infrastructureホーム内のgridSetup.sh
スクリプトを実行します。$ Grid_home/gridSetup.sh
-
「クラスタからのノードの削除」オプションを選択し、「次へ」をクリックします。
-
削除するノードを選択し、「次へ」をクリックします。選択したノードを削除できるノードにアクセスできることを確認します。
-
sudo
権限などのroot実行オプションを選択します。 -
インストーラからプロンプトが表示されたら、新しい端末ウィンドウを開き、次のスクリプトを実行します:
- 削除するノード上の
rootdeinstall.sh
。 - 現在のローカル・ノードのノード上の
rootdelete.sh
。
- 削除するノード上の
- ダイアログ・ボックスで「OK」をクリックし、ノードの削除を終了します。
crsctl delete nodeコマンドを使用したノードの削除
-
(オプション)
Grid_home
が各ノード上のOracle Clusterwareホームへの完全なディレクトリ・パスを正しく指定していることを確認します。Grid_home
が、Oracle Clusterwareソフトウェアをインストールした場所です。 -
(オプション)
root
として、またはOracle Clusterwareをインストールしたユーザーとして次のコマンドを実行し、削除対象のノードがアクティブであるかどうか、および固定されているかどうかを確認します。$ olsnodes -s -t
ノードが固定されている場合は、
crsctl unpin css
コマンドを実行します。それ以外の場合は、次のステップに進みます。 - 削除するノードで、実行中のすべてのOracle Databaseインスタンスを停止します。
$ srvctl stop instance -n node_to_be_deleted
-
(オプション)削除対象のノードで、共有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
インストール・ユーティリティの指示に従って、構成ファイルがあれば手動で削除します。
-
-
削除対象ではない任意のノードから、
rootとして
Grid_home/bin
ディレクトリで次のコマンドを実行して、クラスタからノードを削除します。# crsctl delete node -n node_to_be_deleted [-purge]
ノードを完全に削除し、そのノード番号を再利用するには、
-purge
オプションを使用します。ただし、削除したノードを同じノード名と同じノード番号で追加しなおす場合は、-purge
オプションを使用しないでください。 -
指定したノードがクラスタから正常に削除されたことを確認するには、次のCVUコマンドを実行します。
$ cluvfy stage -post nodedel -n node_list [-verbose]
-
Oracle Clusterwareが停止しているクラスタ・ノードを削除した場合、次のようにして、削除したノードのVIPが削除されずに残っていないかどうか確認します。
$ srvctl config vip -node deleted_node_name
VIPがまだ残っている場合、次のようにして削除します。
$ srvctl stop vip -vip vip_name $ srvctl remove vip -vip vip_name
Oracle Fleet Patching and Provisioningを使用したノードの削除
フリート・パッチ適用およびプロビジョニングを使用して、次の例に示す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
は正常にインストールされたホームを表す
ノードを追加するには:
-
クラスタおよび
node3
の整合性を検証します。C:\>cluvfy stage -pre nodeadd -n node3 [-fixup] [-verbose]
-fixup
オプションと、検証が失敗した場合にクラスタまたはノードを修正するための指示がCVUによって出力されるディレクトリを指定できます。 -
node1
でGrid_home\addnode
ディレクトリに移動し、addnode.bat
スクリプトを次のように実行します。C:\>addnode.bat "CLUSTER_NEW_NODES={node3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node3-vip}"
addnode.bat
は、Oracle Grid InfrastructureインストーラをGUIモードで起動します。 -
新規ノードで次のコマンドを実行します。
C:\>Grid_home\crs\config\gridconfig.bat
-
Oracle ACFSを使用するようにデータベース・ホームを構成した場合にのみ、次のステップを実行する必要があります。
-
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を使用します。このコマンドの出力から、新しく追加されたノードで実行するように構成されたデータベース・インスタンス名を見つけます。 -
Windows Server Manager Controlを使用して、サービスを停止して削除します。
-
このステップの最初の部分で収集したデータベースおよびデータベース・ホームのそれぞれに対して、次のコマンドを実行します。
C:\> ORACLE_HOME\bin\srvctl start database -db database_unique_name
-
-
次のコマンドを実行し、構成済のすべてのノード(既存のノードと追加したノードの両方)でOracle Clusterwareコンポーネントの整合性を検証します。
C:\>cluvfy stage -post crsinst -allnodes [-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サービスを作成するには、次の手順を実行します。
-
コマンド・ウィンドウを開きます。
-
ディレクトリを
%ORACLE_HOME%\bin
に変更します。 -
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がnode1
、node2
およびnode3
にインストールされており、クラスタからnode3
を削除すると想定しています。
ノート:
-
Oracleでは、WindowsシステムでOracle Enterprise Managerを使用してノードを削除することはサポートしていません。
-
GNSが提供するクラスタの最後のノードを削除する場合、GNSからそのクラスタのエントリを削除する必要があります。
-
クラスタからノードを削除する前にノードからOracle RACデータベース・インスタンスを削除することができますが、このステップは必須ではありません。インスタンスを削除しない場合、インスタンスは構成されたままですが、実行されることはありません。クラスタからノードを削除しても、クラスタからノードの構成情報が削除されることはありません。残った構成情報がクラスタの操作を妨害することはありません。
関連項目: Oracle RACデータベース・インスタンスの削除の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
Windowsシステムでクラスタ・ノードを削除するには: