ヘッダーをスキップ
Oracle Real Application Clusters管理およびデプロイメント・ガイド
11gリリース1(11.1)
E05738-05
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

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

内容は次のとおりです。


注意:

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


関連項目:

新規Oracle RACクラスタの構成および既存のOracle RACクラスタの拡張の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

クラスタウェアとOracle Databaseを実行するノードへのOracle RACの追加

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

すでにOracle ClusterwareおよびOracle DatabaseソフトウェアがインストールされているノードにOracle RACを追加するには、クラスタの既存ノード上にあるOracle Databaseソフトウェアでターゲット・ノードを構成する必要があります。この処理を行うには、次の手順に従い、Oracle Clusterwareとデータベースの各レイヤーについて、2種類のOracle Universal Installerプロセスを実行する必要があります。

  1. 次のコマンドを使用して既存ノードのOracle ClusterwareホームからOracle Universal Installerを実行し、Oracle Clusterwareレイヤーでターゲット・ノードにOracle RACを追加します。

    CRS_home/oui/bin/addNode.sh -noCopy
    
  2. 次のコマンドを使用してOracleホームからOracle Universal Installerを実行し、Oracleソフトウェア・レイヤーでターゲット・ノードにOracle RACを追加します。

    Oracle_home/oui/bin/addNode.sh -noCopy
    

-noCopyモードの場合、Oracle Universal Installerは、ターゲット・ノードへのソフトウェアのコピーを除くすべてのノード追加操作を実行します。


注意:

ノード追加プロセスの終了後は、投票ディスクおよびOracle Cluster Registry(OCR)ファイルをバックアップすることをお薦めします。


関連項目:

新規ノードへのASMインスタンスの追加の詳細は、「シングル・インスタンスまたはOracle RACデータベースを実行するノードへのASMの拡張」を参照してください。

クラスタウェアとOracle Databaseの存在しないノードへのOracle RACの追加

この項では、手動による詳細な手順を使用してノードをクラスタに追加する方法を説明します。Oracle RACを追加するノードにクラスタウェアまたはOracleソフトウェアがインストールされていない場合は、次の手順を実行してターゲット・ノードにOracle RACを追加する必要があります。これらの手順は、LinuxまたはUNIX環境がすでに稼働していることを前提としています。

それ以外の場合、すでにクラスタウェアおよびOracleソフトウェアで構成されているノードにOracle RACを追加するには、「クラスタウェアとOracle Databaseを実行するノードへのOracle RACの追加」で説明する手順に従ってください。

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

ターゲット・ノードへのOracle RAC拡張の事前設定手順

次の手順では、クラスタの一部になるようにターゲット・ノードを設定する方法について説明します。

手順1   物理的接続の確立

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

手順2   オペレーティング・システムのインストール

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


関連項目:

Database Configuration Assistant(DBCA)を使用してOracle RACデータベースを作成および削除する手順については、使用しているプラットフォーム固有のOracle Real Application Clustersのインストレーション・ガイドを参照してください。

手順3   Oracleユーザーの作成

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

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

手順4   インストールの検査

クラスタ検証ユーティリティ(Cluster Verification Utility: CVU)を使用して、次の手順でインストールを検査します。

  1. 既存ノードで、CRS_home/binディレクトリからCVUコマンドを実行して、ハードウェア設定後のインストールを検査します。node_listは、クラスタの一部とするノードのカンマ区切りのリストです。

    cluvfy stage -post hwos -n node_list│all [-verbose]
    

    注意:

    -n引数を付けたallオプションを使用できるのは、CV_NODE_ALL変数を、CVUの処理対象とするノードのリストに設定している場合に限られます。

    このCVUコマンドを使用して、次の処理を実行することもできます。

    • ノードが、ローカル・ノードから、たとえば、すべてのノードに到達可能であるかどうかの検査。

    • 指定されたすべてのノードとローカル・ノードとの間のユーザー等価関係、指定されたすべてのノード間のノード接続性、指定されたすべてのノードからの共有記憶域へのアクセス可能性などの検査。


    関連項目:

    『Oracle Clusterware管理およびデプロイメント・ガイド』の「クラスタ検証ユーティリティの使用」

  2. 既存ノードで、CRS_home/binディレクトリからCVUコマンドを実行して、参照ノードのプロパティと、現在のクラスタ環境に含まれるその他のすべてのノードのプロパティとの詳細な比較情報を取得します。ref_nodeは、CVUによる比較を行う既存クラスタ内のノード(-nオプションのnode_listにカンマ区切りのリストで指定するターゲット・ノードなど)、orainventory_groupはOracleインベントリ・グループの名前、osdba_groupはOSDBAグループの名前です。

    cluvfy comp peer [ -refnode ref_node ] -n node_list
    [ -orainv orainventory_group ] [ -osdba osdba_group ] [-verbose]
    

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


    注意:

    LinuxおよびUNIXシステムでのいずれのノード追加/ノード削除手順についても、一時ディレクトリ(/tmp$TEMP$TMPなど)として共有ディレクトリを使用することはできません。一時ディレクトリが共有されている場合は、$TEMPなどの一時ディレクトリの環境変数を、ローカル・ノード上の非共有ディレクトリに設定してください。また、すべてのノードに存在するディレクトリを使用してください。

手順5   インストールの検査

インストールが正しく構成されているか確認するために、次の手順を実行します。

  1. ターゲット・ノードがプライベート・インターコネクトにアクセスできることを確認します。この章で説明する手順を実行する前に、このインターコネクトが正しく構成されている必要があります。

  2. クラスタ・ファイル・システムを使用していない場合は、既存ノードでクラスタ・ソフトウェアがインストールされている位置を調べます。Oracle Clusterwareをインストールするために、それぞれのターゲット・ノードについて同じ位置に250MB以上の空き領域があることを確認します。また、各ターゲット・ノードにOracleバイナリをインストールするのに十分な空き領域があることも確認します。

  3. OCRと投票ディスクに、同じパスを使用してターゲット・ノードからアクセスできることを確認します。また、OCRと投票ディスク・デバイスは、既存ノードと同じ権限を持っている必要があります。

  4. LinuxおよびUNIXシステムで、rshまたはSSHを使用して、既存ノードとターゲット・ノード間のユーザー等価関係を確認します。また、Windowsシステムで、クラスタのすべての既存ノードから次のコマンドを実行できることを確認します。hostnameは、ターゲット・ノードのパブリック・ネットワーク名です。

    NET USE \\hostname\C$
    

    次の応答がある場合は、必要な管理者権限が付与されています。

    Command completed successfully.
    

この項の手順を完了すると、ターゲット・ノードがクラスタに接続され、Oracle Clusterwareがターゲット・ノードを認識するのに必要なソフトウェアが構成されます。


注意:

Oracle Clusterwareのインストール後は、ホスト名を変更しないでください。この制限には、ドメイン修飾の追加と削除も含まれます。

ターゲット・ノードへのOracle Clusterwareの拡張

『Oracle Clusterware管理およびデプロイメント・ガイド』の説明に従って、既存のOracle Clusterwareホームをターゲット・ノードに拡張します。

ベンダーのクラスタウェアを使用せずにOracle Clusterwareを使用する場合は、既存ノードを停止しなくても、ノードでOracle Clusterwareを追加および削除できます。ベンダーのクラスタウェアとともにOracle Clusterwareを使用する場合、一部のLinuxおよびUNIXシステムでは、既存ノードを停止しなくてもノードを追加できます。追加できるのは、クラスタウェアがこれをサポートする場合のみです。詳細は、ベンダー固有のクラスタウェアのマニュアルを参照してください。


注意:

クラスタウェア・ホームとして共有記憶域を使用するシステムでは、ターゲット・ノードが既存のクラスタウェアにアクセスできることを確認します。また、ターゲット・ノードを既存のクラスタの一部としてオンラインにできることも確認します。

ターゲット・ノードでの共有記憶域の構成

ターゲット・ノードがOracleソフトウェアにアクセスでき、既存ノードがターゲット・ノードとインスタンスにアクセスできるように共有記憶装置を構成するには、この項の情報を使用します。次に、「ターゲット・ノードへのOracle Real Application Clustersデータベース・ホームの追加」の手順を実行します。


注意:

現行の構成に、(明示的な操作または他のノードへの自動的なASMの拡張によって)実行しようとしているASMアクティビティとの互換性がない場合があります。DBCAを使用して新しいOracleホームを使用するデータベースを構築する場合、Oracleソフトウェアの以前のリリースのASMを使用しており、そのバージョンのASMがデータベースに対して選択したすべてのノードに存在しない場合、ASMは拡張できません。この場合、DBCAセッションでは、ノードを追加するスクリプトを実行するか、DBUAを使用してASMをアップグレードするように求めるエラーが表示されます。

既存のOracle RACデータベースをターゲット・ノードに拡張するには、Oracle RAC環境の既存ノードで使用しているものと同じタイプの記憶域をターゲット・ノードで構成します。

  • 自動ストレージ管理(ASM)

    Oracle RACデータベースとASMが同じOracleホームに存在する場合、ASMインスタンスはノードの追加時に暗黙的に作成されるため、追加したノードにASMをインストールする必要はありません。ただし、ASMが(Oracle推奨の)専用のホームに存在する場合は、新しいノードをクラスタに追加するために、Oracle Clusterwareホーム(CRS_home)、ASMホームおよびOracleホームをこの順序で拡張する必要があります。

    記憶域にASMを使用する場合、ターゲット・ノードが既存ノードと同じ権限でASMディスクにアクセスできることを確認します。


    関連項目:

    シングル・インスタンス・データベースまたはクラスタ内のOracle RACデータベース・インスタンスを実行しているノードに新規ASMインスタンスを追加する方法については、「シングル・インスタンスまたはOracle RACデータベースを実行するノードへのASMの拡張」を参照してください。

  • OCFS2

    OCFS2を使用する場合、他のノードがクラスタ・ファイル・システムにアクセスするのと同じ方法でターゲット・ノードがアクセスできることを確認します。

    次のコマンドを実行し、クラスタ・ファイル・システムを検査して詳細な出力を取得します。nodelistは既存ノードとターゲット・ノード、filesystemはOracle Cluster File Systemに使用したファイル・システムの名前です。

    cluvfy comp cfs -n nodelist -f file system [-verbose]
    

    関連項目:

    CVUの有効化方法および使用方法の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。Oracle Cluster File Systemの詳細は、使用しているプラットフォーム固有のOracle Clusterwareインストレーション・ガイドを参照してください。

  • ベンダーのクラスタ・ファイル・システム

    クラスタ・データベースがベンダーのクラスタ・ファイル・システムを使用する場合、ターゲット・ノードがベンダーのクラスタ・ファイル・システムを使用するように構成します。ベンダーのクラスタウェアのマニュアルで、使用しているLinuxまたはUNIXプラットフォームのインストール前の手順を参照してください。

  • RAWデバイス記憶域

    クラスタ・データベースがRAWデバイスを使用する場合は、次のようにターゲット・ノードでRAWデバイスを準備します。

    ターゲット・ノードでRAWデバイス記憶域を準備するには、新しい各インスタンスのREDOログを格納するために、少なくとも2つの新しいディスク・パーティションが必要です。これらのディスク・パーティションは、既存ノードのインスタンス用に構成したREDOログ・パーティションと同じサイズにしてください。また、自動UNDO管理のためにUNDO表領域の論理パーティションも追加作成します。

    対応オペレーティング・システムでは、RAWデバイスに対するシンボリック・リンクを作成できます。オプションとして、RAWデバイス・マッピング・ファイルを作成し、そのRAWデバイス・マッピング・ファイルを指すようにDBCA_RAW_CONFIG環境変数を設定することができます。必要なRAW記憶域を構成するには、ベンダー提供のツールを使用します。


    関連項目:

    DBCAを使用してOracle RACデータベースを作成および削除する手順については、使用しているプラットフォーム固有のOracle Real Application Clustersのインストレーション・ガイドを参照してください。

    次のコマンドを実行して、すべての構成済クラスタ・ノードから、準備したRAWデバイス記憶域にアクセスできるかどうかを検査します。node_listは既存ノードと新しく追加したノード、storageID_listは記憶域識別子のカンマ区切りのリストです。

    cluvfy comp ssa [ -n node_list ] [ -s storageID_list ] [-verbose]
    

    関連項目:

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

ターゲット・ノードへのOracle Real Application Clustersデータベース・ホームの追加

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


関連項目:

コマンドライン・レスポンス・ファイルの構成方法の詳細は、『Oracle Universal InstallerおよびOpatchユーザーズ・ガイド』を参照してください。NetCAの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

Oracle Universal Installerの対話モードを使用したターゲット・ノードへのデータベース・ホームの拡張

Oracle RACをターゲット・ノードに拡張するには、add nodeモードでOracle Universal Installerを実行し、ターゲット・ノードでOracleホームを構成します。複数のOracleホームがある場合は、ターゲット・ノードに含める各Oracleホームについて次の手順を実行します。

  1. クラスタ環境内で1つ以上のノードに、Oracle RACソフトウェアとともにOracle Databaseが正常にインストールされていることを確認します。

  2. $ORACLE_HOME環境変数が、正常にインストールされたOracleホームを識別しているかどうかを確認します。

  3. addNode.shスクリプトを実行します。

    既存ノードで、Oracle_home/oui/binディレクトリからaddNode.shスクリプトを実行します。このスクリプトによって、add nodeモードでOracle Universal Installerが起動され、Oracle Universal Installerの「ようこそ」ページが表示されます。「ようこそ」ページで「次へ」をクリックすると、「ノードを追加するクラスタ・ノードの指定」ページが表示されます。

  4. Oracle Universal Installerに表示されるエントリを確認します。

    「ノードを追加するクラスタ・ノードの指定」ページには、Oracle Universal Installerを起動したOracleホームに関連付けられている既存ノードを示す表があります。このページの下部には、追加できるノードを示すノードの選択表が表示されます。追加するノードを選択し、「次へ」をクリックします。

  5. Oracle Universal Installerが、既存ノードと追加対象ノードで接続性と可用性の検査を実行します。次の検査が実行されます。

    • ノードが起動しているか

    • ネットワークからノードにアクセスできるか

  6. いずれかの検査に失敗した場合は、問題を解決するか、エラーのあるノードの選択を解除して先に進みます。既存ノードの選択を解除することはできません。まず、既存ノードでの問題を解決してから、ノード追加を続行する必要があります。すべての検査に成功すると、「ノード追加のサマリー」ページが表示されます。


    注意:

    一部の既存ノードが停止している場合は、それらが起動した後、各ノードでupdateNodeListプロシージャを実行してノード・リストを修正する必要があります。そのためには、次のコマンドを実行します。node_listは、Oracle RACのデプロイ先となっているすべてのノードのカンマ区切りのリストです。
    oui/bin/runInstaller -updateNodeList
    "CLUSTER_NODES={node_list}" -local
    

  7. 「ノード追加のサマリー」ページには、ターゲット・ノードに拡張するOracleホームにインストールされる製品に関する次の情報が表示されています。

    • ノード追加プロセスのソース(この場合はOracleホーム)

    • 既存ノードおよびターゲット・ノード

    • 選択したターゲット・ノード

    • ターゲット・ノード上の必須領域および使用可能領域

    • 既存Oracleホームにすでにインストールされているすべての製品のリスト

    「終了」をクリックすると、「クラスタ・ノード追加の進捗状況」ページが表示されます。

  8. 「クラスタ・ノード追加の進捗状況」ページには、クラスタ・ノード追加プロセスのステータスが表示されます。このページの表には、ノード追加プロセスの次の4つのフェーズと各フェーズのステータスを示す2つの列があります。

    • Oracleホームを新規ノードにコピー: Oracleホームがクラスタ・ファイル・システムにある場合を除き、Oracleホーム全体をローカル・ノードからターゲット・ノードにコピーします。

    • クラスタ・インベントリの保存: Oracleホームおよびそのインベントリと関連付けられたノード・リストを更新します。

    • root.shの実行: ターゲット・ノードでroot.shを実行するように求めるダイアログが表示されます。

    「クラスタ・ノード追加の進捗状況」ページの「ステータス」列には、フェーズ完了後は「成功しました」、フェーズの進行中は「処理中です」、フェーズの実行が保留中は「停止中です」と表示されます。ノード追加の終了ページが表示されたら、「終了」をクリックしてOracle Universal Installerセッションを終了します。

  9. すべてのターゲット・ノードでroot.shスクリプトを実行します。

  10. ターゲット・ノードで、Net Configuration Assistant(NetCA)を実行してリスナーを追加します。

    ターゲット・ノードからNetCAを実行し、「ノードの選択」ページでターゲット・ノードのみを選択して、ターゲット・ノードにリスナーを追加します。

ここで、「ターゲット・ノードへのASMおよびOracle RACデータベース・インスタンスの追加」で説明するように、ターゲット・ノードにデータベース・インスタンスを追加できます。

Oracle Universal Installerのサイレント・モードを使用したターゲット・ノードへのデータベース・ホームの拡張

手順1から6のかわりに、次のようにしてaddNode.shをサイレント・モードで実行することもできます。nodeInodeI+1などは、Oracle RACデータベース・ホームの追加対象のターゲット・ノードです。

  1. クラスタ環境内で1つ以上のノードに、Oracle RACソフトウェアとともにOracle Databaseが正常にインストールされていることを確認します。

  2. $ORACLE_HOME環境変数が、正常にインストールされたOracleホームを識別しているかどうかを確認します。

  3. Oracle_home/oui/binに移動し、addNode.shスクリプトを実行します。次の例では、nodeInodeI+1などは、追加対象のノードです。

    addNode.sh -silent "CLUSTER_NEW_NODES={nodeI, nodeI+1, … nodeI+n}"
    

    また、variable=valueというエントリをレスポンス・ファイル(filename)に記述したうえで、次のようにaddNodeスクリプトを実行することもできます。

    addNode.sh -silent -responseFile filename
    

    コマンドラインの値は、常にレスポンス・ファイルの値に優先します。

ターゲット・ノードへのASMおよびOracle RACデータベース・インスタンスの追加

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

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

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

  • 既存のインスタンスがASMを使用している場合、各ターゲット・ノードでのASMインスタンスの作成および起動

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

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

  • Oracle Net構成の作成

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

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

ターゲット・ノードにインスタンスを追加した後で、第4章で説明したように、必要なサービス構成手順を実行する必要があります。

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

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

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

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

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

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

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

  5. 「インスタンスの追加」を選択して、「次へ」をクリックします。 「クラスタ・データベースのリスト」ページが表示されます。このページには、データベースとその現行のステータス(「アクティブ」「非アクティブ」など)が表示されます。

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

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

  8. 「インスタンスの追加」ページで、DBCAに表示されるインスタンス名が既存のインスタンス名スキームと合致しない場合には、このページの一番上のフィールドにインスタンス名を入力します。リストからターゲット・ノード名を選択し、「次へ」をクリックすると、「サービス」ページが表示されます。

  9. ターゲット・ノードのインスタンスに関するサービス情報を入力し、「次へ」をクリックすると、「インスタンス記憶域」ページが表示されます。

  10. RAWデバイスまたはRAWパーティションを使用している場合は、「インスタンス記憶域」ページで「表領域」フォルダを選択して展開します。UNDO表領域記憶域オブジェクトを選択すると、ダイアログ・ボックスが右側に表示されます。デフォルトのデータ・ファイル名を表領域用のRAWデバイス名に変更します。

  11. RAWデバイスまたはRAWパーティションを使用している場合、またはデフォルトのREDOログ・グループ・ファイル名を変更したい場合は、「インスタンス記憶域」ページで「REDOログ・グループ」フォルダを選択して展開します。選択したREDOログ・グループ番号ごとに、別のダイアログ・ボックスが表示されます。「ターゲット・ノードでの共有記憶域の構成」で作成したRAWデバイス名を「ファイル名」フィールドに入力します。

  12. クラスタ・ファイル・システムを使用している場合は、「インスタンス記憶域」ページで「終了」をクリックします。 RAWデバイスを使用している場合は、他のすべてのREDOログ・グループについて手順11を繰り返します。「終了」をクリックすると、「サマリー」ダイアログ・ボックスが表示されます。

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

  14. DBCAセッションの終了後、次のコマンドを実行して、ターゲット・ノードに対する管理権限を確認し、それらの権限に関する詳細情報を取得します。nodelistは、ターゲット・ノードです。

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

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

DBCAのサイレント・モードを使用して、Oracle ClusterwareホームおよびOracle Databaseホームを拡張したノードにインスタンスを追加できます。次の構文を使用します。passwordはパスワードです。

dbca -silent -addInstance -nodeList node -gdbName gdbname [-instanceName instname]
 -sysDBAUserName sysdba -sysDBAPassword password

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

変数 説明

node

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

gdbname

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

instname

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

sysdba

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

password

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


dbcaコマンドを実行する前に、既存ノードで$ORACLE_HOME環境変数が正しく設定されていることを確認します。

Oracle Real Application Clusters環境からのクラスタ・ノードの削除

この項では、Oracle RAC環境でクラスタからノードを削除する場合に実行する手順を説明します。内容は次のとおりです。

手順1: Oracle Real Application Clustersデータベースからのインスタンスの削除


注意:

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

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

  • 削除するインスタンスで実行されている各サービスに「未使用」を設定します。


この項では、対話モードまたはサイレント・モードでDBCAを使用してOracle RACデータベースからインスタンスを削除する方法について説明します。 Oracle Enterprise Managerを使用してターゲット・ノードからデータベース・インスタンスを削除するには、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

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


注意:

インスタンスでASMが使用されており、ASMが個別のOracleホームにインストールされている場合、次の手順を実行しても指定したノードからASMインスタンスは削除されません。

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

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

  1. OCRの現行のバックアップがあることを確認します。

    ocrconfig -showbackupコマンドを実行して、有効なバックアップがあることを確認します。

  2. DBCAを起動します。

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

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

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

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

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

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

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

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

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

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

  7. V$LOGビューを問い合せて、削除したインスタンスのREDOスレッドが削除されていることを確認します。REDOスレッドが無効になっていない場合は、スレッドを無効にします。次に例を示します。

    SQL> ALTER DATABASE DISABLE THREAD 2;
    
  8. 次のコマンドを発行して、インスタンスがOCRから削除されていることを確認します。

    srvctl config database -d database_name
    cd CRS_HOME/bin
    ./crs_stat
    
  9. このノードにASMインスタンスがあり、ノードがクラスタに含まれなくなる場合は、次のコマンドを発行してASMインスタンスを削除する必要があります。

    srvctl stop asm -n node_name
    srvctl remove asm -n node_name
    

    次のコマンドを発行して、ASMが削除されていることを確認します。

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

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

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

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

dbca -silent -deleteInstance [-nodeList node] -gdbName gdbname -instanceName
 instname -sysDBAUserName sysdba -sysDBAPassword password

この時点で、次の作業が完了しています。

  • 関連付けられたOracle Net Servicesリスナーからの選択されたインスタンスの登録解除

  • インスタンスの構成ノードからの選択されたデータベース・インスタンスの削除

  • Oracle Net構成の削除

  • インスタンスの構成ノードからのOracle Flexible Architectureディレクトリ構造の削除

手順2: クラスタからのノードの削除

インスタンスを削除すると、クラスタからノードを削除するプロセスを開始できます。削除するノードでスクリプトを実行してOracle Clusterwareインストールを削除し、残りのノードでスクリプトを実行してノード・リストを更新し、このプロセスを完了します。

次の手順では、削除するノード(この説明ではnode2)はまだ機能していると仮定します。この手順を開始する前に、$ORACLE_HOME環境変数が既存ノードで正しく設定されていることを確認します。

LinuxまたはUNIXシステムでOracleクラスタからノードを削除するには、次の手順を実行します。

  1. 削除するノード上のノード・アプリケーションを停止します。

    rootユーザーとして、srvctl stop nodeappsコマンドを実行し、削除するノード上のnodeappsを停止および削除します。次に例を示します。

    # srvctl stop nodeapps -n nodename
    
  2. ノードからリスナーを削除します。

    ノード固有のリスナーLISTENER_nodenameがこのOracleホームから実行されている場合は、NetCAを使用してそのリスナーを削除します。必要に応じて、このリスナーを別のホームに再作成します。NetCAを起動し、次のように続けます。

    1. 「クラスタ構成」を選択します。

    2. 削除するノードのみを選択し、「次へ」をクリックします。

    3. 「リスナー構成」を選択し、「次へ」をクリックします。

    4. 「削除」を選択し、削除するノード上に構成されたすべてのリスナーを削除します。


    関連項目:

    NetCAの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  3. Oracle Configuration Manager(OCM)が構成されているノードを削除するには、次のコマンドを実行します。

    $ORACLE_HOME/ccr/bin/deployPackages -d $ORACLE_HOME/ccr/inventory/core.jar
    rm –rf $ORACLE_HOME/ccr
    

    Oracleホームが共有か非共有かに応じて、次の2つの手順のいずれかを実行します。

    • 共有ホームの場合は、次の手順を実行します。

      クラスタからノードを削除するには、次のコマンドを実行します。

      ./runInstaller -detachHome -local ORACLE_HOME=Oracle_home
      
    • 非共有ホームの場合は、次の手順を実行します。

      クラスタからノードを削除するには、次のコマンドを実行します。

      ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home CLUSTER_NODES="" –local
      

    runInstallerコマンドは、Oracle_home/oui/binディレクトリに格納されています。このコマンドを使用してもインストーラのGUIは起動しません。

  4. 削除対象のノードからOracleホームを削除するには、Oracle_home/oui/binディレクトリから次のコマンドを実行します。

    ./runInstaller -deinstall -silent "REMOVE_HOMES={Oracle_home}" -local
    
  5. 削除対象外のノードですべてのデータベース・リソースが実行中であることを確認します。

    1. CRS_HOME/binディレクトリからcrs_statコマンドを実行して、他のノードを確認します。次の例は、ノードnode2のデータベースdb_nameの統計を示しています。

      NAME=ora.db_name.db
      TYPE=application
      TARGET=ONLINE
      STATE=ONLINE on node2
      
    2. 削除するノードでデータベース・リソースが実行中でないことを確認します。例に示すとおり、CRS_HOME/binディレクトリからcrs_relocateコマンドを実行してこれを行います。

      crs_relocate ora.db_name.db
      
  6. 削除するノード上のノード・アプリケーションを削除します。

    rootユーザーとして、次のコマンドを実行します。

    # srvctl remove nodeapps -n nodename
    
  7. クラスタに残すノードでノード・リストを更新します。

    1. 次のコマンドを実行して、表示環境を設定します。

      DISPLAY=ipaddress:0.0; export DISPLAY
      
    2. クラスタ内にあるノードのOracleインベントリのデータベースOracleホーム($ORACLE_HOME)を定義します。$ORACLE_HOMEがない場合は、次の手順に進みます。

      ORACLEユーザーとして、クラスタに残すいずれかのノードでupdateNodeListオプションを指定してインストーラを実行し、クラスタの一部として残すノードのカンマ区切りのリストを含めます。

      $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=Oracle_Home CLUSTER_NODES=node1,node3,node4
      
  8. 削除するノードでOracle Clusterwareを停止します。

    削除するノードのrootユーザーとして、CRS_home/install/ディレクトリでrootdelete.sh スクリプトを実行し、ノード上にあるOracle Clusterwareアプリケーションを無効にします。次に例を示します。

    # cd CRS_home/install
    # ./rootdelete.sh local nosharedvar nosharedhome
    

    ローカル・ファイル・システムを使用している場合は、このコマンドを1回のみ実行し、nosharedhome引数を使用します。nosharedvarオプションは、OCR.LOCファイルが共有ファイル・システム上にないことを前提としています。 このコマンドのデフォルトはsharedhomeです。この場合、oracleユーザーでローカル・ファイルを削除できるようにするために、ローカル・ファイルのアクセス権が更新不可にされます。 ocr.locファイルが共有ファイル・システム上にある場合は、CRS_home/install/rootdelete.sh remote sharedvarコマンドを実行します。

    クラスタから複数のノードを削除する場合、削除する各ノードでこの手順を繰り返します。

  9. ノードを削除し、OCRから削除します。

    削除対象外のいずれかのノードでrootユーザーとして、次の手順を実行します。

    1. ノードのノード番号を調べるには、CRS_home/binディレクトリからolsnodes -nというコマンドを実行します。次に例を示します。

      # olsnodes -n
      node1 1
      node2 2
      
    2. CRS_home/install/ディレクトリからrootdeletenode.shスクリプトを実行します。rootdeletenode.shスクリプトはclscfg -deleteスクリプトをコールし、Oracleクラスタからノードを削除し、OCRを更新します。

      次の例では、1つのノードnode2のみが削除されます。

      # cd CRS_home/install
      # ./rootdeletenode.sh node2,2
      

      削除対象のノードが1つのみの場合は、削除対象ノードのノード名とノード番号をCRS_home/install/rootdelete.sh node1,node1-numberというコマンドに指定します。複数のノードを削除する場合は、CRS_home/install/rootdelete.sh node1,node1-number,node2,node2-number,... nodeN,nodeN-numberというコマンドを実行します。node1からnodeNは削除対象のノードのリスト、node1-numberからnodeN-numberはノード番号です。

      この手順を実行しない場合は、olsnodesコマンドによって、削除されたノードがクラスタの一部として表示され続けます。

    3. olsnodesコマンドを発行して、ノードが削除されたことを確認します。

      ./olsnodes -n
      node1 1
      
  10. クラスタ内にあるノードのOracleインベントリのCRSホームを定義します。

    ORACLEユーザーとして、次の手順を実行します。

    1. 次のコマンドを実行して、表示環境を設定します。

      DISPLAY=ipaddress:0.0; export DISPLAY
      
    2. CRSホームからrunInstallerコマンドを実行し、クラスタ内に残すノードのカンマ区切りのリストを指定します。

      CRSホームから、クラスタに残すいずれかのノードでupdateNodeListオプションを指定してインストーラを実行し、クラスタの一部として残すノードのカンマ区切りのリストを含めます。

      CRS_home/oui/bin/runInstaller -updateNodeList ORACLE_HOME=CRS_home
      CLUSTER_NODES=node1, node3, node4 CRS=TRUE
      
  11. 削除したノードからOracleホームおよびCRSホームを削除します。

    ノードの更新を行った場合、削除したノードからOracleホームおよびCRSホームを手動で削除する必要があります。注意: これらのホーム・ディレクトリのいずれかが共有ファイル・システムにある場合は、次の手順に進みます。

    1. Oracleホーム・ディレクトリで、次のコマンドを実行します。

      $ORACLE_HOME: rm -rf *
      
    2. CRSホーム・ディレクトリで、次のコマンドを実行します。

      $CRS_HOME : rm -rf *
      
  12. 削除したノードからすべての初期化スクリプトおよびソフト・リンクが削除されていることを確認します。

    たとえば、Linuxシステムでrootユーザーとして、次のコマンドを実行します。

    rm -f /etc/init.d/init.cssd
    rm -f /etc/init.d/init.crs
    rm -f /etc/init.d/init.crsd
    rm -f /etc/init.d/init.evmd
    rm -f /etc/rc2.d/K96init.crs
    rm -f /etc/rc2.d/S96init.crs
    rm -f /etc/rc3.d/K96init.crs
    rm -f /etc/rc3.d/S96init.crs
    rm -f /etc/rc5.d/K96init.crs
    rm -f /etc/rc5.d/S96init.crs
    rm -Rf /etc/oracle/scls_scr
    

    削除したノードから/etc/oracleディレクトリ、/etc/oratabファイルおよびOracleインベントリを削除することもできます。

  13. すべての残りのノードで、Oracleインベントリから追加のOracleホーム、ASMホームまたはOracle Enterprise Managerホーム(使用している場合)を削除することもできます。

    すべての残りのノードで、インストーラを実行してノード・リストを更新します。次の例では、クラスタからnode2を削除したと仮定します。

    ./runInstaller -updateNodeList -local \ORACLE_HOME=$ORACLE_HOME
    CLUSTER_NODES=node1,node3,node4
    
  14. ノードがクラスタから削除されたことを確認します。

    次のコマンドを実行して、ノードがクラスタのメンバーではなくなっていること、およびOracle Clusterwareのコンポーネントがこのノードから削除されていることを確認します。

    cluvfy comp crs -n all [-verbose]
    

    削除したノードに関する情報がこのコマンドの応答に含まれておらず、削除したノードにOracle Clusterwareのコンポーネントが存在していません。


    関連項目:

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