この章では、LinuxおよびUNIXシステムで、Oracle自動ストレージ管理(ASM)およびOracle Real Application Clusters(Oracle RAC)データベース・ホームを新規クラスタのノードにクローニングする方法について説明します。 Oracle RACを既存クラスタのノードに拡張する場合は、第7章を参照してください。
この章では、スクリプトの使用によって実装する非対話式のクローニング技術について説明します。 この章で説明するクローニング技術は、複数の同時クラスタ・インストールを実行する場合に最適です。スクリプトの作成は手動プロセスであり、間違いが発生する可能性があります。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 Databaseインストールを別の位置にコピーし、コピーしたインストールを新しい環境で動作するように更新するプロセスのことです。ソースOracleホームで適用された1回限りのパッチによって行われた変更は、クローニング操作後も存在します。ソース・パスと宛先パス(クローニング対象のホスト)は同じである必要はありません。
クローニングによって、ASMとOracle RACホームを一度に準備し、同時に多数のホストにデプロイできます。インストールを非対話式プロセスとして、サイレントに実行できます。Graphical User Interface(GUI)コンソールを使用する必要はありません。必要に応じて、クローニングをセキュア・シェル(SSH)ターミナル・セッションから実行できます。
クローニングでは、すべてのパッチを1つの手順で適用して新規インストール(本番、テストまたは開発インストールのコピー)を作成できます。最適なインストールを実行し、すべてのパッチセットとパッチをソース・システムに適用すると、クローニングによってこれらの個別の手順がすべて1つの手順として実行されます。この方法は、インストール、構成およびクラスタの各ノードでのインストールへのパッチ適用の手順を個別に実行するインストール・プロセスとは大幅に異なっています。
クローニングによるASMおよびOracle RACのインストールは、非常に迅速なプロセスです。たとえば、3つ以上のノードの新規クラスタにOracle RACホームをクローニングする場合、Oracleベース・ソフトウェアのインストールに数分と各ノードに対して数分ずつ必要となります(root.sh
スクリプトの実行に要する時間とほぼ同じ)。
クローン・インストールは、ソース・インストールと同様に動作します。たとえば、クローンOracleホームは、Oracle Universal Installerを使用して削除したり、OPatchを使用してパッチを適用することができます。また、クローンOracleホームを別のクローニング操作のソースとして使用することもできます。コマンドライン・クローニング・スクリプトを使用して、テスト、開発または本番インストールのクローン・コピーを作成できます。デフォルトのクローニング手順は、ほとんどの使用例に適しています。ただし、カスタム・ポート割当ての指定やカスタム設定の保存など、クローニングの様々な側面をカスタマイズすることもできます。
クローニング・プロセスでは、ソースOracleホームから宛先Oracleホームにすべてのファイルがコピーされます。このため、ソースOracleホームのディレクトリ構造外にあるソース・インスタンスによって使用されるすべてのファイルは、宛先位置にコピーされません。
ソースと宛先のバイナリのサイズは異なっている可能性があります。これは、これらのバイナリがクローニング操作の一部として再リンクされており、これら2つの位置のオペレーティング・システムのパッチ・レベルが異なっていることがあるためです。ソースからコピーされるいくつかのファイル、特にインスタンス化されているファイルは、クローニング操作の一部としてバックアップされるため、クローン・ホームのファイルの数は増加します。
準備フェーズでは、Oracle Databaseホームのコピーを作成し、次にそのコピーを使用して1つ以上のノードでクローニング手順を実行し、Oracle Clusterwareをインストールします。
使用しているプラットフォーム固有のOracle Real Application Clustersのインストレーション・ガイドの詳細な説明に従って、Oracle Databaseソフトウェアおよびパッチをインストールします。
Oracle Database 11gをインストールし、ソフトウェアのみインストール・オプションを選択します。
リリースに必要なレベル(11.1.0.nなど)のパッチを適用します。
必要に応じて、1回限りのパッチを適用します。
Oracle Databaseホームのコピーを作成します。このファイルを使用して、Oracle Databaseホームをクラスタ内の各ノードにコピーします(「新規クラスタのノードへのASMおよびOracle RACのクローニング」を参照)。
バックアップ(tar)ファイルを作成する場合は、ファイルの名前にリリース番号を含めることをお薦めします。次に例を示します。
# cd /opt/oracle/product/11g/db_1# tar –zcvf /pathname/db11101.tgz .
クローニングを使用して新規Oracle RACホームを作成する前に、新規ノードにOracle Clusterwareをインストールし、起動する必要があります。つまり、OracleクラスタウェアおよびOracle Databaseソフトウェア・コンポーネントを元のノードにインストールした順序と同じ順序で、ソフトウェアを新規ノードに拡張します。
「Oracle ASMおよびOracle Real Application Clustersのクローニングの準備」の項で説明した前提条件のタスクを完了した後、新規ASMおよびOracle RACホームをデプロイできます。この項のデプロイ手順は、2つのOracle Databaseホームを各ノードにデプロイすることを推奨するベスト・プラクティスに従います。1つのホームはASMインスタンス用、もう1つのホームはOracle RACデータベース・インスタンス用です。
次の項では、次の各手順を実行する方法について説明します。
これらの項で説明する複数手順のプロセスのスクリプトを作成し、サイレント・インストールとして自動的に実行できます。
ASMホームをデプロイしてから、新規Oracle RACデータベース・ホームをデプロイする必要があります。この項では、次の各手順を実行する方法について説明します。
関連項目: ASMの詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。 |
次のようなOracle Databaseのインストール前の手順を実行します。
カーネル・パラメータを指定します。
Hostsファイルでは、すべての名前に非ドメイン修飾の短縮名を使用します。
ping
コマンドを使用して、インターコネクト・インタフェースに到達可能であるかどうかをテストします。
インストール前のチェックリストについては、ご使用のプラットフォーム固有のOracle RACのインストレーション・ガイドを参照してください。
注意: インストールの従来の方法とは異なり、クローニング・プロセスでは、準備フェーズ中にユーザー入力が検証されません(Oracle Universal Installerを使用する従来のインストールの方法では、インタビュー・フェーズ中に様々なチェックが行われます)。このため、ハードウェアの設定中または準備フェーズで間違いがあった場合、クローン・インストールは失敗します。 |
ASMソフトウェアをデプロイするには、次の手順を実行する必要があります。
ASMホームを元のホーム・ディレクトリ内のすべてのノード、または異なるディレクトリ・パスにリストアします。次に例を示します。
[root@node1 root]# mkdir -p /opt/oracle/product/11g/asm
[root@node1 root]# cd /opt/oracle/product/11g/asm
[root@node1 asm]# tar –zxvf /pathname/asm11101.tgz
ASMホームの位置は、tarファイルの作成に使用した元のソース・ホーム・ディレクトリと同じディレクトリ・パスにある必要はありません。
すべてのファイルの所有権をoracle
およびoinstall
グループに変更します。次に例を示します。
[root@node1 asm]# chown –R oracle:oinstall /opt/oracle/product/11g/asm
主なASMクローニング・タスクを実行するclone.pl
スクリプトを実行するには、次の操作を行う必要があります。
表5-1および表5-2に示すように、start.sh
スクリプトに環境変数とクローニング・パラメータを指定します。clone.pl
スクリプトでは、渡されるパラメータが厳密に識別されるため、括弧、一重引用符および二重引用符を正確に使用する必要があります。
oracle
のオペレーティング・システム・ユーザーとしてスクリプトを起動します。
例5-1に、LinuxおよびUNIXでclone.pl
スクリプトをコールするstart.sh
スクリプトからの抜粋を示します。
例5-1 ASMをクローニングするstart.shスクリプトからの抜粋(LinuxおよびUNIX)
ORACLE_BASE=/opt/oracle ASM_home=/opt/oracle/product/11g/asm cd ASM_home/clone THISNODE=`hostname -s` E01=ORACLE_HOME=${ASM_home} E02=ORACLE_HOME_NAME=OraDBASM E03=ORACLE_BASE=/opt/oracle C01="-O'CLUSTER_NODES={node1, node2}'" C02="'-OLOCAL_NODE=$THISNODE'" perl ASM_home/clone/bin/clone.pl $E01 $E02 $E03 $C01 $C02
例5-2に、ユーザーが作成する必要があり、Windowsでclone.pl
スクリプトをコールするstart.bat
スクリプトからの抜粋を示します。
例5-2 ASMをクローニングするstart.batスクリプトからの抜粋(Windows)
set ASM_home=Oracle_home cd %ASM_home%\clone\bin set THISNODE=%hostname% set E01=ORACLE_HOME=%ASM_home% set E02=ORACLE_HOME_NAME=OraDBASM 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
オペレーティング・システム・ユーザーとしてASM_home
/root.sh
を実行します。
各ノードでスクリプトが完了していることを確認し、次の手順に進みます。
Oracle ASMホームのインストールの最後に、Oracle Universal Installerでは各ノードにリスナーを作成し、ノードをOracle ClusterwareとともにCRSリソースとして登録します。
次の例では、NetCAをサイレント・モードで実行してリスナーを作成する方法を示します。 レスポンス・ファイルに、変数のかわりにnode1
、node2
のノード名を指定します。NetCAでは、レスポンス・ファイルを使用して、各ノードでlistener.ora
エントリの作成、リスナーの起動およびOracle Cluster Registry(OCR)へのリスナーの追加を行います。
[oracle@node1 oracle]$ cd $ORACLE_HOME/bin/ [oracle@node1 bin]$ ./netca /silent \ /responseFile $ORACLE_HOME/network/install/netca_typ.rsp \ /inscomp server \ /nodeinfo node1,node2
この手順では、DBCAをサイレント・モードで実行し、レスポンス・ファイルに入力してASMインスタンスおよび最初のASMディスク・グループを作成する方法を示します。
次の例では、各ノードでASMインスタンスを作成し、それらのインスタンスをOracle Cluster Registryに登録し、+DATA
と呼ばれるASMディスク・グループを作成します。ASMディスク・グループは、sde1
、sdf1
、sdg1
およびsdh1
の4つのディスクで構成されます。また、この例では、password
にSYSパスワードを設定します。password
はパスワードです。
[oracle@node1 oracle]$ export ORACLE_HOME=/opt/oracle/product/11g/asm
[oracle@node1 oracle]$ cd $ORACLE_HOME/bin/
[oracle@node1 bin]$ ./dbca -silent -configureASM -gdbName NO -sid NO \
-emConfiguration NONE \
-diskList "/dev/sde1,/dev/sdf1,/dev/sdg1,/dev/sdh1" \
-diskString "/dev/sd[e-h]1" \
-diskGroupName "DATA" \
-datafileJarLocation $ORACLE_HOME/assistants/dbca/templates \
-nodeinfo node1,node2 \
-obfuscatedPasswords false \
-oratabLocation /etc/oratab \
-asmSysPassword password \
-redundancy EXTERNAL
関連項目: DBCAを使用したデータベースの作成と構成の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。 |
新規クラスタへのOracle RACデータベース・ホームのデプロイメントは複数手順のプロセスです。手順は、「ASMインスタンス・ホームのデプロイ」で説明したASMホームの作成で実行した手順とほぼ同じです。相違は、Oracle RACデータベースをデプロイする場合、データベース・ホーム内にリスナーを作成せず、異なるDBCAパラメータを指定してOracle RACデータベース・ホームをデプロイする点です。
この項では、次の各手順を実行する方法について説明します。
次のようなOracle Databaseのインストール前の手順を実行します。
カーネル・パラメータを指定します。
Hostsファイルでは、すべての名前に非ドメイン修飾の短縮名を使用します。
パブリック名およびインターコネクト名がping可能であることを検証します。
Oracle Clusterwareがアクティブであることを確認します。
ASMがアクティブであり、少なくとも1つのASMディスク・グループが構成されていることを確認します。
インストール前のチェックリストについては、ご使用のプラットフォーム固有のOracle RACのインストレーション・ガイドを参照してください。
Oracle RACデータベース・ソフトウェアをデプロイするには、次の手順を実行する必要があります。
Oracle Databaseホームをすべてのノードにリストアします。次に例を示します。
[root@node1 root]# mkdir -p /opt/oracle/product/11g/db
[root@node1 root]# cd /opt/oracle/product/11g/db
[root@node1 db]# tar –zxvf /pathname/db11101.tgz
ホームの位置とpathname
の指定では、ホームの位置を、tarの作成に使用したソース・ホームと同じディレクトリ・パスにすることも、異なるディレクトリ・パスにすることもできます。
すべてのファイルの所有権をoracle
およびoinstall
グループに変更します。次に例を示します。
[root@node1 db]# chown –R oracle:oinstall /opt/oracle/product/11g/db
主なOracle RACクローニング・タスクを実行するclone.pl
スクリプトを実行するには、次の操作を行う必要があります。
表5-3および表5-4に示すように、start.shスクリプトに環境変数とクローニング・パラメータを指定します。clone.pl
スクリプトでは、渡されるパラメータが厳密に識別されるため、括弧、一重引用符および二重引用符を正確に使用する必要があります。
oracle
のオペレーティング・システム・ユーザーとしてスクリプトを起動します。
例5-3に、clone.pl
スクリプトをコールするstart.sh
スクリプトからの抜粋を示します。
例5-3 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=${ORACLE_HOME} 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
例5-4に、ユーザーが作成する必要があり、clone.pl
スクリプトをコールするstart.bat
スクリプトからの抜粋を示します。
例5-4 Oracle RACデータベースをクローニングするstart.batスクリプトからの抜粋(Windows)
set ORACLE_home=Oracle_home 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
を実行します。
LD_LIBRARY_PATH
環境変数を設定してから、root.sh
スクリプトを実行する必要があります。次に例を示します。
[root@node1 root]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH [root@node1 root]# /opt/oracle/product/11g/db/root.sh -silent
各ノードでスクリプトを同時に実行できます。
[root@node2 root]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH [root@node2 root]# /opt/oracle/product/11g/db/root.sh -silent
各ノードでスクリプトが完了していることを確認し、次の手順に進みます。
この手順では、DBCAをサイレント・モードで実行し、レスポンス・ファイルに入力してOracle RACインスタンスを作成する方法を示します。
次の例では、各ノードでOracle RACインスタンスを作成し、OCRにインスタンスを登録し、DATA
と呼ばれる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 \ -nodeinfo node1,node2 -characterset WE8ISO8859P1 \ -obfuscatedPasswords false -sampleSchema true \ -oratabLocation /etc/oratab
関連項目: 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
クローニング操作時に加えて、クローニングの前に発生したエラーに関する情報が含まれます。
表5-5に、Oracleインベントリ・ディレクトリの位置を確認する方法を示します。