この章では、LinuxおよびUNIXシステムで、Oracle Real Application Clusters(Oracle RAC)データベース・ホームを新規クラスタのノードにクローニングする方法について説明します。Oracle RACを既存クラスタのノードに拡張するには、第9章「クローニングを使用した同じクラスタのノードへの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 Grid ControlのProvisioning Pack機能のフレームワークによって、新規ノードおよびクラスタのプロビジョニングを簡単に自動化できます。多数の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つの位置のオペレーティング・システムのパッチ・レベルが異なっていることがあるためです。また、いくつかのファイルがソースからコピーされることによって、特にインスタンス化されたファイルはクローン操作の一部としてバックアップされるため、クローン・ホームのファイルの数が増える場合があります。
準備フェーズでは、Oracleホームのコピーを作成し、次にそのコピーを使用して1つ以上のノードでクローニング手順を実行します。Oracle Clusterwareもインストールします。
『Oracle Real Application Clustersインストレーション・ガイド』に従って、Oracle RACソフトウェアおよびパッチをインストールします。
Oracle RACをインストールし、ソフトウェアのみインストール・オプションを選択します。
リリースに必要なレベル(11.2.0.nなど)のパッチを適用します。
必要に応じて、1回限りのパッチを適用します。
Oracle RACホームのコピーを作成します。このファイルを使用して、Oracle RACホームをクラスタ内の各ノードにコピーします(「クラスタのノードへのOracle RACのクローニングのデプロイ」を参照)。
バックアップ(tar)ファイルを作成する場合は、ファイルの名前にリリース番号を含めることをお薦めします。次に例を示します。
# cd /opt/oracle/product/11g/db_1
# tar –zcvf /pathname/db1120.tgz .
クローニングを使用してOracle RACホームを作成する前に、クローニングされたOracle RACホームをコピーするノードにOracle Clusterwareをインストールし、起動しておく必要があります。つまり、元のノードでOracle ClusterwareとOracle RACソフトウェア・コンポーネントをインストールしたときと同じ順序で、ソース・クラスタからターゲット・クラスタのノードにクローニングしたOracle RACホームを構成します。
関連項目: Oracle Clusterwareホームのクローニングによる新規クラスタの作成およびcrsctl start crsコマンドの発行によるOracle Clusterwareの起動については、『Oracle Clusterware管理およびデプロイメント・ガイド』 を参照してください。 |
「Oracle RACのクローニングの準備」の項で説明した前提条件のタスクを完了した後、クローニングしたOracleホームをデプロイできます。
Oracle RACデータベース・ホームのクラスタへのデプロイは、複数の手順によるプロセスです。
この項では、次の各手順を実行する方法について説明します。
次のようなOracle RACのインストール前の手順を実行します。
カーネル・パラメータを指定します。
Oracle Clusterwareがアクティブであることを確認します。
Oracle ASMがアクティブであり、少なくとも1つのOracle ASMディスク・グループが存在し、マウント済であることを確認します。
インストール前のチェックリストについては、ご使用のプラットフォーム固有のOracle RACのインストレーション・ガイドを参照してください。
Oracle RACソフトウェアをデプロイするには、次の手順を実行する必要があります。
Oracleホームのクローンをすべてのノードにコピーします。次に例を示します。
[root@node1 root]# mkdir -p /opt/oracle/product/11g/db
[root@node1 root]# cd /opt/oracle/product/11g/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/11g/db
Gridホームで前述のコマンドを実行すると、Oracleバイナリからsetuid
とsetgid
の情報が消去されます。
主なOracle RACクローニング・タスクを実行するclone.pl
スクリプトを実行するには、次の操作を行う必要があります。
表8-2
および表8-3に示すように、start.shスクリプトに環境変数とクローニング・パラメータを指定します。clone.pl
スクリプトでは、渡されるパラメータが厳密に識別されるため、括弧、一重引用符および二重引用符を正確に使用する必要があります。
oracle
またはOracle RACソフトウェアを所有するユーザーとしてスクリプトを実行します。
表8-1に、clone.pl
スクリプト・パラメータとその説明を示します。
表8-1 clone.plスクリプト・パラメータ
パラメータ | 説明 |
---|---|
ORACLE_HOME=Oracle_home
|
クローニングするOracleホームへの完全なパス。無効なパスを指定すると、スクリプトが終了します。このパラメータは必須です。 |
ORACLE_BASE=ORACLE_BASE
|
クローニングするOracleベースへの完全なパス。無効なパスを指定すると、スクリプトが終了します。このパラメータは必須です。 |
ORACLE_HOME_NAME=
Oracle_home_name |
-defaultHomeName
|
クローニングするホームのOracleホーム名。オプションで、 |
OSDBA_GROUP=group_name
|
OSDBA権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータはオプションです。 |
OSOPER_GROUP=group_name
|
OSOPER権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータはオプションです。 |
OSASM_GROUP=group_name
|
OSASM権限が付与されたグループとして使用するオペレーティング・システム・グループを指定します。このパラメータはオプションです。 |
-O |
|
-debug |
このオプションは、 |
-help |
このオプションは、 |
例8-1に、clone.pl
スクリプトをコールするstart.sh
スクリプトからの抜粋を示します。
例8-1 Oracle RACをクローニングするstart.shスクリプトからの抜粋(LinuxおよびUNIX)
ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/product/11g/db cd $ORACLE_HOME/clone THISNODE=’hostname -s’ E01=ORACLE_HOME=/opt/oracle/product/11g/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
例8-2に、ユーザーが作成する必要があり、clone.pl
スクリプトをコールするstart.bat
スクリプトからの抜粋を示します。
例8-2 Oracle RACをクローニングするstart.batスクリプトからの抜粋(Windows)
set ORACLE_home=C:\oracle\product\11g\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="-O'\"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/11g/db/root.sh -silent
各ノードでスクリプトを同時に実行できます。
[root@node2 root]# /opt/oracle/product/11g/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/11g/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
関連項目: DBCAを使用したデータベースの作成と構成の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。 |
クローニング・スクリプトは複数のツールを実行し、それぞれが独自にログ・ファイルを生成する可能性があります。clone.pl
スクリプトの実行が終了した後、ログ・ファイルを参照して、クローニング・プロセスに関する詳細情報を入手できます。
クローニング時に生成された次のログ・ファイルは、診断のための主要なログ・ファイルです。
Central_Inventory
/logs/cloneActions
timestamp
.log
クローニングのOracle Universal Installerの部分で発生したアクションの詳細なログが含まれます。
Central_Inventory
/logs/oraInstall
timestamp
.err
Oracle Universal Installerの実行時に発生したエラーに関する情報が含まれます。
Central_Inventory
/logs/oraInstall
timestamp
.out
Oracle Universal Installerによって生成されたその他のメッセージが含まれます。
$ORACLE_HOME/clone/logs/clone
timestamp
.log
クローニング前とクローニング操作中に発生したアクションの詳細なログが含まれます。
$ORACLE_HOME/clone/logs/error
timestamp
.log
クローニング前とクローニング操作中に発生したエラーに関する情報が含まれます。
表8-4に、Oracleインベントリ・ディレクトリの位置を確認する方法を示します。