この章では、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ガイド』を参照してください。 |
この手順を開始する前に、既存ノードのCRS_home
へのパスが正しいこと、および$ORACLE_HOME
環境変数が正しく設定されていることを確認します。
すでにOracle ClusterwareおよびOracle DatabaseソフトウェアがインストールされているノードにOracle RACを追加するには、クラスタの既存ノード上にあるOracle Databaseソフトウェアでターゲット・ノードを構成する必要があります。この処理を行うには、次の手順に従い、Oracle Clusterwareとデータベースの各レイヤーについて、2種類のOracle Universal Installerプロセスを実行する必要があります。
次のコマンドを使用して既存ノードのOracle ClusterwareホームからOracle Universal Installerを実行し、Oracle Clusterwareレイヤーでターゲット・ノードにOracle RACを追加します。
CRS_home/oui/bin/addNode.sh -noCopy
次のコマンドを使用してOracleホームからOracle Universal Installerを実行し、Oracleソフトウェア・レイヤーでターゲット・ノードにOracle RACを追加します。
Oracle_home/oui/bin/addNode.sh -noCopy
-noCopy
モードの場合、Oracle Universal Installerは、ターゲット・ノードへのソフトウェアのコピーを除くすべてのノード追加操作を実行します。
注意: ノード追加プロセスの終了後は、投票ディスクおよびOracle Cluster Registry(OCR)ファイルをバックアップすることをお薦めします。 |
この項では、手動による詳細な手順を使用してノードをクラスタに追加する方法を説明します。Oracle RACを追加するノードにクラスタウェアまたはOracleソフトウェアがインストールされていない場合は、次の手順を実行してターゲット・ノードにOracle RACを追加する必要があります。これらの手順は、LinuxまたはUNIX環境がすでに稼働していることを前提としています。
それ以外の場合、すでにクラスタウェアおよびOracleソフトウェアで構成されているノードにOracle RACを追加するには、「クラスタウェアとOracle Databaseを実行するノードへのOracle RACの追加」で説明する手順に従ってください。
この項の内容は次のとおりです。
次の手順では、クラスタの一部になるようにターゲット・ノードを設定する方法について説明します。
ターゲット・ノードのハードウェアをクラスタのネットワーク・インフラストラクチャに接続します。この作業には、電気的な接続の確立、ネットワーク・インターコネクトの構成、共有ディスク・サブシステム接続の構成などが含まれます。この手順の詳細は、ハードウェア・ベンダーのマニュアルを参照してください。
クラスタの他のノード上のオペレーティング・システムと一致するオペレーティング・システムのクローン・イメージをインストールします。これには、必要なサービス・パッチやドライバのインストールも含まれます。このプロセスの詳細は、ハードウェア・ベンダーのマニュアルを参照してください。
関連項目: Database Configuration Assistant(DBCA)を使用してOracle RACデータベースを作成および削除する手順については、使用しているプラットフォーム固有のOracle Real Application Clustersのインストレーション・ガイドを参照してください。 |
Oracleユーザーを作成します。
root
ユーザーとして、既存ノードと同じユーザーIDおよびグループIDを使用してOracleユーザーおよびグループを作成します。
クラスタ検証ユーティリティ(Cluster Verification Utility: CVU)を使用して、次の手順でインストールを検査します。
既存ノードで、CRS_home
の/bin
ディレクトリからCVUコマンドを実行して、ハードウェア設定後のインストールを検査します。node_list
は、クラスタの一部とするノードのカンマ区切りのリストです。
cluvfy stage -post hwos -n node_list│all [-verbose]
注意: -n 引数を付けたall オプションを使用できるのは、CV_NODE_ALL 変数を、CVUの処理対象とするノードのリストに設定している場合に限られます。 |
このCVUコマンドを使用して、次の処理を実行することもできます。
ノードが、ローカル・ノードから、たとえば、すべてのノードに到達可能であるかどうかの検査。
指定されたすべてのノードとローカル・ノードとの間のユーザー等価関係、指定されたすべてのノード間のノード接続性、指定されたすべてのノードからの共有記憶域へのアクセス可能性などの検査。
関連項目: 『Oracle Clusterware管理およびデプロイメント・ガイド』の「クラスタ検証ユーティリティの使用」 |
既存ノードで、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 などの一時ディレクトリの環境変数を、ローカル・ノード上の非共有ディレクトリに設定してください。また、すべてのノードに存在するディレクトリを使用してください。 |
インストールが正しく構成されているか確認するために、次の手順を実行します。
ターゲット・ノードがプライベート・インターコネクトにアクセスできることを確認します。この章で説明する手順を実行する前に、このインターコネクトが正しく構成されている必要があります。
クラスタ・ファイル・システムを使用していない場合は、既存ノードでクラスタ・ソフトウェアがインストールされている位置を調べます。Oracle Clusterwareをインストールするために、それぞれのターゲット・ノードについて同じ位置に250MB以上の空き領域があることを確認します。また、各ターゲット・ノードにOracleバイナリをインストールするのに十分な空き領域があることも確認します。
OCRと投票ディスクに、同じパスを使用してターゲット・ノードからアクセスできることを確認します。また、OCRと投票ディスク・デバイスは、既存ノードと同じ権限を持っている必要があります。
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を使用する場合、一部のLinuxおよびUNIXシステムでは、既存ノードを停止しなくてもノードを追加できます。追加できるのは、クラスタウェアがこれをサポートする場合のみです。詳細は、ベンダー固有のクラスタウェアのマニュアルを参照してください。
注意: クラスタウェア・ホームとして共有記憶域を使用するシステムでは、ターゲット・ノードが既存のクラスタウェアにアクセスできることを確認します。また、ターゲット・ノードを既存のクラスタの一部としてオンラインにできることも確認します。 |
ターゲット・ノードがOracleソフトウェアにアクセスでき、既存ノードがターゲット・ノードとインスタンスにアクセスできるように共有記憶装置を構成するには、この項の情報を使用します。次に、「ターゲット・ノードへのOracle Real Application Clustersデータベース・ホームの追加」の手順を実行します。
注意: 現行の構成に、(明示的な操作または他のノードへの自動的なASMの拡張によって)実行しようとしているASMアクティビティとの互換性がない場合があります。DBCAを使用して新しいOracleホームを使用するデータベースを構築する場合、Oracleソフトウェアの以前のリリースのASMを使用しており、そのバージョンのASMがデータベースに対して選択したすべてのノードに存在しない場合、ASMは拡張できません。この場合、DBCAセッションでは、ノードを追加するスクリプトを実行するか、DBUAを使用してASMをアップグレードするように求めるエラーが表示されます。 |
既存のOracle RACデータベースをターゲット・ノードに拡張するには、Oracle RAC環境の既存ノードで使用しているものと同じタイプの記憶域をターゲット・ノードで構成します。
Oracle RACデータベースとASMが同じOracleホームに存在する場合、ASMインスタンスはノードの追加時に暗黙的に作成されるため、追加したノードにASMをインストールする必要はありません。ただし、ASMが(Oracle推奨の)専用のホームに存在する場合は、新しいノードをクラスタに追加するために、Oracle Clusterwareホーム(CRS_home
)、ASMホームおよびOracleホームをこの順序で拡張する必要があります。
記憶域にASMを使用する場合、ターゲット・ノードが既存ノードと同じ権限でASMディスクにアクセスできることを確認します。
関連項目: シングル・インスタンス・データベースまたはクラスタ内のOracle RACデータベース・インスタンスを実行しているノードに新規ASMインスタンスを追加する方法については、「シングル・インスタンスまたはOracle RACデータベースを実行するノードへのASMの拡張」を参照してください。 |
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 RACデータベース・ホームを追加できます。
Oracle Universal Installerの対話モードを使用したターゲット・ノードへのデータベース・ホームの拡張
Oracle Universal Installerのサイレント・モードを使用したターゲット・ノードへのデータベース・ホームの拡張
関連項目: コマンドライン・レスポンス・ファイルの構成方法の詳細は、『Oracle Universal InstallerおよびOpatchユーザーズ・ガイド』を参照してください。NetCAの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
Oracle RACをターゲット・ノードに拡張するには、add
node
モードでOracle Universal Installerを実行し、ターゲット・ノードでOracleホームを構成します。複数のOracleホームがある場合は、ターゲット・ノードに含める各Oracleホームについて次の手順を実行します。
クラスタ環境内で1つ以上のノードに、Oracle RACソフトウェアとともにOracle Databaseが正常にインストールされていることを確認します。
$ORACLE_HOME
環境変数が、正常にインストールされたOracleホームを識別しているかどうかを確認します。
addNode.sh
スクリプトを実行します。
既存ノードで、Oracle_home
/oui/bin
ディレクトリからaddNode.sh
スクリプトを実行します。このスクリプトによって、add
node
モードでOracle Universal Installerが起動され、Oracle Universal Installerの「ようこそ」ページが表示されます。「ようこそ」ページで「次へ」をクリックすると、「ノードを追加するクラスタ・ノードの指定」ページが表示されます。
Oracle Universal Installerに表示されるエントリを確認します。
「ノードを追加するクラスタ・ノードの指定」ページには、Oracle Universal Installerを起動したOracleホームに関連付けられている既存ノードを示す表があります。このページの下部には、追加できるノードを示すノードの選択表が表示されます。追加するノードを選択し、「次へ」をクリックします。
Oracle Universal Installerが、既存ノードと追加対象ノードで接続性と可用性の検査を実行します。次の検査が実行されます。
ノードが起動しているか
ネットワークからノードにアクセスできるか
いずれかの検査に失敗した場合は、問題を解決するか、エラーのあるノードの選択を解除して先に進みます。既存ノードの選択を解除することはできません。まず、既存ノードでの問題を解決してから、ノード追加を続行する必要があります。すべての検査に成功すると、「ノード追加のサマリー」ページが表示されます。
注意: 一部の既存ノードが停止している場合は、それらが起動した後、各ノードでupdateNodeList プロシージャを実行してノード・リストを修正する必要があります。そのためには、次のコマンドを実行します。node_list は、Oracle RACのデプロイ先となっているすべてのノードのカンマ区切りのリストです。
oui/bin/runInstaller -updateNodeList
"CLUSTER_NODES={node_list}" -local
|
「ノード追加のサマリー」ページには、ターゲット・ノードに拡張するOracleホームにインストールされる製品に関する次の情報が表示されています。
ノード追加プロセスのソース(この場合はOracleホーム)
既存ノードおよびターゲット・ノード
選択したターゲット・ノード
ターゲット・ノード上の必須領域および使用可能領域
既存Oracleホームにすでにインストールされているすべての製品のリスト
「終了」をクリックすると、「クラスタ・ノード追加の進捗状況」ページが表示されます。
「クラスタ・ノード追加の進捗状況」ページには、クラスタ・ノード追加プロセスのステータスが表示されます。このページの表には、ノード追加プロセスの次の4つのフェーズと各フェーズのステータスを示す2つの列があります。
Oracleホームを新規ノードにコピー: Oracleホームがクラスタ・ファイル・システムにある場合を除き、Oracleホーム全体をローカル・ノードからターゲット・ノードにコピーします。
クラスタ・インベントリの保存: Oracleホームおよびそのインベントリと関連付けられたノード・リストを更新します。
root.sh
の実行: ターゲット・ノードでroot.sh
を実行するように求めるダイアログが表示されます。
「クラスタ・ノード追加の進捗状況」ページの「ステータス」列には、フェーズ完了後は「成功しました」
、フェーズの進行中は「処理中です」
、フェーズの実行が保留中は
「停止中です」
と表示されます。ノード追加の終了ページが表示されたら、「終了」をクリックしてOracle Universal Installerセッションを終了します。
ターゲット・ノードで、Net Configuration Assistant(NetCA)を実行してリスナーを追加します。
ターゲット・ノードからNetCAを実行し、「ノードの選択」ページでターゲット・ノードのみを選択して、ターゲット・ノードにリスナーを追加します。
ここで、「ターゲット・ノードへのASMおよびOracle RACデータベース・インスタンスの追加」で説明するように、ターゲット・ノードにデータベース・インスタンスを追加できます。
手順1から6のかわりに、次のようにしてaddNode.sh
をサイレント・モードで実行することもできます。nodeI
、nodeI+1
などは、Oracle RACデータベース・ホームの追加対象のターゲット・ノードです。
クラスタ環境内で1つ以上のノードに、Oracle RACソフトウェアとともにOracle Databaseが正常にインストールされていることを確認します。
$ORACLE_HOME
環境変数が、正常にインストールされたOracleホームを識別しているかどうかを確認します。
Oracle_home
/oui/bin
に移動し、addNode.sh
スクリプトを実行します。次の例では、nodeI
、nodeI+1
などは、追加対象のノードです。
addNode.sh -silent "CLUSTER_NEW_NODES={nodeI, nodeI+1, … nodeI+n}"
また、variable=value
というエントリをレスポンス・ファイル(filename
)に記述したうえで、次のようにaddNode
スクリプトを実行することもできます。
addNode.sh -silent -responseFile filename
コマンドラインの値は、常にレスポンス・ファイルの値に優先します。
Oracle Enterprise ManagerまたはDBCAを使用して、Oracle RACデータベース・インスタンスをターゲット・ノードに追加できます。 Oracle Enterprise Managerを使用してターゲット・ノードにデータベース・インスタンスを追加する方法の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。
この項では、DBCAを使用してOracle RACデータベース・インスタンスを追加する方法について説明します。内容は次のとおりです。
これらのツールは、次のタスクをガイドします。
既存のインスタンスがASMを使用している場合、各ターゲット・ノードでのASMインスタンスの作成および起動
各ターゲット・ノードでの新規データベース・インスタンスの作成
高可用性コンポーネントの作成および構成
Oracle Net構成の作成
新規インスタンスの起動
サービス構成ページでサービス情報を入力した場合、サービスの作成および起動
ターゲット・ノードにインスタンスを追加した後で、第4章で説明したように、必要なサービス構成手順を実行する必要があります。
対話モードでDBCAを使用してターゲット・ノードにデータベース・インスタンスを追加するには、次の手順を実行します。
既存ノードの$ORACLE_HOME
環境変数が正しく設定されていることを確認します。
システム・プロンプトでOracle_home
ディレクトリのbin
ディレクトリに移動し、dbca
と入力してDBCAを起動します。
DBCAにOracle RAC用の「ようこそ」ページが表示されます。DBCAの各ページで「ヘルプ」をクリックすると、追加情報を参照できます。
「Oracle Real Application Clustersデータベース」を選択し、「次へ」をクリックすると、「操作」ページが表示されます。
「インスタンスの追加」を選択して、「次へ」をクリックします。 「クラスタ・データベースのリスト」ページが表示されます。このページには、データベースとその現行のステータス(「アクティブ」
や「非アクティブ」
など)が表示されます。
「クラスタ・データベースのリスト」ページで、インスタンスを追加するアクティブなOracle RACデータベースを選択します。SYSDBA
権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックすると、選択したOracle RACデータベースの既存のインスタンスの名前を示す「クラスタ・データベース・インスタンスのリスト」ページが表示されます。
「インスタンスの追加」ページで、DBCAに表示されるインスタンス名が既存のインスタンス名スキームと合致しない場合には、このページの一番上のフィールドにインスタンス名を入力します。リストからターゲット・ノード名を選択し、「次へ」をクリックすると、「サービス」ページが表示されます。
ターゲット・ノードのインスタンスに関するサービス情報を入力し、「次へ」をクリックすると、「インスタンス記憶域」ページが表示されます。
RAWデバイスまたはRAWパーティションを使用している場合は、「インスタンス記憶域」ページで「表領域」フォルダを選択して展開します。UNDO表領域記憶域オブジェクトを選択すると、ダイアログ・ボックスが右側に表示されます。デフォルトのデータ・ファイル名を表領域用のRAWデバイス名に変更します。
RAWデバイスまたはRAWパーティションを使用している場合、またはデフォルトのREDOログ・グループ・ファイル名を変更したい場合は、「インスタンス記憶域」ページで「REDOログ・グループ」フォルダを選択して展開します。選択したREDOログ・グループ番号ごとに、別のダイアログ・ボックスが表示されます。「ターゲット・ノードでの共有記憶域の構成」で作成したRAWデバイス名を「ファイル名」フィールドに入力します。
クラスタ・ファイル・システムを使用している場合は、「インスタンス記憶域」ページで「終了」をクリックします。 RAWデバイスを使用している場合は、他のすべてのREDOログ・グループについて手順11を繰り返します。「終了」をクリックすると、「サマリー」ダイアログ・ボックスが表示されます。
「サマリー」ダイアログ・ボックスに表示された情報を確認し、「OK」をクリックするか、またはインスタンス追加操作を終了する場合は「取消」をクリックします。DBCAがインスタンス追加操作を実行中であることを示す進捗ダイアログ・ボックスが表示されます。DBCAによるインスタンス追加操作が終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。
DBCAセッションの終了後、次のコマンドを実行して、ターゲット・ノードに対する管理権限を確認し、それらの権限に関する詳細情報を取得します。nodelist
は、ターゲット・ノードです。
cluvfy comp admprv -o db_config -d oracle_home -n nodelist [-verbose]
第4章「自動ワークロード管理の概要」で説明したように、必要なサービス構成手順を実行します。
DBCAのサイレント・モードを使用して、Oracle ClusterwareホームおよびOracle Databaseホームを拡張したノードにインスタンスを追加できます。次の構文を使用します。password
はパスワードです。
dbca -silent -addInstance -nodeList node -gdbName gdbname [-instanceName instname] -sysDBAUserName sysdba -sysDBAPassword password
表8-1 DBCAサイレント・モード構文の変数
変数 | 説明 |
---|---|
|
インスタンスの追加(または削除)対象のノード。 |
|
グローバル・データベース名。 |
|
インスタンスの名前。Oracle RACインスタンス名に関するOracleネーミング規則を使用せずにインスタンス名を指定する場合にのみ、インスタンス名を指定します。 |
|
|
|
|
dbca
コマンドを実行する前に、既存ノードで$ORACLE_HOME
環境変数が正しく設定されていることを確認します。
この項では、Oracle RAC環境でクラスタからノードを削除する場合に実行する手順を説明します。内容は次のとおりです。
注意: Oracle RACデータベースからインスタンスを削除する前に、SRVCTLまたはOracle Enterprise Managerのいずれかを使用して次の操作を実行します。
|
この項では、対話モードまたはサイレント・モードでDBCAを使用してOracle RACデータベースからインスタンスを削除する方法について説明します。 Oracle Enterprise Managerを使用してターゲット・ノードからデータベース・インスタンスを削除するには、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。
この項の内容は次のとおりです。
注意: インスタンスでASMが使用されており、ASMが個別のOracleホームにインストールされている場合、次の手順を実行しても指定したノードからASMインスタンスは削除されません。 |
対話モードでDBCAを使用してインスタンスを削除するには、次の手順を実行します。
OCRの現行のバックアップがあることを確認します。
ocrconfig -showbackup
コマンドを実行して、有効なバックアップがあることを確認します。
DBCAを起動します。
削除するインスタンスを保持しているノード以外のノードで、DBCAを起動します。削除するデータベースおよびインスタンスは、この手順の間、起動し、実行し続ける必要があります。
DBCAの「ようこそ」ページで「Oracle Real Application Clustersデータベース」を選択し、「次へ」をクリックします。「操作」ページが表示されます。
DBCAの「操作」ページで「インスタンス管理」を選択し、「次へ」をクリックします。「インスタンス管理」ページが表示されます。
DBCAの「インスタンス管理」ページで、削除するインスタンスを選択し、「インスタンスの削除」を選択し、「次へ」をクリックします。
「クラスタ・データベースのリスト」ページで、次のように、インスタンスを削除するOracle RACデータベースを選択します。
この「クラスタ・データベース・インスタンスのリスト」ページには、選択したOracle RACデータベースに関連付けられたインスタンスと各インスタンスのステータスが表示されます。インスタンスを削除するクラスタ・データベースを選択します。
SYSDBA
権限を持つデータベース・ユーザーのユーザー名およびパスワードを入力します。「次へ」をクリックします。
「確認」ダイアログ・ボックスで「OK」をクリックし、インスタンスの削除を続行します。
DBCAがインスタンスを削除していることを示す進捗ダイアログ・ボックスが表示されます。この操作の中で、DBCAはインスタンスとそのインスタンスのOracle Net構成を削除します。DBCAがインスタンスの削除操作を終了すると、別の操作を実行するかどうかを尋ねるダイアログ・ボックスが表示されます。
DBCAを終了する場合は「いいえ」を、別の操作を実行する場合は「はい」をクリックします。「はい」をクリックすると、「操作」ページが表示されます。
V$LOG
ビューを問い合せて、削除したインスタンスのREDOスレッドが削除されていることを確認します。REDOスレッドが無効になっていない場合は、スレッドを無効にします。次に例を示します。
SQL> ALTER DATABASE DISABLE THREAD 2;
次のコマンドを発行して、インスタンスがOCRから削除されていることを確認します。
srvctl config database -d database_name cd CRS_HOME/bin ./crs_stat
このノードにASMインスタンスがあり、ノードがクラスタに含まれなくなる場合は、次のコマンドを発行してASMインスタンスを削除する必要があります。
srvctl stop asm -n node_name srvctl remove asm -n node_name
次のコマンドを発行して、ASMが削除されていることを確認します。
srvctl config asm -n node_name
複数のノードを削除する場合は、この手順を繰り返し、削除するすべてのノードからインスタンスを削除します。
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ディレクトリ構造の削除
インスタンスを削除すると、クラスタからノードを削除するプロセスを開始できます。削除するノードでスクリプトを実行してOracle Clusterwareインストールを削除し、残りのノードでスクリプトを実行してノード・リストを更新し、このプロセスを完了します。
次の手順では、削除するノード(この説明ではnode2
)はまだ機能していると仮定します。この手順を開始する前に、$ORACLE_HOME
環境変数が既存ノードで正しく設定されていることを確認します。
LinuxまたはUNIXシステムでOracleクラスタからノードを削除するには、次の手順を実行します。
削除するノード上のノード・アプリケーションを停止します。
root
ユーザーとして、srvctl stop nodeapps
コマンドを実行し、削除するノード上のnodeappsを停止および削除します。次に例を示します。
# srvctl stop nodeapps -n nodename
ノードからリスナーを削除します。
ノード固有のリスナーLISTENER_
nodename
がこのOracleホームから実行されている場合は、NetCAを使用してそのリスナーを削除します。必要に応じて、このリスナーを別のホームに再作成します。NetCAを起動し、次のように続けます。
「クラスタ構成」を選択します。
削除するノードのみを選択し、「次へ」をクリックします。
「リスナー構成」を選択し、「次へ」をクリックします。
「削除」を選択し、削除するノード上に構成されたすべてのリスナーを削除します。
関連項目: NetCAの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
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は起動しません。
削除対象のノードからOracleホームを削除するには、Oracle_home
/oui/bin
ディレクトリから次のコマンドを実行します。
./runInstaller -deinstall -silent "REMOVE_HOMES={Oracle_home}" -local
削除対象外のノードですべてのデータベース・リソースが実行中であることを確認します。
CRS_HOME
/bin
ディレクトリからcrs_stat
コマンドを実行して、他のノードを確認します。次の例は、ノードnode2
のデータベースdb_name
の統計を示しています。
NAME=ora.db_name.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on node2
削除するノードでデータベース・リソースが実行中でないことを確認します。例に示すとおり、CRS_HOME
/bin
ディレクトリからcrs_relocate
コマンドを実行してこれを行います。
crs_relocate ora.db_name.db
削除するノード上のノード・アプリケーションを削除します。
root
ユーザーとして、次のコマンドを実行します。
# srvctl remove nodeapps -n nodename
クラスタに残すノードでノード・リストを更新します。
次のコマンドを実行して、表示環境を設定します。
DISPLAY=ipaddress:0.0; export DISPLAY
クラスタ内にあるノードのOracleインベントリのデータベースOracleホーム($ORACLE_HOME
)を定義します。$ORACLE_HOME
がない場合は、次の手順に進みます。
ORACLE
ユーザーとして、クラスタに残すいずれかのノードでupdateNodeList
オプションを指定してインストーラを実行し、クラスタの一部として残すノードのカンマ区切りのリストを含めます。
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=Oracle_Home CLUSTER_NODES=node1,node3,node4
削除するノードで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
コマンドを実行します。
クラスタから複数のノードを削除する場合、削除する各ノードでこの手順を繰り返します。
ノードを削除し、OCRから削除します。
削除対象外のいずれかのノードでroot
ユーザーとして、次の手順を実行します。
ノードのノード番号を調べるには、CRS_home
/bin
ディレクトリからolsnodes -n
というコマンドを実行します。次に例を示します。
# olsnodes -n node1 1 node2 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
コマンドによって、削除されたノードがクラスタの一部として表示され続けます。
olsnodes
コマンドを発行して、ノードが削除されたことを確認します。
./olsnodes -n node1 1
クラスタ内にあるノードのOracleインベントリのCRSホームを定義します。
ORACLE
ユーザーとして、次の手順を実行します。
次のコマンドを実行して、表示環境を設定します。
DISPLAY=ipaddress:0.0; export DISPLAY
CRSホームからrunInstaller
コマンドを実行し、クラスタ内に残すノードのカンマ区切りのリストを指定します。
CRSホームから、クラスタに残すいずれかのノードでupdateNodeList
オプションを指定してインストーラを実行し、クラスタの一部として残すノードのカンマ区切りのリストを含めます。
CRS_home/oui/bin/runInstaller -updateNodeList ORACLE_HOME=CRS_home CLUSTER_NODES=node1, node3, node4 CRS=TRUE
削除したノードからOracleホームおよびCRSホームを削除します。
ノードの更新を行った場合、削除したノードからOracleホームおよびCRSホームを手動で削除する必要があります。注意: これらのホーム・ディレクトリのいずれかが共有ファイル・システムにある場合は、次の手順に進みます。
Oracleホーム・ディレクトリで、次のコマンドを実行します。
$ORACLE_HOME: rm -rf *
CRSホーム・ディレクトリで、次のコマンドを実行します。
$CRS_HOME : rm -rf *
削除したノードからすべての初期化スクリプトおよびソフト・リンクが削除されていることを確認します。
たとえば、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インベントリを削除することもできます。
すべての残りのノードで、Oracleインベントリから追加のOracleホーム、ASMホームまたはOracle Enterprise Managerホーム(使用している場合)を削除することもできます。
すべての残りのノードで、インストーラを実行してノード・リストを更新します。次の例では、クラスタからnode2
を削除したと仮定します。
./runInstaller -updateNodeList -local \ORACLE_HOME=$ORACLE_HOME CLUSTER_NODES=node1,node3,node4
ノードがクラスタから削除されたことを確認します。
次のコマンドを実行して、ノードがクラスタのメンバーではなくなっていること、およびOracle Clusterwareのコンポーネントがこのノードから削除されていることを確認します。
cluvfy comp crs -n all [-verbose]
削除したノードに関する情報がこのコマンドの応答に含まれておらず、削除したノードにOracle Clusterwareのコンポーネントが存在していません。
関連項目: CVUの有効化方法および使用方法の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。 |