9 新規クラスタのノードへのOracle RACのクローニング
この章では、LinuxおよびUNIXシステムで、Oracle Real Application Clusters(Oracle RAC)データベース・ホームを新規クラスタのノードにクローニングする方法について説明します。
この章では、スクリプトを使用して実装する非対話式のクローニング技術について説明します。この章で説明するクローニング技術は、複数の同時クラスタ・インストールを実行する場合に最適です。スクリプトの作成は手動プロセスであり、間違いが発生する可能性があります。1つのクラスタのみをインストールする場合は、Oracle Universal InstallerやOracle Enterprise ManagerのProvisioning Pack機能などの従来の自動化された対話式のインストール方法を使用してください。
注意:
クローニングは、Provisioning Packに含まれるOracle Enterprise Managerクローニングにかわるものではありません。Oracle Enterprise Managerクローニングの間、プロビジョニング・プロセスでは、Oracleホームに関する詳細(クローニングのデプロイ先の位置、Oracle Databaseホームの名前、クラスタ内のノードのリストなど)が対話式で確認されます。
Oracle Enterprise Manager Cloud ControlのProvisioning Pack機能のフレームワークによって、新規ノードおよびクラスタのプロビジョニングを簡単に自動化できます。多数のOracle RACクラスタを持つデータ・センターの場合、既存のクラスタへの新規クラスタおよび新規ノードのプロビジョニングを簡素化するクローニング手順を作成しておくと有効です。
この章の内容は次のとおりです。
9.1 Oracle RACのクローニングの概要
クローニングとは、既存のOracle RACインストールを別の位置にコピーし、コピーしたインストールを新しい環境で動作するように更新するプロセスのことです。ソースOracleホームで適用された1回限りのパッチによって行われた変更は、クローニング操作後も存在します。ソース・パスと宛先パス(クローニング対象のホスト)は同じである必要はありません。
-
クローニングによって、Oracleホームを一度準備してから、同時に多数のホストにデプロイできます。非対話形式のプロセスとして、インストールをサイレントに完了できます。グラフィカル・ユーザー・インタフェース(GUI)のコンソールを使用する必要がなく、必要に応じて、セキュア・シェル(SSH)・ターミナル・セッションからクローニングを実行できます。
-
クローニングにより、すべてのパッチが適用されたインストール(本番、テスト、または開発用インストールのコピー)を1回の手順で作成できます。ベースとなるインストールを実行し、すべてのパッチ・セットとパッチをソース・システムに適用した後、これらの個々の手順のすべてを1つの手順としてクローニングで実行します。これにより、クラスタの各ノードですべてのインストール・プロセスを通して行い、インストール、構成およびパッチ適用を個別の手順で実行するのとは、対照的な効果が得られます。
-
クローニングによるOracle RACのインストールは、非常に迅速なプロセスです。たとえば、3つ以上のノードの新規クラスタにOracleホームをクローニングする場合、Oracleベース・ソフトウェアのインストールに数分と各ノードに対して数分ずつ必要となります(
root.sh
スクリプトの実行に要する時間とほぼ同じ)。
クローン・インストールは、ソース・インストールと同様に動作します。たとえば、クローンOracleホームは、Oracle Universal Installerを使用して削除したり、OPatchを使用してパッチを適用することができます。また、クローンOracleホームを別のクローニング操作のソースとして使用することもできます。コマンドラインのクローニング・スクリプトを使用して、テスト用、開発用または本番用のインストールをクローニングしたコピーを作成できます。デフォルトのクローニング手順は、ほとんどの使用例に適しています。ただし、カスタム・ポート割当ての指定やカスタム設定の保存など、クローニングの様々な側面をカスタマイズすることもできます。
クローニング・プロセスでは、ソースOracleホームから宛先Oracleホームにすべてのファイルがコピーされます。このため、ソースOracleホームのディレクトリ構造外にあるソース・インスタンスによって使用されるすべてのファイルは、宛先位置にコピーされません。
ソースと宛先でバイナリのサイズが異なる場合がありますが、これは、これらがクローン操作の一部として再リンクされており、これら2つの位置のオペレーティング・システムのパッチ・レベルが異なっていることがあるためです。また、いくつかのファイルがソースからコピーされることによって、特にインスタンス化されたファイルはクローン操作の一部としてバックアップされるため、クローン・ホームのファイルの数が増える場合があります。
9.2 Oracle RACのクローニングの準備
この概要を使用して、Oracle RACのクローニングに使用する手順について理解してください。
準備フェーズでは、Oracleホームのコピーを作成し、次にそのコピーを使用して1つ以上のノードでクローニング手順を実行します。Oracle Clusterwareもインストールします。
Oracle RACのインストール
ご使用のプラットフォーム用の『Oracle Real Application Clustersインストレーション・ガイド』の詳細な手順に従って、Oracle RACソフトウェアおよびパッチをインストールします。
-
Oracle RACをインストールし、ソフトウェアのみインストール・オプションを選択します。
-
リリースに必要なレベル(12.1.0.nなど)のパッチを適用します。
-
必要に応じて、1回限りのパッチを適用します。
ソース・ホームのバックアップの作成
Oracle RACホームのコピーを作成します。このファイルを使用して、クラスタ内の各ノードにOracle RACホームをコピーします。
バックアップ(tar)ファイルを作成する場合は、ファイルの名前にリリース番号を含めることをお薦めします。次に例を示します。
# cd /opt/oracle/product/12c/db_1
# tar –zcvf /pathname/db1120.tgz .
Oracle Clusterwareのインストールおよび起動
クローニングを使用してOracle RACホームを作成する前に、クローニングされたOracle RACホームをコピーするノードにOracle Clusterwareをインストールし、起動しておく必要があります。つまり、元のノードでOracle ClusterwareとOracle RACソフトウェア・コンポーネントをインストールしたときと同じ順序で、ソース・クラスタからターゲット・クラスタのノードにクローニングしたOracle RACホームを構成します。
9.3 クラスタのノードへのOracle RACのクローニングのデプロイ
「Oracle RACのクローニングの準備」の項で説明した前提条件のタスクを完了した後、クローニングしたOracleホームをデプロイできます。
次のように、Oracle RACデータベース・ホームをクラスタにデプロイします。
-
ご使用のプラットフォームに固有のOracle RACインストール・ガイドの説明に従い、次のようなOracle RACのインストール前のタスクを実行して新しいクラスタ・ノードを準備します。
-
カーネル・パラメータを指定します。
-
Oracle Clusterwareがアクティブであることを確認します。
-
Oracle ASMがアクティブであり、少なくとも1つのOracle ASMディスク・グループが存在し、マウント済であることを確認します。
-
-
次のように、Oracle RACデータベース・ソフトウェアをデプロイします。
-
Oracleホームのクローンをすべてのノードにコピーします。次に例を示します。
[root@node1 root]# mkdir -p /opt/oracle/product/12c/db [root@node1 root]# cd /opt/oracle/product/12c/db [root@node1 db]# tar –zxvf /path_name/db1120.tgz
ホームの位置と
path_name
の指定では、ホームの位置を、tarの作成に使用したソース・ホームと同じディレクトリ・パスにすることも、異なるディレクトリ・パスにすることもできます。 -
oracle
ユーザーまたはoinstall
グループ(あるいはその両方)が、ソース・ノードと宛先ノード間で異なる場合は、次のように、Oracle Inventoryファイルの所有権を変更します。[root@node1]# chown -R oracle:oinstall /opt/oracle/product/12c/db
Oracle RACホームで前述のコマンドを実行すると、Oracleバイナリから
setuid
とsetgid
の情報が消去されます。
-
-
次のように、主なOracle RACクローニング・タスクを実行する
clone.pl
スクリプトを各ノードで実行します。-
表9-2と表9-3に示すように、
start.sh
スクリプトに環境変数とクローニング・パラメータを指定します。clone.pl
スクリプトでは、渡されるパラメータが厳密に識別されるため、括弧、一重引用符および二重引用符を正確に使用する必要があります。 -
oracle
またはOracle RACソフトウェアを所有するユーザーとしてスクリプトを実行します。
次の表に、
clone.pl
スクリプト・パラメータとその説明を示します。表9-1 clone.plスクリプト・パラメータ
パラメータ 説明 ORACLE_HOME=Oracle_home
クローニングするOracleホームへの完全なパス。無効なパスを指定すると、スクリプトは終了します。このパラメータは必須です。
ORACLE_BASE=ORACLE_BASE
クローニングするOracleベースへの完全なパス。無効なパスを指定すると、スクリプトは終了します。このパラメータは必須です。
ORACLE_HOME_NAME= Oracle_home_name | -defaultHomeName
クローニングするホームのOracleホーム名。必要に応じて、
-defaultHomeName
フラグを指定できます。このパラメータは省略可能です。ORACLE_HOME_USER=Oracle_home_user
Windowsサービス用のOracleホーム・ユーザー。このパラメータはWindowsにのみ適用でき、オプションです。
OSDBA_GROUP=group_name
OSDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
OSOPER_GROUP=group_name
OSOPER権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
OSASM_GROUP=group_name
OSASM権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
OSBACKUPDBA_GROUP=group_name
OSBACKUPDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
OSDGDBA_GROUP=group_name
OSDGDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
OSKMDBA_GROUP=group_name
OSKMDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータは省略可能です。
-debug
このオプションは、
clone.pl
スクリプトをデバッグ・モードで実行する場合に指定します。-help
このオプションは、
clone.pl
スクリプトのヘルプを表示する場合に指定します。次の例に、
clone.pl
スクリプトをコールするstart.sh
スクリプトからの抜粋を示します。ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/product/12c/db cd $ORACLE_HOME/clone THISNODE='host_name' E01=ORACLE_HOME=/opt/oracle/product/12c/db E02=ORACLE_HOME_NAME=OraDBRAC E03=ORACLE_BASE=/opt/oracle C01="-O CLUSTER_NODES={node1,node2}" C02="-O LOCAL_NODE=$THISNODE" perl $ORACLE_HOME/clone/bin/clone.pl $E01 $E02 $E03 $C01 $C02
次の表に、前の例に太字で示されている環境変数E01、E02およびE03とその説明を示します。
表9-2 clone.plスクリプトに渡される環境変数
記号 変数 説明 E01
ORACLE_HOME
Oracle RACデータベース・ホームの位置。このディレクトリ位置が存在し、Oracleオペレーティング・システム・グループ
oinstall
によって所有されている必要があります。E02
ORACLE_HOME_NAME
Oracle RACデータベースのOracleホームの名前。Oracleインベントリに格納されています。
E03
ORACLE_BASE
Oracleベース・ディレクトリの位置。
次の表に、前の例に太字で示されているクローニング・パラメータC01およびC02とその説明を示します。
表9-3 clone.plスクリプトに渡されるクローニング・パラメータ。
変数 名前 パラメータ 説明 C01
クラスタ・ノード
CLUSTER_NODES
クラスタ内のノードのリストを表示します。
C02
ローカル・ノード
LOCAL_NODE
ローカル・ノードの名前。
次の例に、ユーザーが作成する必要があり、
clone.pl
スクリプトをコールするstart.bat
スクリプトからの抜粋を示します。set ORACLE_home=C:\oracle\product\12c\db1 cd %ORACLE_home%\clone\bin set THISNODE=%hostname% set E01=ORACLE_HOME=%ORACLE_home% set E02=ORACLE_HOME_NAME=OraDBRAC set E03=ORACLE_BASE=Oracle_Base set C01="CLUSTER_NODES={node1,node2}" set C02="-O LOCAL_NODE=%THISNODE%" perl clone.pl %E01% %E02% %E03% %C01% %C02%
-
-
注意:
この手順は、LinuxおよびUNIXのインストールに対してのみ実行します。
ノードで
clone.pl
プロシージャが完了した後、すぐにroot
オペレーティング・システム・ユーザーとして$ORACLE_HOME/root.sh
を実行します。[root@node1 root]# /opt/oracle/product/12c/db/root.sh -silent
各ノードでスクリプトを同時に実行できます。
[root@node2 root]# /opt/oracle/product/12c/db/root.sh -silent
各ノードでスクリプトが完了していることを確認し、次の手順に進みます。
-
注意:
すべてのノードのOracle RACインスタンスを作成する場合、クラスタの1つのノードでDBCAを実行するだけで済みます。
この手順では、DBCAをサイレント・モードで実行し、レスポンス・ファイルに入力してOracle RACインスタンスを作成する方法を示します。
次の例では、ERIという名前のOracle RACデータベースを各ノードで作成し、各ノードにデータベース・インスタンスを作成し、そのインスタンスをOCRに登録し、
DATA
と呼ばれるOracle ASMディスク・グループにデータベース・ファイルを作成し、サンプル・スキーマを作成します。また、SYS
、SYSTEM
、SYSMAN
およびDBSNMP
パスワードをpassword
(各アカウントのパスワード)に設定します。[oracle@node1 oracle]$ export ORACLE_HOME=/opt/oracle/product/12c/db [oracle@node1 oracle]$ cd $ORACLE_HOME/bin/ [oracle@node1 bin]$./dbca -silent -createDatabase -templateName General_Purpose.dbc \ -gdbName ERI -sid ERI \ -sysPassword password -systemPassword password \ -sysmanPassword password -dbsnmpPassword password \ -emConfiguration LOCAL \ -storageType ASM -diskGroupName DATA \ -datafileJarLocation $ORACLE_HOME/assistants/dbca/templates \ -nodelist node1,node2 -characterset WE8ISO8859P1 \ -obfuscatedPasswords false -sampleSchema true
9.4 クローニング時に生成されたログ・ファイルの検索および表示
クローニング・スクリプトは複数のツールを実行し、それぞれが独自にログ・ファイルを生成する可能性があります。
clone.pl
スクリプトの実行が終了した後、ログ・ファイルを参照して、クローニング・プロセスに関する詳細情報を入手できます。
クローニング時に生成された次のログ・ファイルは、診断のための主要なログ・ファイルです。
-
Central_Inventory/logs/cloneActionstimestamp.log
クローニングのOracle Universal Installerの部分で発生したアクションの詳細なログが含まれます。
-
Central_Inventory/logs/oraInstalltimestamp.err
Oracle Universal Installerの実行時に発生したエラーに関する情報が含まれます。
-
Central_Inventory/logs/oraInstalltimestamp.out
Oracle Universal Installerによって生成されたその他のメッセージが含まれます。
-
$ORACLE_HOME/clone/logs/clonetimestamp.log
クローニング前とクローニング操作中に発生したアクションの詳細なログが含まれます。
-
$ORACLE_HOME/clone/logs/errortimestamp.log
クローニング前とクローニング操作中に発生したエラーに関する情報が含まれます。
表9-4に、Oracleインベントリ・ディレクトリの位置を確認する方法を示します。
表9-4 Oracleインベントリ・ディレクトリの位置の確認
システムのタイプ | Oracleインベントリ・ディレクトリの位置 |
---|---|
LinuxおよびIBM AIXを除くすべてのUNIXコンピュータ |
|
IBM AIXおよびLinux |
|
Windows |
|