6 クラスタ・ノードの追加および削除
既存のクラスタにノードを追加する方法、およびクラスタからノードを削除する方法について説明します。
この章では、Linux、UNIXおよびWindowsシステムでこれらのタスクを実行する手順を説明しています。
ノート:
-
特に指定がないかぎり、Oracle Clusterwareをインストールしたユーザーとしてノードの追加および削除のすべてのステップを実行します。
-
フリート・パッチ適用およびプロビジョニングを使用して、クラスタ・ノードを追加および削除できます。
-
クラスタを作成する場合は、「Oracle Clusterwareのクローニング」に記載されているクローニング手順を使用することをお薦めします。
この章の内容は次のとおりです。
関連トピック
クラスタ・ノードを追加するための必須ステップ
ノート:
クラスタにノードを追加する前に、『Oracle Grid Infrastructureインストレーション・ガイドfor Linux』に示す前処理を実行してください。
Oracle Clusterwareはインストールしないでください。ソフトウェアはクラスタにノードを追加したときに既存のノードからコピーされます。
次のステップを実行して、クラスタに追加するノードを準備します。
-
物理的な接続を確立します。
ノードのハードウェアをクラスタのネットワーク・インフラストラクチャに接続します。この作業には、電気的な接続の確立、ネットワーク・インターコネクトの構成、共有ディスク・サブシステム接続の構成などが含まれます。このステップの詳細は、ハードウェア・ベンダーのマニュアルを参照してください。
-
オペレーティング・システムをインストールします。
クラスタの他のノード上のオペレーティング・システムと一致するオペレーティング・システムのクローン・イメージをインストールします。これには、必要なサービス・パッチ、更新およびドライバのインストールも含まれます。この手順の詳細は、オペレーティング・システム・ベンダーのマニュアルを参照してください。
ノート:
クローン・イメージを使用することをお薦めします。ただし、インストール要件が満たされている場合は、ベンダーのドキュメントに従ってオペレーティング・システムをインストールしてください。
-
Oracleユーザーを作成します。
既存ノードに存在すべてのOracleユーザーを新規ノードで作成する必要があります。たとえば、2つのノードを持つクラスタにノードを追加する際、これら2つのノードでOracle Grid InfrastructureホームとOracleホームに異なる所有者が存在する場合は、新規ノードにOracleホームをインストールする予定がなくても、新規ノードでこれらの所有者を作成する必要があります。
ノート:
このステップは、LinuxおよびUNIXシステムに対してのみ実行します。
root
として、既存ノードと同じユーザーIDおよびグループIDを使用してOracleユーザーおよびグループを作成します。 -
SSHがノードに構成されていることを確認します。
ノート:
Oracle Clusterwareをインストールすると、SSHが構成されます。SSHが構成されない場合は、SSHの構成について、『Oracle Grid Infrastructureインストレーション・ガイド』を参照してください。
-
クラスタ検証ユーティリティ(CVU)を使用して、ハードウェアおよびオペレーティング・システムのインストールを確認します。
追加対象ノードにハードウェアおよびオペレーティング・システムを構成した後、次のコマンドを実行して、クラスタ内の他のノードから追加対象ノードへの到達可能性を検査できます。また、このコマンドで、ローカル・ノードから指定されたすべてのノードへのユーザー等価関係、指定されたすべてのノード間のノード接続性、指定されたすべてのノードからの共有記憶域へのアクセス可能性などを検査することもできます。
-
既存ノードで、
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]
-
グリッド・インフラストラクチャ管理リポジトリに、前述の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_home/install/response/gridSetup.rsp
テンプレートを使用すると、非対話型(サイレント・モード)操作用のOracle Grid Infrastructureインストーラを使用してノードを追加するためのレスポンス・ファイルを作成できます。
Oracle Grid Infrastructureインストーラを使用してノードをクラスタに追加するには、次の手順を実行します。
-
./gridSetup.sh
を実行して、インストーラを起動します。 -
「構成オプションの選択」ページで、「クラスタに、さらにノードを追加してください」を選択します。
-
「クラスタ・ノード情報」ページで、「追加」をクリックして、追加するノードに関する情報を提供します。
-
検証プロセスが「前提条件チェックの実行」ページで完了したら、サマリーを確認し、「インストール」をクリックします。
-
プロンプトに従い、
orainstRoot.sh
スクリプトをrootとして実行して、/etc/oraInst.loc
ファイルに中央インベントリの場所を移入します。たとえば:# /opt/oracle/oraInventory/orainstRoot.sh
-
node3でrootとして
Grid_home/root.sh
スクリプトを実行し、指示に従って後続のスクリプトを実行します。ノート:
-
前のステップで
root.sh
スクリプトを実行した場合は、再度実行する必要はありません。 -
ポリシー管理データベースを使用している場合、必ずOracleホームを新しいノードにクローニングしてから
root.sh
スクリプトを実行してください。 -
クラスタに追加するノード上で管理者管理データベース・インスタンスが構成されている場合は、
root.sh
スクリプトを実行する前に、Oracleホームを新規ノードに拡張する必要があります。または、
srvctl remove instance
コマンドを使用して管理者管理データベース・インスタンスを削除します。
-
-
Oracle RACまたはOracle RAC One Nodeデータベースをクラスタで構成した場合で、ローカルのOracleホームを持つ場合は、次を実行してOracle Databaseホームを
node3
に拡張します。-
node1
のOracle_home
/addnode
ディレクトリに移動し、次の構文を使用してOracle RACをインストールしたユーザーとしてaddnode.sh
スクリプトを実行します。$ ./addnode.sh "CLUSTER_NEW_NODES={node3}"
-
root
としてnode3
でOracle_home
/root.sh
スクリプトを実行します。Oracle_home
はOracle RACホームです。 -
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
に拡張します。-
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}"
ノート:
宛先ノードの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}"
ノート:
宛先ノードのOracleホームはすでにソフトウェアに完全に移入されているため、
-noCopy
オプションを使用します。
ノート:
addnode.sh
の実行後、Grid_home/network/admin/samples
ディレクトリの権限が750に設定されていることを確認します。 -
-
root
としてGrid_home/bin
ディレクトリから次のコマンドを実行して、新しいノードでOracle ACFSリソースを起動します。# srvctl start filesystem -device volume_device_name -node node3
ノート:
Oracleホームが格納されているOracle ACFSレジストリ・リソースおよびOracle ACFSファイル・システム・リソースを含むOracle ACFSリソースが、新しく追加されたノードでオンラインであることを確認します。
-
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つのコマンドでクラスタからノードを削除することもできます。
$ 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)からアップグレードされている構成の場合は、クラスタ・ノードの追加に、この項で説明する手順を使用しないでください。
ノードを追加するには:
-
クラスタおよび
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}"
-
新規ノードで次のコマンドを実行します。
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 -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サービスを作成するには、次の手順を実行します。
-
コマンド・ウィンドウを開きます。
-
ディレクトリを
%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システムでクラスタ・ノードを削除するには: