8 Oracle Clusterwareのクローニング
この章では、Oracle Grid Infrastructureホームをクローニングする方法およびクローニングされたホームを使用してクラスタを作成する方法について説明します。この章のクローニング手順を実行するには、サイレント・モードでスクリプトを使用します。クローニング手順は、LinuxおよびUNIXシステムに適用できます。この章の例ではLinuxおよびUNIXのコマンドを使用しますが、通常、クローニングの概念および手順はすべてのプラットフォームに適用されます。
注意:
この章は、次のように構成されたOracle Clusterware 12cインストールをクローニングすることを前提としています。
-
グリッド・ネーミング・サービス(GNS)なし
-
Intelligent Platform Management Interface仕様(IPMI)なし
-
投票ファイルおよびOracle Cluster Registry(OCR)がOracle Automatic Storage Management(Oracle ASM)に格納されている
-
単一クライアント・アクセス名(SCAN)はDNSで解決される
この章のトピックは、次のとおりです:
8.1 Oracle Clusterwareのクローニングの概要
クローニングとは、既存のOracle Clusterwareインストールを別の場所にコピーし、その後、コピーしたインストールを新しい環境で動作するよう更新するプロセスです。クローニング元のOracle Grid Infrastructureホームに適用済の個別パッチによる変更は、クローニング後も継承されます。クローニング中には、Oracle Grid Infrastructureホームのインストールで実行された操作を再実行するスクリプトを実行します。
クローニングには、正常にインストールされたOracle Grid Infrastructureホームを使用することが必要です。このホームを、Oracle Grid Infrastructureホームを拡張するスクリプト実装のベースにして、元のGridホームに基づくクラスタを作成します。
手動でのクローニング・スクリプトの作成では、入力を検証する対話形式のチェックを使用せずにスクリプトを準備するため、エラーが発生しやすくなる場合があります。ただし、数十または数百のクラスタに対して単一スクリプトを実行するような場合には、この最初の作業は意味があります。インストールするクラスタが1つのみの場合は、Oracle Universal Installer(OUI)またはOracle Enterprise ManagerのProvisioning Pack機能など、従来の自動化された対話形式のインストール方法を使用してください。
注意:
クローニングは、Provisioning Packに含まれるOracle Enterprise Managerクローニングにかわるものではありません。Oracle Enterprise Managerによるクローニングでは、プロビジョニング・プロセスによってOracleホームの詳細が対話形式で確認されることで、クローニングが単純化されています。対話時の質問では、クローニングされた環境のデプロイ先、Oracle Databaseホームの名前、クラスタ内のノードのリストなどが確認されます。
Oracle Enterprise Manager Grid ControlのProvisioning Pack機能では、ノードおよびクラスタのプロビジョニングを自動化するフレームワークが提供されています。多数のクラスタを持つデータ・センターの場合、既存のクラスタに新規クラスタおよび新規ノードをプロビジョニングするためのクローニング手順を作成する作業は、その労力に見合った価値があります。
次のリストに、クローニングが有効ないくつかの状況を示します。
-
クローニングにより、Oracle Grid Infrastructureホームを1回準備するだけで、多数のホストに同時にデプロイされます。非対話形式のプロセスとして、サイレント・モードでインストールを完了できます。グラフィカル・ユーザー・インタフェース(GUI)のコンソールを使用する必要がなく、必要に応じて、セキュア・シェル(SSH)・ターミナル・セッションからクローニングを実行できます。
-
クローニングにより、すべてのパッチが適用されたインストール(本番、テスト、または開発用インストールのコピー)を1回の手順で作成できます。ベース・インストールを実行してソース・システムにすべてのパッチ・セットとパッチを適用した後は、クローニングにより、それらの個別の手順はすべて単一の手順で実行されます。これにより、クラスタの各ノードですべてのインストール・プロセスを通して行い、インストール、構成およびパッチ適用を個別の手順で実行するのとは、対照的な効果が得られます。
-
クローニングによるOracle Clusterwareのインストールでは、非常に短時間で処理を完了できます。たとえば、3つ以上のノードを持つクラスタにOracle Grid Infrastructureホームをクローニングする場合、必要な時間は、Oracleソフトウェアのインストールにかかる数分間と各ノードにかかる数分間を合わせた時間(合計時間は
root.sh
スクリプトの実行にかかる時間とほぼ等しい)となります。 -
クローニングでは、複数のクラスタで同一のOracle Clusterwareインストールを正確に繰り返すための確実な方法が提供されます。
クローニングされたインストールは、クローニング元のインストールと同じ動作をします。たとえば、クローニングされたOracle Grid Infrastructureホームは、OUIを使用して削除したり、OPatchを使用してパッチを適用することができます。また、クローニングされたOracle Grid Infrastructureホームを、別のクローニング操作のソースとして使用できます。コマンドラインのクローニング・スクリプトを使用して、テスト用、開発用または本番用のインストールをクローニングしたコピーを作成できます。
多くの場合、デフォルトのクローニング手順で十分です。ただし、カスタム・ポート割当ての指定、またはカスタム設定の保持など、クローニングのいくつかの側面をカスタマイズすることもできます。
たとえば、リスナーのカスタム・ポートを、次のように指定できます。
$ export ORACLE_HOME=/u01/app/12.1.0/grid $ $ORACLE_HOME/bin/srvctl modify listener -endpoints tcp:12345
クローニング・プロセスでは、クローニング元のOracle Grid Infrastructureホームからクローニング先のOracle Grid Infrastructureホームにすべてのファイルをコピーします。Oracle Grid Infrastructureホームは、ローカル(非共有)ホームまたは共有ホームのどちらの場合でもクローニングできます。したがって、ソース・インスタンスで使用されているファイルの中で、クローニング元のOracle Grid Infrastructureホームのディレクトリ構造の外部に置かれているものがある場合、それはクローニング先にコピーされません。
ソースおよび宛先のバイナリ・ファイルのサイズは異なる場合がありますが、これはクローニング操作の一部としてこれらのファイルが再リンクされており、これら2つの位置のオペレーティング・システムのパッチ・レベルが異なっていることがあるためです。また、いくつかのファイルがソースからコピーされることによって、特にインスタンス化されたファイルはクローン操作の一部としてバックアップされるため、クローン・ホームのファイルの数が増える場合があります。
8.2 Oracle Grid Infrastructureホームをクローニングするための準備
クローニング元のOracle Grid Infrastructureホームでクローニングを準備するには、インストール済のOracle Grid Infrastructureホームのコピーを作成し、別のノードでクローニング手順を実行する際に使用します。次の段階ごとの手順に従って、Oracle Grid Infrastructureホームのコピーを準備します。
8.2.1 手順1: Oracle Clusterwareのインストール
『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』の詳細指示に従って、ソース・ノードで、次の手順を実行します。
8.2.2 手順2: 実行中のソフトウェアの停止
クローニング元のOracle Grid Infrastructureホームをコピーする前に、ノードで実行されているサービス、データベース、リスナー、アプリケーション、Oracle ClusterwareおよびOracle ASMインスタンスをすべて停止します。サーバー制御(SRVCTL)ユーティリティを使用してデータベースを停止してから、Oracle Clusterware制御(CRSCTL)ユーティリティを使用して残りのコンポーネントを停止することをお薦めします。
8.2.3 手順3: Oracle Grid Infrastructureホームのコピーの作成
インストールしたOracle Grid Infrastructureホームを作業ホームとして保持するために、クローニング元のOracle Grid Infrastructureホームの全体コピーを作成します。
ヒント:
コピーの作成時には、ファイル名にリリース番号を含めることをお薦めします。
次の方法のいずれかを使用してOracle Grid Infrastructureホームの圧縮コピーを作成します(Grid_home
はすべてのファイルを含む元のノードの元のOracle Grid Infrastructureホームであり、copy_path
は不要なファイルが削除されるコピーされたOracle Grid Infrastructureホームへのディレクトリ・パスです)。
8.3 Oracle Clusterwareのクローニングによるクラスタの作成
この項では、正常にインストールされたOracle Clusterware環境をクローニングし、それをクローニング先のクラスタ上のノードにコピーすることにより、クラスタを作成する方法を説明します。この項の手順では、Linux、UNIXおよびWindowsシステムでクローニングを使用する方法について説明します。クローニングでクラスタを正常に作成した後、OCRおよび投票ファイルは2つのクラスタ間で共有されません。
たとえば、クローニングを使用して、正常にインストールされたOracle Clusterware環境を複製し、クラスタを作成することができます。図8-1では、クローニング手順の最終結果を示しており、ここでは、ノード1上のOracle Grid Infrastructureホームがクラスタ2上のノード2およびノード3にクローニングされ、クラスタ2が新規の2ノード・クラスタとして作成されています。
クローニングでクラスタを作成する手順は次のとおりです。
8.3.1 手順1: 新規クラスタ・ノードの準備
各宛先ノードで、次のインストール前の手順を実行します。
-
カーネル・パラメータの指定
-
Oracle Clusterwareデバイス用のブロック・デバイスの構成
-
ブロック・デバイスの権限が正しく設定されていることの確認
-
/etc/hosts
ファイル内のすべての名前に対する短い非ドメイン修飾の名前の使用 -
ping
コマンドによる、インターコネクト・インタフェースが到達可能かどうかのテスト -
ping
コマンドによる、クローニング・プロセスの開始時にVIPアドレスがアクティブでないことの検証(VIPアドレスのping
コマンドは失敗する必要があります) -
ベンダーのクラスタウェアを実行しているAIXシステムおよびSolaris x86-64-bitシステムでクラスタにノードを追加する場合は、クラスタにノードを追加する前に、ノードで
rootpre.sh
スクリプト(DVDからOracle Clusterwareをインストールした場合はマウント・ポイント、ソフトウェアをダウンロードした場合はtarファイルを解凍したディレクトリにあります)を実行する必要があります。 -
CVUの実行によるハードウェアおよびオペレーティング・システム環境の検証
インストール前の全チェックリストは、ご使用のプラットフォーム固有のOracle Clusterwareインストレーション・ガイドを参照してください。
注意:
従来のインストール方法とは異なり、クローニング・プロセスでは、準備フェーズ中に入力が検証されません。(これと比較して、OUIを使用した従来のインストール方法では、インタビュー・フェーズ中に様々なチェックが実行されます。)したがって、ハードウェア設定または準備フェーズ中にミスをすると、クローニング・インストールは失敗します。
8.3.2 手順2: 宛先ノードでのOracle Grid Infrastructureホームのデプロイ
この項で説明しているクローニング手順を開始する前に、Oracle Grid Infrastructureホームのコピーを作成するための必須タスクを完了していることを確認してください(「Oracle Grid Infrastructureホームをクローニングするための準備」を参照)。
8.3.3 手順3: 各宛先ノードでのclone.plスクリプトの実行
新しいOracle Clusterware環境を設定する場合、clone.pl
スクリプトではいくつかの設定値の指定が必要となります。
変数の値を指定するには、clone.pl
スクリプトの実行時にコマンドライン上で入力値を指定するか、またはファイルを作成してそこでクローン変数に値を割り当てるかのいずれかの方法があります。次の説明では、これらの方法を示します。
注意:
clone.pl
を実行した後、スクリプトによりorainstRoot.sh
およびroot.sh
を実行するプロンプトが表示されます。orainstRoot.sh
のみを実行し、「手順4: 構成ウィザードの起動」に進んでください。この構成ウィザードにより、root.sh
を実行するプロンプトが表示されます。
関連トピック
8.3.3.1 コマンドライン上でのclone.plスクリプトの入力値の指定
Oracle Grid Infrastructureホームが共有ホームでない場合は、各宛先ノードのGrid_home
/clone/bin
ディレクトリに移動して、clone.pl
スクリプトを実行します(これによって、Oracle Clusterwareの主要なクローニング・タスクが実行されます)。
スクリプトを実行するには、複数のパラメータへの入力が必要です。次の表に、clone.pl
スクリプト・パラメータを示します。
表8-1 clone.plスクリプトのパラメータ
パラメータ | 説明 |
---|---|
ORACLE_BASE=ORACLE_BASE |
クローニング元のOracleベースの完全パス。無効なパスを指定すると、スクリプトは終了します。このパラメータは必須です。 |
ORACLE_HOME=GRID_HOME |
クローニングするためのOracle Grid Infrastructureホームへの完全なパスです。無効なパスを指定すると、スクリプトは終了します。このパラメータは必須です。 |
[ORACLE_HOME_NAME= Oracle_home_name | -defaultHomeName] |
クローニング元のホームのOracleホーム名。必要に応じて、 |
[ORACLE_HOME_USER= Oracle_home_user_name] |
WindowsでのOracleホーム・ユーザー。Oracle Databaseソフトウェアのクローニングを実行する際にこのパラメータを渡すことをお薦めします。このパラメータは省略可能です。 |
INVENTORY_LOCATION= location_of_inventory |
Oracleインベントリの場所。 |
OSDBA_GROUP= OSDBA_privileged_group |
OSDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。デフォルト値を必要としない場合、このパラメータはオプションです。 |
"CLUSTER_ NODES={node_ name,node_ name,...}" |
この新しいクラスタに含まれるノードの短縮名のカンマ区切りリスト(空白なし)。 データベース・ホームをクローニングする場合にのみ次のことが適用されます。
注意: このパラメータは、Oracle Grid Infrastructure 12c リリース2 (12.2)以上では使用できません。 |
"LOCAL_NODE=node_name" |
|
CRS=TRUE |
このパラメータは、Oracle Universal Installerインベントリでこのプロパティを設定するために必要です。 |
OSASM_GROUP= OSASM_privileged_group |
OSASM権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。デフォルト値を必要としない場合、このパラメータはオプションです。
|
OSOPER_GROUP= OSOPER_privileged_group |
OSOPER権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。デフォルト値を必要としない場合、このパラメータはオプションです。 |
-debug |
デバッグ・モードで |
-help |
このオプションは、 |
たとえば、LinuxおよびUNIXシステムで次のように指定します。
$ perl clone.pl -silent ORACLE_BASE=/u01/app/oracle ORACLE_HOME=
/u01/app/12.2/grid ORACLE_HOME_NAME=OraHome1Grid
INVENTORY_LOCATION=/u01/app/oraInventory LOCAL_NODE=node1 CRS=TRUE
Windowsシステムの場合:
C:\>perl clone.pl ORACLE_BASE=D:\u01\app\grid ORACLE_HOME=D:\u01\app\grid\12.2
ORACLE_HOME_NAME=OraHome1Grid ORACLE_HOME_USER=Oracle_home_user_name
"LOCAL_NODE=node1" CRS=TRUE
Windowsプラットフォームの場合は、他のすべてのノードで、追加の引数(PERFORM_PARTITION_TASKS=FALSE
)を指定して同じコマンドを実行します。
次に例を示します。
C:\>perl clone.pl ORACLE_BASE=D:\u01\app\grid ORACLE_HOME=D:\u01\app\grid\12.2
ORACLE_HOME_NAME=OraHome1Grid ORACLE_HOME_USER=Oracle_home_user_name
"LOCAL_NODE=node1" CRS=TRUE PERFORM_PARTITION_TASKS=FALSE
前述の例に含まれている様々なパラメータの詳細は、前述の表を参照してください。
Oracle Grid Infrastructureホームが共有ホームの場合は、この手順のコマンド例に-cfs
オプションを追加し、クラスタ・ファイル・システムの完全なパス位置を指定します。
8.3.3.2 ファイル内でのclone.plスクリプトの入力値の指定
clone.pl
スクリプトは取得したパラメータの値に依存するため、括弧、一重引用符および二重引用符は正確に使用する必要があります。エラーの発生を回避するために、start.sh
スクリプトに類似したファイルを作成(例8-1を参照)して、そこでclone.pl
スクリプトに対する環境変数およびクローニング・パラメータを指定できます。
例8-1は、clone.pl
スクリプトをコールするstart.sh
というサンプル・スクリプトからの抜粋を示しており、例はcrscluster
というクラスタ用に構成されています。Oracle Clusterwareをインストールしたオペレーティング・システム・ユーザーとしてスクリプトを実行します。
注意:
Solarisシステムでは、hostname
の後の-s
はありません。
start.sh
スクリプトでは、表8-2に示すように、いくつかの環境変数およびクローニング・パラメータが設定されます。表8-2に、環境変数E01
、E02
、E03
、E04
(例8-1では太字でしめされている)、およびC01
およびC02
を示します。
表8-2 clone.plスクリプトに渡される環境変数
記号 | 変数 | 説明 |
---|---|---|
|
|
Oracleベース・ディレクトリの場所。 |
|
|
Oracle Grid Infrastructureホームの場所。このディレクトリの場所は存在している必要があり、Oracleオペレーティング・システム・グループのOINSTALLによって所有されている必要があります。 |
|
|
Oracle Grid Infrastructureホームの名前。Oracleインベントリに格納されています。 |
|
|
Oracleインベントリの場所。このディレクトリの場所は存在している必要があり、最初にOracleオペレーティング・システム・グループのOINSTALLによって所有されている必要があります。 |
|
|
クラスタ内のノードの短縮名のカンマ区切りリスト。 |
|
|
ローカル・ノードの短縮名。 |
例8-1 Oracle Clusterwareをクローニングするstart.shスクリプトの抜粋
#!/bin/sh ORACLE_BASE=/u01/app/oracle GRID_HOME=/u01/app/12.1/grid THIS_NODE=`hostname -s` E01=ORACLE_BASE=${ORACLE_BASE} E02=ORACLE_HOME=${GRID_HOME} E03=ORACLE_HOME_NAME=OraGridHome1 E04=INVENTORY_LOCATION=${ORACLE_BASE}/../oraInventory #C00="-debug"
C01="CLUSTER_NODES={node1,node2}" C02="LOCAL_NODE=$THIS_NODE" perl ${GRID_HOME}/clone/bin/clone.pl -silent $E01 $E02 $E03 $E04 $C01 $C02 CRS=TRUE
8.3.4 手順4: 構成ウィザードの起動
構成ウィザードでは、crsconfig_params
ファイルを簡単に準備することができます。また、(rootcrs.pl
スクリプトをコールする)root.sh
スクリプトを実行するように求められ、Oracleバイナリの再リンクとクラスタ検証が実行されます。
次のように、構成ウィザードを起動します。
Linux/UNIXの場合:
$ Oracle_home/crs/config/config.sh
Windowsの場合:
C:\>Oracle_home\crs\config\config.bat
オプションで、次のようにレスポンス・ファイルを指定して、構成ウィザードを暗黙的に実行できます。
$ Oracle_home/crs/config/config.sh -silent -responseFile file_name
Windowsの場合:
C:\>Oracle_home\crs\config\config.bat -silent -responseFile file_name
関連項目:
レスポンス・ファイルの準備の詳細は、お使いのプラットフォームの『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』を参照してください
8.4 クローニングを使用したクラスタへのノードの追加
また、クローニングを使用してクラスタにノードを追加することもできます。
図8-2では、クローニング手順の最終結果を示しており、ここでは、ノード1上のOracle Grid Infrastructureホームが同じクラスタ上のノード2にクローニングされ、クラスタ2が2ノード・クラスタとして作成されています。クラスタへ新しく追加されたノードは、同じOCRおよび投票ファイルを共有します。
図8-2を例とし、次の手順では、クローニングを使用してクラスタへノードを追加する方法を説明します。この手順では、最初にノード1を作成するために使用したイメージ(クローン)をノード2にコピーします。
「手順1: 新規クラスタ・ノードの準備」で説明されているように、ノード2を準備します。
8.5 クローニング時に生成されたログ・ファイルの検索および表示
クローニング・スクリプトは、それぞれがログ・ファイルを生成できる複数のツールを実行します。clone.pl
スクリプトの実行が終了した後、これらのログ・ファイルを参照して、クローニング手順のステータスに関する詳細情報を入手することができます。表8-3では、クローニング時に生成される、診断に重要なログ・ファイルを示します。
注意:
表8-3のCentral_inventory
は、Oracle Inventoryディレクトリを表します。
表8-3 クローニングのログ・ファイルおよび説明
ログ・ファイルの名前および場所 | 説明 |
---|---|
Central_inventory/logs/cloneActions/timestamp.log |
クローニングのOUI部分で行われたアクションの詳細ログが含まれます。 |
Central_inventory/logs/oraInstall/timestamp.err |
OUIの実行中に発生したエラーに関する情報が含まれます。 |
Central_inventory/logs/oraInstall/timestamp.out |
その他の情報が含まれます。 |
表8-4は、様々なプラットフォーム用のOracle Inventoryディレクトリの場所を示しています。
表8-4 Oracleインベントリ・ディレクトリの位置の確認
システムのタイプ | Oracleインベントリ・ディレクトリの位置 |
---|---|
LinuxおよびIBM AIXを除くすべてのUNIXコンピュータ |
|
IBM AIXおよびLinux |
|
Windows |
|