プライマリ・コンテンツに移動
Oracle® Real Application Clusters管理およびデプロイメント・ガイド
11g リリース2 (11.2)
B56290-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 LinuxおよびUNIXシステムのノードでのOracle RACの追加と削除

この章では、既存のOracle Real Application Clusters(Oracle RAC)ホームを他のノードおよびクラスタ内のインスタンスに拡張し、Oracle RACをノードおよびクラスタ内のインスタンスから削除する方法について説明します。LinuxおよびUNIXシステムの場合の手順について説明します。

既存のOracle RACホームをクローニングし、クラスタ全体で複数の新規Oracle RACインストールを作成する場合は、第8章「新規クラスタのノードへのOracle RACのクローニング」に示すクローニング手順に従います。

内容は次のとおりです。


注意:

  • ocrconfig -showbackupコマンドを実行してOracle RACの追加または削除を行う前に、Oracle Cluster Registry(OCR)の現行のバックアップがあることを確認してください。

  • この章で使用されているターゲット・ノードという語は、Oracle RAC環境の拡張先ノードを意味しています。



関連項目:


Oracle ClusterwareがインストールされたノードへのOracle RACの追加

この手順を開始する前に、既存ノードのGrid_homeへのパスが正しいこと、および$ORACLE_HOME環境変数がOracle RACホームに設定されていることを確認します。


関連項目:

クラスタの新規ノードへのOracle Clusterwareホームの拡張の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

ローカル(非共有)のOracleホームを使用している場合は、クラスタの既存のノード(この手順ではnode1)にあるOracle RACデータベース・ホームをターゲット・ノード(この手順ではnode3)に拡張する必要があります。

  1. node1$ORACLE_HOME/oui/binディレクトリに移動し、次の構文を使用してaddNode.shスクリプトを実行します。

    $ ./addNode.sh -silent "CLUSTER_NEW_NODES={node3}"
    
  2. rootとして、node3$ORACLE_HOME/root.shスクリプトを実行します。

共有Oracleホームを使用している場合(OracleホームをOracle Automatic Storage Managementクラスタ・ファイル・システム(Oracle ACFS)に格納している場合など)は、ホームがクラスタ内のノード全体で共有されているため、Oracle RACデータベース・ホームをターゲット・ノードに拡張する必要はありません。

かわりに、次の手順に従って、最初にターゲット・ノードにOracle RACデータベース・ホーム用のマウント・ポイントを作成し、Oracleホームをマウントおよびアタッチして、Oracleインベントリを更新する必要があります。

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

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

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

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

    $ ./runInstaller -attachHome ORACLE_HOME="ORACLE_HOME""CLUSTER
    _NODES={node_list}" LOCAL_NODE="node_name"
    
  5. 次のように、Oracleインベントリを更新します。

    $ ./runInstaller -updateNodeList ORACLE_HOME=mount_point_path "CLUSTER
    _NODES={node_list}"
    

    前述のコマンドで、node_listは、追加するノードを含む、Oracle RACデータベース・ホームがインストールされるすべてのノードのリストを示します。

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


注意:

ノード追加プロセスの終了後は、OCRをバックアップすることをお薦めします。

これで、次の項のいずれかの手順を使用して、ターゲット・ノードにOracle RACデータベース・インスタンスを追加できます。

ターゲット・ノードへのポリシー管理Oracle RACデータベース・インスタンスの追加

Oracle RACデータベース・インスタンスを追加する前に、既存ノードで次のコマンドを実行し、データベース・インスタンスを追加するノードにOracle Enterprise Managerを構成します。

$ emca -addNode db

データベースとノードの情報を求めるプロンプトが表示されます。


関連項目:

Oracle Enterprise Managerの構成の詳細は、『Oracle Real Application Clustersインストレーション・ガイドfor Linux and UNIX Systems』を参照してください。

ポリシー管理データベースをOracle Automatic Storage Management(Oracle ASM)に格納しないかぎり、およびOracle Managed Filesが有効でないかぎり、UNDOログおよびREDOログを手動で追加する必要があります。

サーバー・プールにノードを追加するための空き領域があり、データベースが1回以上起動されている場合、Oracle ClusterwareはOracle RACデータベース・インスタンスを新しく追加したノードに追加するため、それ以上の処置は必要ありません。


注意:

新しく追加したノードにデータベース・インスタンスを追加する前に、データベースは1回以上起動されている必要があります。

サーバー・プールに空き領域がない場合は、新しく追加したノードは空きサーバー・プールに移動します。srvctl modify srvpoolコマンドを使用して、新しく追加したノードを格納するサーバー・プールのカーディナリティを上げた後に、ノードは空きサーバー・プールから修正済サーバー・プールに移動し、Oracle ClusterwareはOracle RACデータベース・インスタンスをそのノードに追加します。

ターゲット・ノードへの管理者管理Oracle RACデータベース・インスタンスの追加


注意:

この項の手順は、管理者管理データベースに対してのみ実行してください。ポリシー管理データベースは、そのデータベースのサーバー・プールでノードが使用可能な場合にノードを使用します。

Oracle Enterprise ManagerまたはDBCAを使用して、Oracle RACデータベース・インスタンスをターゲット・ノードに追加できます。Oracle Enterprise Managerを使用してターゲット・ノードにデータベース・インスタンスを追加する方法の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

この項では、DBCAを使用してOracle RACデータベース・インスタンスを追加する方法について説明します。内容は次のとおりです。

これらのツールは、次のタスクをガイドします。

  • 各ターゲット・ノードでの新規データベース・インスタンスの作成

  • 高可用性コンポーネントの作成および構成

  • Oracleホームからのデフォルト以外のリスナー用のOracle Net構成の作成

  • 新規インスタンスの起動

  • サービス構成ページでサービス情報を入力した場合、サービスの作成および起動

ターゲット・ノードにインスタンスを追加した後で、第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行する必要があります。

対話モードでのDBCAによるターゲット・ノードへのデータベース・インスタンスの追加

対話モードでDBCAを使用してターゲット・ノードにデータベース・インスタンスを追加するには、次の手順を実行します。

  1. 既存ノードの$ORACLE_HOME環境変数がOracle RACホームに設定されていることを確認します。

  2. Oracle_home/binディレクトリから、システム・プロンプトでdbcaを入力してDBCAを起動します。

    DBCAの実行中に、CVUの特定のチェックが実行されます。ただし、コマンドラインからCVUを実行して、様々な検証を実行することもできます。


    関連項目:

    CVUの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

    DBCAにOracle RAC用の「ようこそ」ページが表示されます。DBCAの各ページで「ヘルプ」をクリックすると、追加情報を参照できます。

  3. 「Oracle Real Application Clusters (RAC)データベース」を選択し、「次へ」をクリックすると、「操作」ページが表示されます。

  4. 「インスタンス管理」を選択して「次へ」をクリックすると、DBCAによって「インスタンス管理」ページが表示されます。

  5. 「インスタンスの追加」を選択し、「次へ」をクリックします。DBCAによって「クラスタ・データベースのリスト」ページが表示され、データベースおよび現在のステータス(ACTIVEINACTIVEなど)が表示されます。

  6. 「クラスタ・データベースのリスト」ページで、インスタンスを追加するアクティブなOracle RACデータベースを選択します。SYSDBA権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックすると、DBCAによって選択したOracle RACデータベースの既存のインスタンスの名前を示す「クラスタ・データベース・インスタンスのリスト」ページが表示されます。

  7. 新規インスタンスを追加するには、「次へ」をクリックします。「インスタンスの追加」ページが表示されます。

  8. 「インスタンスの追加」ページで、DBCAに表示されるインスタンス名が既存のインスタンス名スキームと合致しない場合には、このページの一番上のフィールドにインスタンス名を入力します。

  9. 新しいインスタンスのUNDO表領域およびREDOログ・グループのファイルの場所を確認して、「インスタンス記憶域」ページで「終了」をクリックします。

  10. 「サマリー」ダイアログ・ボックスに表示された情報を確認し、「OK」をクリックするか、またはインスタンス追加操作を終了する場合は「取消」をクリックします。DBCAがインスタンス追加操作を実行中であることを示す進捗ダイアログ・ボックスが表示されます。DBCAによるインスタンス追加操作が終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。

  11. DBCAセッションの終了後、次のコマンドを実行して、ターゲット・ノードでの管理権限を確認し、それらの権限に関する詳細情報を取得します(nodelistは、データベース・インスタンスを追加したノードの名前で構成されます)。

    cluvfy comp admprv -o db_config -d Oracle_home -n nodelist [-verbose]
    
  12. 第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行します。

サイレント・モードでのDBCAによるターゲット・ノードへのデータベース・インスタンスの追加

DBCAのサイレント・モードを使用して、Oracle ClusterwareホームおよびOracle Databaseホームを拡張したノードにインスタンスを追加できます。dbcaコマンドを実行する前に、既存ノードでORACLE_HOME環境変数が正しく設定されていることを確認します。表10-1に示す変数に値を指定して、DBCAを実行します。

dbca -silent -addInstance -nodeList node_name -gdbName gdb_name
[-instanceName instance_name -sysDBAUserName sysdba -sysDBAPassword password]

表10-1 DBCAサイレント・モード構文の変数

変数 説明

node_name

インスタンスの追加(または削除)対象のノード。

gdb_name

グローバル・データベース名。

instance_name

インスタンスの名前。Oracle RACインスタンス名に関するOracleネーミング規則を使用せずにインスタンス名を指定する場合にのみ、インスタンス名を指定します。

sysdba

SYSDBA権限を持つOracleユーザーの名前。

password

SYSDBAユーザーのパスワード。


第5章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行します。

クラスタ・ノードからのOracle RACの削除

クラスタ・ノードからOracle RACを削除するには、データベース・インスタンスおよびOracle RACソフトウェアを削除した後で、クラスタからそのノードを削除する必要があります。


注意:

削除するノードにデータベース・インスタンスがない場合は、「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ソフトウェアの削除方法の詳細は、「Oracle RACの削除」を参照してください。

管理者管理データベースからのインスタンスの削除


注意:

Oracle RACデータベースからインスタンスを削除する前に、SRVCTLまたはOracle Enterprise Managerのいずれかを使用して次の操作を実行します。
  • サービスが構成されている場合は、サービスを再配置します。

  • 各サービスを残りのインスタンスの1つで実行できるように、サービスを変更します。

  • 管理者管理データベースから削除されるインスタンスが、何らかのサービスの優先インスタンスまたは使用可能インスタンスではないことを確認します。


この項では、対話モードまたはサイレント・モードでDBCAを使用してOracle RACデータベースからインスタンスを削除する方法について説明します。


関連項目:

Oracle Enterprise Managerを使用してターゲット・ノードからデータベース・インスタンスを削除する方法の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

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

対話モードでのDBCAによるノードからのインスタンスの削除

対話モードでDBCAを使用してインスタンスを削除するには、次の手順を実行します。

  1. DBCAを起動します。

    削除するインスタンスを保持しているノード以外のノードで、DBCAを起動します。削除するデータベースおよびインスタンスは、この手順の間、実行し続けている必要があります。

  2. DBCAの「ようこそ」ページで「Oracle Real Application Clustersデータベース」を選択し、「次へ」をクリックします。「操作」ページが表示されます。

  3. DBCAの「操作」ページで「インスタンス管理」を選択し、「次へ」をクリックします。DBCAによって「インスタンス管理」ページが表示されます。

  4. DBCAの「インスタンス管理」ページで、削除するインスタンスを選択し、「インスタンスの削除」を選択し、「次へ」をクリックします。

  5. 「クラスタ・データベースのリスト」ページで、次のように、インスタンスを削除するOracle RACデータベースを選択します。

    1. この「クラスタ・データベース・インスタンスのリスト」ページには、DBCAによって選択したOracle RACデータベースに関連付けられたインスタンスと各インスタンスのステータスが表示されます。インスタンスを削除するクラスタ・データベースを選択します。

    2. SYSDBA権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックします。

    3. 「確認」ダイアログ・ボックスで「OK」をクリックし、インスタンスの削除を続行します。

      DBCAがインスタンスを削除していることを示す進捗ダイアログ・ボックスが表示されます。この操作の中で、DBCAはインスタンスとそのインスタンスのOracle Net構成を削除します。DBCAがインスタンスの削除操作を終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。

      DBCAを終了する場合は「いいえ」を、別の操作を実行する場合は「はい」をクリックします。「はい」をクリックすると、DBCAによって「操作」ページが表示されます。

  6. 既存ノードでSQL*Plusを使用してGV$LOGビューを問い合せ、削除したインスタンスのREDOスレッドが削除されていることを確認します。REDOスレッドが無効になっていない場合は、スレッドを無効にします。次に例を示します。

    SQL> ALTER DATABASE DISABLE THREAD 2;
    
  7. 次のコマンドを実行して、OCRからインスタンスが削除されていることを確認します(db_unique_nameはOracle RACデータベースの一意のデータベース名です)。

    srvctl config database -d db_unique_name
    
  8. 複数のノードを削除する場合は、この手順を繰り返し、削除するすべてのノードからインスタンスを削除します。

サイレント・モードでのDBCAによるノードからのインスタンスの削除

DBCAのサイレント・モードを使用して、ノードからデータベース・インスタンスを削除できます。

次のコマンドを実行します(変数は、インスタンスを追加するDBCAコマンドの表10-1に示されている変数と同じです)。次の例に示すとおり、DBCAが実行されているノード以外からインスタンスを削除する場合のみ、ノード名を指定します(passwordはパスワードです)。

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ソフトウェアを削除し、残りのノードのインベントリを更新します。

  1. 削除するノードの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
    
  2. 削除するノードの$ORACLE_HOME/oui/binから次のコマンドを実行して、そのノードのインベントリを更新します。

    $ ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location
    "CLUSTER_NODES={name_of_node_to_delete}" -local
    
  3. Oracle RACソフトウェアを削除するために、Oracleホームが共有か非共有かに応じて、次のいずれかの手順を実行します。

    • 共有ホームの場合は、ノードを削除するのではなくデタッチします。それには、削除する各ノードの$ORACLE_HOME/oui/binディレクトリから次のコマンドを実行します。

      $ ./runInstaller -detachHome ORACLE_HOME=Oracle_home_location
      
    • 非共有ホームの場合は、次のコマンドを実行して、削除するノードからOracleホームを削除します。

      $ORACLE_HOME/deinstall/deinstall -local
      

      関連項目:

      ノードの削除方法の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

  4. クラスタ内の残りのノードのいずれかの$ORACLE_HOME/oui/binディレクトリから次のコマンドを実行して、これらのノードのインベントリを更新します。コマンドには、残りのノードの名前をカンマ区切りリストで指定します。

    $ ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location
    "CLUSTER_NODES={remaining_node_list}"
    

    Oracle Grid Infrastructureホームが共有ホームの場合は、この手順のコマンド例に-cfsオプションを追加し、クラスタ・ファイル・システムの完全なパス位置を指定します。

クラスタからのノードの削除

データベース・インスタンスおよびOracle RACソフトウェアを削除した後で、クラスタからそのノードを削除するプロセスを開始できます。削除するノードでスクリプトを実行してOracle Clusterwareインストールを削除し、残りのノードでスクリプトを実行してノード・リストを更新し、このプロセスを完了します。


関連項目:

クラスタからノードを削除する方法の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。