この章では、既存のOracle Real Application Clusters(Oracle RAC)ホームを他のノードおよびクラスタ内のインスタンスに拡張し、Oracle RACをノードおよびクラスタ内のインスタンスから削除する方法について説明します。Windowsシステムの場合の手順について説明します。
注意: この章では、Grid_home のエントリはOracle Grid Infrastructureホームのフル・パス名を指し、Oracle_home のエントリはOracle RACがあるOracleホームの環境変数の置き換えを指します。 |
既存のOracle RACホームをクローニングし、クラスタ全体で複数の新規Oracle RACインストールを作成する場合は、第8章「新規クラスタのノードへのOracle RACのクローニング」に示すクローニング手順に従います。
内容は次のとおりです。
注意:
|
関連項目: 新規Oracle RACクラスタの構成および既存のOracle RACクラスタに対するノードの追加と削除の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。 |
この手順を開始する前に、既存ノードのGrid_home
へのパスが正しいこと、およびOracle_home
環境変数が正しく設定されていることを確認します。
関連項目: クラスタへのノードの追加の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。 |
Oracle ClusterwareがすでにインストールされているノードにOracle RACデータベース・インスタンスを追加するには、クラスタの既存のノード(この手順ではnode1
)にあるOracle RACホームをターゲット・ノードに拡張する必要があります。
node1の
Oracle_home\oui\bin
ディレクトリに移動し、次の構文を使用してaddNode.bat
スクリプトを実行しますが、ここで、node2
は追加するノードの名前です。
addNode.bat "CLUSTER_NEW_NODES={node2}"
ポリシー管理データベースをOracle Automatic Storage Management(Oracle ASM)に格納する場合は、Oracle Managed Filesが有効になり、node2
のサーバー・プールに領域があれば、crsd
がOracle RACデータベース・インスタンスをnode2
に追加するため、それ以上の処置は必要ありません。Oracle Managed Filesが有効でない場合は、UNDOログおよびREDOログを手動で追加する必要があります。
サーバー・プールに空き領域がない場合は、node2
は空きサーバー・プールに移動します。srvctl modify srvpool
コマンドを使用して、node2
を格納するサーバー・プールのカーディナリティを上げた後に、node2
は空きサーバー・プールから修正済サーバー・プールに移動し、crsd
はOracle RACデータベース・インスタンスをnode2
に追加します。
管理者管理データベースの場合は、「ターゲット・ノードへの管理者管理Oracle RACデータベース・インスタンスの追加」
の説明に従って新しいインスタンスをnode2に追加します。
注意: ノード追加プロセスの終了後は、投票ディスクおよびOracle Cluster Registry(OCR)ファイルをバックアップすることをお薦めします。 |
Oracle RACデータベース・インスタンスを追加する前に、既存ノードで次のコマンドを実行し、データベース・インスタンスを追加するノードにOracle Enterprise Managerを構成します。
C:\>emca -addNode db
データベースとノードの情報を求めるプロンプトが表示されます。
関連項目: Oracle Enterprise Managerの構成の詳細は、Microsoft Windows版のOracle Real Application Clustersインストレーション・ガイドを参照してください。 |
Oracle Enterprise ManagerまたはDBCAを使用して、Oracle RACデータベース・インスタンスをターゲット・ノードに追加できます。Oracle Enterprise Managerを使用してターゲット・ノードにデータベース・インスタンスを追加する方法の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。
この項では、DBCAを使用してOracle RACデータベース・インスタンスを追加する方法について説明します。内容は次のとおりです。
これらのツールは、次のタスクをガイドします。
各ターゲット・ノードでの新規データベース・インスタンスの作成
高可用性コンポーネントの作成および構成
Oracleホームからのデフォルト以外のリスナー用のOracle Net構成の作成
新規インスタンスの起動
サービス構成ページでサービス情報を入力した場合、サービスの作成および起動
ターゲット・ノードにインスタンスを追加した後で、第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行する必要があります。
対話モードでDBCAを使用してターゲット・ノードにデータベース・インスタンスを追加するには、次の手順を実行します。
既存ノードのOracleホーム環境変数が正しく設定されていることを確認します。
既存ノードのOracle_home
/bin
ディレクトリから、システム・プロンプトでdbca
を入力してDBCAを起動します。
DBCAの実行中に、CVUの特定のチェックが実行されます。ただし、コマンドラインからCVUを実行して、様々な検証を実行することもできます。
関連項目: CVUの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。 |
DBCAにOracle RAC用の「ようこそ」ページが表示されます。DBCAの各ページで「ヘルプ」をクリックすると、追加情報を参照できます。
「Oracle Real Application Clustersデータベース」を選択し、「次へ」をクリックすると、「操作」ページが表示されます。
「インスタンスの追加」を選択し、「次へ」をクリックします。DBCAによって「クラスタ・データベースのリスト」ページが表示され、データベースおよび現在のステータス(ACTIVE
やINACTIVE
など)が表示されます。
「クラスタ・データベースのリスト」ページで、インスタンスを追加するアクティブなOracle RACデータベースを選択します。SYSDBA
権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックすると、DBCAによって選択したOracle RACデータベースの既存のインスタンスの名前を示す「クラスタ・データベース・インスタンスのリスト」ページが表示されます。
「インスタンスの追加」ページで、DBCAに表示されるインスタンス名が既存のインスタンス名スキームと合致しない場合には、このページの一番上のフィールドにインスタンス名を入力します。リストから新しいノード名を選択し、「次へ」をクリックすると、「サービス」ページが表示されます。
新しいノードのインスタンスに関するサービス情報を入力し、「次へ」をクリックすると、「インスタンス記憶域」ページが表示されます。
Oracle ASMまたはクラスタ・ファイル・システムを使用している場合は、「インスタンス記憶域」ページで「終了」をクリックします。
「サマリー」ダイアログ・ボックスに表示された情報を確認し、「OK」をクリックするか、またはインスタンス追加操作を終了する場合は「取消」をクリックします。DBCAがインスタンス追加操作を実行中であることを示す進捗ダイアログ・ボックスが表示されます。DBCAによるインスタンス追加操作が終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。
DBCAセッションの終了後、次のコマンドを実行して、新しいノードに対する管理権限を確認し、それらの権限に関する詳細情報を取得します。nodelistには、新しく追加するノードが含まれています。
cluvfy comp admprv -o db_config -d oracle_home -n nodelist [-verbose]
第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行します。
DBCAのサイレント・モードを使用して、Oracle ClusterwareホームおよびOracle Databaseホームを拡張したノードにインスタンスを追加できます。次の構文を使用します。
dbca -silent -addInstance -nodeList node_name -gdbName gdb_name [-instanceName instance_name -sysDBAUserName sysdba -sysDBAPassword password]
第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行します。
クラスタ・ノードからOracle RACを削除するには、データベース・インスタンスおよびOracle RACソフトウェアを削除した後で、クラスタからそのノードを削除する必要があります。
この項では、次の手順を実行して、Oracle RAC環境のクラスタからノードを削除します。
インスタンスの削除手順は、ポリシー管理データベースと管理者管理データベースとでは異なります。ポリシー管理データベース・インスタンスを削除すると、データベース・インスタンスが存在するサーバー・プールのサイズが減少します。管理者管理データベース・インスタンスの削除では、DBCAを使用したデータベース・インスタンスの削除が必要です。
ポリシー管理データベースの削除
データベースが存在するノードをクラスタから削除する場合は、削除しないノードで次のコマンドを実行し、削除するノードのOracle Enterprise Managerを構成解除してからデータベース・インスタンスを削除します。
emca -deleteNode db
データベースとノードの情報を求めるプロンプトが表示されます。
ポリシー管理データベースを削除するには、データベース・インスタンスが存在するサーバー・プールのサイズを小さくします。この操作によって、ノードからOracle RACソフトウェアを削除しなくても、またはクラスタからノードを削除しなくても、事実上インスタンスは削除されます。
たとえば、クラスタ内の任意のノードで次のコマンドを実行すると、ポリシー管理データベースを削除できます。
srvctl stop instance -d db_unique_name -n node_name srvctl relocate server -n node_name -g Free
最初のコマンドは特定のノードのインスタンスで停止し、2つ目のコマンドはノードを現行のサーバー・プールから空きサーバー・プールに移動します。
管理者管理データベースからのインスタンスの削除
注意: Oracle RACデータベースからインスタンスを削除する前に、SRVCTLまたはOracle Enterprise Managerのいずれかを使用して次の操作を実行します。
|
この項では、対話モードまたはサイレント・モードでDBCAを使用してOracle RACデータベースからインスタンスを削除する方法について説明します。
この項の内容は次のとおりです。
対話モードでDBCAを使用してインスタンスを削除するには、次の手順を実行します。
OCRの現行のバックアップがあることを確認します。
ocrconfig -showbackup
コマンドを実行して、有効なバックアップがあることを確認します。
DBCAを起動します。
削除するインスタンスを保持しているノード以外のノードで、DBCAを起動します。削除するデータベースおよびインスタンスは、この手順の間、起動し、実行し続ける必要があります。
DBCAの「ようこそ」ページで「Oracle Real Application Clustersデータベース」を選択し、「次へ」をクリックします。「操作」ページが表示されます。
DBCAの「操作」ページで「インスタンス管理」を選択して、「次へ」をクリックします。「インスタンス管理」ページが表示されます。
「インスタンス管理」ページで、「インスタンスの削除」を選択して、「次へ」をクリックします。DBCAによって「クラスタ・データベースのリスト」ページが表示されます。
インスタンスを削除するOracle RACデータベースを選択します。SYSDBA
権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックすると、DBCAによって「クラスタ・データベース・インスタンスのリスト」ページが表示されます。「クラスタ・データベース・インスタンスのリスト」ページには、選択したOracle RACデータベースに関連付けられたインスタンスと各インスタンスのステータスが表示されます。
「クラスタ・データベースのリスト」ページで、次のように、インスタンスを削除するOracle RACデータベースを選択します。
この「クラスタ・データベース・インスタンスのリスト」ページには、DBCAによって選択したOracle RACデータベースに関連付けられたインスタンスと各インスタンスのステータスが表示されます。インスタンスを削除するクラスタ・データベースを選択します。「終了」をクリックします。
「確認」ダイアログ・ボックスで「OK」をクリックし、インスタンスの削除を続行します。
次の「確認」ダイアログ・ボックスで「OK」をクリックし、インスタンスおよび関連するOptimal Flexible Architecture(OFA)ディレクトリ構造を削除します。
DBCAがインスタンスを削除していることを示す進捗ダイアログ・ボックスが表示されます。この操作の中で、DBCAはインスタンスとそのインスタンスのOracle Net構成を削除します。DBCAがインスタンスの削除操作を終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。
DBCAを終了する場合は「いいえ」を、別の操作を実行する場合は「はい」をクリックします。「はい」をクリックすると、DBCAによって「操作」ページが表示されます。
既存インスタンスからSQL*Plusを使用してV$LOG
ビューを問い合せ、削除したインスタンスのREDOスレッドが削除されていることを確認します。REDOスレッドが無効になっていない場合は、スレッドを無効にします。次に例を示します。
SQL> ALTER DATABASE DISABLE THREAD 2;
次のコマンドを実行して、OCRからインスタンスが削除されていることを確認します(db_unique_name
はデータベース名です)。
srvctl config database -d db_unique_name
複数のノードを削除する場合は、この手順を繰り返し、削除するすべてのノードからインスタンスを削除します。
DBCAのサイレント・モードを使用して、ノードからデータベース・インスタンスを削除できます。
次のコマンドを実行します(変数は、インスタンスを追加するDBCAコマンドの表10-1に示されている変数と同じです)。次の例に示すとおり、DBCAが実行されているノード以外からインスタンスを削除する場合のみ、ノード名を指定します(password
はSYSDBAパスワードです)。
dbca -silent -deleteInstance [-nodeList node_name] -gdbName gdb_name -instanceName instance_name -sysDBAUserName sysdba -sysDBAPassword password
この時点で、次の作業が完了しています。
関連付けられたOracle Net Servicesリスナーからの選択されたインスタンスの登録解除
インスタンスの構成ノードからの選択されたデータベース・インスタンスの削除
Oracle Net構成の削除
インスタンスの構成ノードからのOracle Flexible Architectureディレクトリ構造の削除
この手順では、クラスタから削除するノードからOracle RACソフトウェアを削除し、残りのノードのインベントリを更新します。
削除するノードのOracle RACホームにリスナーが存在する場合、Oracle RACソフトウェアを削除する前にリスナーを無効にして停止する必要があります。リスナーの名前および削除するノード名前を指定して、次のコマンドをクラスタ内の任意のノードで実行します。
srvctl disable listener -l listener_name -n name_of_node_to_delete srvctl stop listener -l listener_name -n name_of_node_to_delete
削除するノードの%ORACLE_HOME%\oui\bin
から次のコマンドを実行して、そのノードのインベントリを更新します。
setup.exe -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={name_of_node_to_delete}" -local
Oracleホームが共有か非共有かに応じて、次のいずれかの手順を実行します。
共有ホームの場合は、ノードを削除するのではなくデタッチします。それには、削除する各ノードのOracle_home
\oui\bin
ディレクトリから次のコマンドを実行します。
setup.exe –detachHome ORACLE_HOME=Oracle_home
非共有ホームの場合は、削除するノードからOracleホームを削除します。それには、Oracle_home
\deinstall
ディレクトリから次のコマンドを実行します。
deinstall -local
クラスタ内の残りのノードのいずれかのOracle_home
\oui\bin
ディレクトリから次のコマンドを実行して、これらのノードのインベントリを更新します。コマンドには、残りのノードの名前をカンマ区切りリストで指定します。
setup.exe -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={remaining_node_list}"
インスタンスを削除すると、クラスタからノードを削除するプロセスを開始できます。削除するノードでスクリプトを実行してOracle Clusterwareインストールを削除し、残りのノードでスクリプトを実行してノード・リストを更新し、このプロセスを完了します。
関連項目:
|