Oracle Database 2日でReal Application Clustersガイド 11g リリース1(11.1) E05737-03 |
|
オラクル社では、オラクル社のソフトウェアについてパッチと呼ばれる製品フィックスを発行しています。インストール済のOracleソフトウェアにパッチを適用すると、少数のファイルが置き換えられて特定の不具合が修正されます。OPatchは、Oracleソフトウェアへのパッチ適用を迅速化するオラクル社提供のユーティリティです。
パッチの集まりをパッチ・セットと呼びます。パッチ・セットを適用すると、数多くの様々なファイルおよびユーティリティが変更されます。その結果、Oracle Database 11.1.0.1.0からOracle Database 11.1.0.2.0のように、Oracleソフトウェアのバージョンが変わります。パッチ・セットを適用するには、Oracle Universal Installer(OUI)を使用します。
この章では、Enterprise ManagerおよびOPatchユーティリティを使用して、Oracle Real Application Clusters(Oracle RAC)環境でOracleソフトウェアの管理およびパッチの適用を行う方法について説明します。
この章の内容は次のとおりです。
Oracle Enterprise Manager Database Controlを使用すると、OracleMetaLink Webサイトで最新のパッチ・リリースを検索してOracleホームにダウンロードできます。Oracle Enterprise Managerパッチ・インタフェースの構成には、次の2つの手順があります。
Oracle Enterprise Managerを使用してOracleMetaLinkからパッチをダウンロードするには、Oracle Enterprise Manager Database Control(Database Control)にログインでの資格証明を付与し、Database ControlがOracleMetaLinkに自動的にログインしてパッチ・リリースを検索できるようにします。この資格証明を設定しないと、Database Controlでパッチ・ウィザードを実行できません。
Oracle MetaLink資格証明を設定する方法については、『Oracle Database 2日でデータベース管理者』を参照してください。
OracleMetaLinkの資格証明を構成した後、インストール済ソフトウェアのクリティカル・パッチ・アドバイザを検索するジョブを作成できます。
このリンクをクリックすると、Oracle Enterprise Managerによって、Refresh_From_Metalink_Jobジョブが作成され、「ジョブ・アクティビティ」ページが表示されます。
「ジョブ・アクティビティ」ページが表示されます。
「ジョブ実行: REFRESH_FROM_METALINK_NOW」ページが表示されます。
パッチおよびパッチ・セットは、Oracleサポート・サービスのWebサイトであるOracleMetaLinkから入手できます。このサイトは次のURLにあります。
https://metalink.oracle.com
Oracle Enterprise Managerを使用して、OracleMetaLinkにある使用可能なパッチ・リリースを表示できます。このような更新の表示は、パッチ・ウィザードの最初の手順です。このウィザードを使用して、Oracleホームにパッチをダウンロードできます。
sales1インスタンスの「データベース・インスタンス: ホーム」ページが表示されます。
「パッチの選択」ページが表示されます。
「パッチの検索および選択」ページが表示されます。
基準を満たす検索結果のリストが、最新のパッチ(またはパッチ・セット)を最上位にして表示されます。
README
ファイルを表示します。READMEファイルには、パッチに含まれているバグ修正に関する説明、およびパッチのインストール手順が含まれています。「パッチ詳細を表示」ページのパッチ・ロケータ・リンクをクリックして、パッチ・ウィザードに戻ります。
「パッチ: 接続先の選択」ページが表示されます。
「パッチ: 資格証明の設定」ページが表示されます。
「パッチ: ステージングまたは適用」ページが表示されます。
EMStagedPatches/
patchnumber
というOracleホームのサブディレクトリです。デフォルトでは、パッチのステージングのみが行われます。ステージング後、パッチのREADME
ファイルの指示に従って手動でパッチを適用できます。この指示には、データベース・インスタンスおよびアプリケーションを停止する手順、またはスクリプトを実行する手順が含まれていることがあります。
「パッチ: スケジュール」ページが表示されます。
「パッチ: サマリー」ページが表示されます。
Oracle RACデータベース、インストール済のASM、またはインストール済のOracle Clusterwareにパッチを適用する前に、いくつかの手順を実行する必要があります。
OPatchでOracleホームが存在するかどうかが検証されます。環境変数ORACLE_HOME
が、パッチの適用を試行している製品のOracleホームに設定されている必要があります。
環境変数の設定の詳細は、各ベンダーのマニュアルを参照してください。
ORACLE_HOME
の現在の設定をチェックするには、次の手順を実行します。oracle
ユーザーとしてオペレーティング・システムにログインします。
echo
コマンドを使用して、環境変数ORACLE_HOME
の現在の設定を表示します。
echo $ORACLE_HOME
パッチ操作を実行する前に、直接パッチを適用しているソフトウェアをバックアップすることをお薦めします。これをOracle RAC、ASMまたはOracle Clusterwareソフトウェアのインストール・ディレクトリに適用します。
Oracle Enterprise Managerを使用してパッチをダウンロードする場合、パッチのターゲットとしてクラスタ内のすべてのノードを選択すると、パッチは、それらのノードに自動的にステージングされます。
OracleMetaLinkからパッチを手動でダウンロードした場合、各ノードにパッチをコピーする必要があります。
opatch
バイナリ・ファイルはOracle_home/OPatch
ディレクトリにあります。OPatchの実行中にこのパスを指定するか、環境変数PATH
を更新して、OPatch
ディレクトリを含めることができます。
/opt/oracle/11gR1/db_1
がOracleホーム・ディレクトリの場所である場合、次のようなシェル・コマンドを使用して、PATH環境変数の値を更新します。
$ export PATH=$PATH:/opt/oracle/11gR1/db_1/OPatch
現行ユーザーのシェル・プロファイル・スクリプトを変更して、ログインのたびにこの変数が構成されるようにすることもできます。
システムにパッチを適用する前に、ユーザー等価関係が有効になっていることを確認します。
oracle
ユーザーとしてログインします。
[oracle@docrac1] $ ssh docrac2 date
日付が戻された場合、ソース・ノードとインストール先ノード間のユーザー等価関係は構成されています。
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
パッチ適用操作を続行する前にSSHユーザー等価を有効化します。
oracle
ユーザーとしてログインします。
$ /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add
これらのコマンドは、ローカル・ノードでssh-agent
を起動し、RSA鍵およびDSA鍵を現行のセッション・メモリーにロードします。これにより、SSHコマンドを発行するときにパス・フレーズの使用を求めるプロンプトが表示されなくなります。
[oracle@docrac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL [oracle@docrac1 .ssh]$ /usr/bin/ssh-add Enter passphrase for /home/oracle/.ssh/id_rsa Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa) Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
[oracle@docrac1] $ ssh docrac2 date
Oracle RAC環境でのパッチの適用は、単一ノードへのパッチの適用とは少し異なります。OPatchは、クラスタを検出すると、Oracle Universal Installer(OUI)を使用してソフトウェア・インベントリを問い合せ、ローカル・ノード名およびノード・リストを検索します。
パッチをインストールする前に、パッチを適用するソフトウェア・ディレクトリで実行されているアプリケーションをすべて停止する必要があります。Oracle RACクラスタでは、パッチを適用するソフトウェアに応じて、その他のアプリケーションの停止が必要になることもあります。表10-1に、Oracleソフトウェアへのパッチ適用の際に停止するアプリケーションを示します。
Oracle RACには、次の3つの方法でパッチを適用できます。
すべてのノードにパッチを適用する方法では、最初にクラスタ内のすべてのノードを停止し、それらのすべてのノードに対してパッチを適用します。すべてのノードにパッチを適用した後、ノード上のすべてのnodeapps
を再起動します。通常、この方法は、非常にクリティカルなパッチに対して使用され、停止時間が最大になります。OPatchでは、パッチをローリング方式で適用できない場合およびminimize_downtime
オプションを指定しなかった場合にこの方法が使用されます。
sales
はデータベースの名前です。
$ CRS_home/bin/srvctl stop database -d sales
node_name
はノードの名前です。
$ CRS_home/crs/bin/srvctl stop nodeapps -n node_name
クラスタ内の各ノードに対して前述のコマンドを繰り返します。
クラスタ内の各ノードでnodeapps
を停止した後、crs_stat
ユーティリティを使用して、各ノードですべてのnodeapps
が停止されたことを確認します。
$ CRS_home/bin/crs_stat -t
root
ユーザーとして次のコマンドを発行し、クラスタ内のすべてのノードのCRSデーモンを停止します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
# CRS_home/bin/crsctl stop crs
クラスタ内の各ノードで、このコマンドを繰り返します。
$ cd Oracle_home/EMStagedPatches/4519934/4519934
ORACLE_HOME
環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。
$ echo $ORACLE_HOME /opt/oracle/11gR1/db_1
opatch apply
root
ユーザーとして次のコマンドを発行し、すべてのノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
# CRS_home/bin/crsctl start crs
クラスタ内の各ノードで、このコマンドを繰り返します。
nodeapps
を停止した場合、パッチを適用した後にすべてのノードでnodeapps
を再起動します。nodeapps
を起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1
はクラスタ内のいずれかのノードです。
$ CRS_home/bin/srvctl start nodeapps -n docrac1
クラスタ内の各ノードに対して前述のコマンドを繰り返します。
すべてのノードでnodeapps
を再起動した後、crs_stat
ユーティリティを使用して、各ノードでnodeapps
が再起動されたことを確認します。
$ CRS_home/bin/crs_stat -t
いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のようなコマンドを使用すると、様々なノード・アプリケーションを再起動できます。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
$ CRS_home/bin/srvctl start instance -d sales -i "sales1" $ CRS_home/bin/srvctl start listener -n docrac1 $ CRS_home/bin/srvctl start asm -n docrac1
$ sqlplus /nolog SQL> connect sys/password@sales1 AS SYSDBA SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql SQL> @Oracle_home/rdbms/admin/utlrp.sql SQL> exit
参照:
|
ローリング方式でのパッチ適用では、1つのノード・グループが停止され、そのグループのノードにパッチが適用された後、再起動されます。この処理は、クラスタ内のすべてのノードにパッチが適用されるまでグループ単位で個別に行われます。インストール済のOracle RAC、ASMまたはOracle Clusterwareに個別パッチを適用する方法としては、これが最も効率的です。ノードのグループごとにパッチを適用することで、別のノードの1つ以上のインスタンスを常に使用できるため、クラスタ・データベースの停止時間はゼロになります。
ほとんどのパッチはローリング方式で適用できますが、この方式で適用できないバッチもあります。ローリング・パッチ方式でパッチを適用できるかどうかは、パッチのREADME
ファイルに記載されています。ローリング・パッチ方式でパッチを適用できない場合は、「最小停止時間でのパッチの適用」または「すべてのノードへのパッチの適用」を使用してパッチを適用する必要があります。
$ cd Oracle_home/EMStagedPatches/4519934/4519934
$ Oracle_home/bin/emctl stop dbconsole
sales
はデータベースの名前、sales1
はインスタンスの名前です。
$ CRS_home/bin/srvctl stop instance -d sales -i "sales1"
パッチ適用の対象となるノード・グループ内の各ノードに対して前述のコマンドを繰り返します。
docrac1
はグループ内のいずれかのノード名です。
$ CRS_home/crs/bin/srvctl stop nodeapps -n docrac1
パッチ適用の対象となるノード・グループ内の各ノードに対して前述のコマンドを繰り返します。
グループ内の各ノードでnodeapps
を停止した後、crs_stat
ユーティリティを使用して、パッチが適用されるノードのグループですべてのnodeapps
が停止されたことを確認します。
$ CRS_home/bin/crs_stat -t
root
ユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを停止します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
# CRS_home/bin/crsctl stop crs
パッチ適用の対象となるノード・グループ内の各ノードでこのコマンドを繰り返します。
ORACLE_HOME
環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。
$ echo $ORACLE_HOME /opt/oracle/11gR1/db_1
$ opatch apply -local
ノードのグループを使用している場合は、次のようなコマンドを使用して、パッチが適用されるノードのグループにパッチを適用するようにOPatchに指示します。
$ opatch apply -local_node docrac1 -remote_nodes docrac2,docrac3
root
ユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
# CRS_home/bin/crsctl start crs
グループ内の各ノードで、このコマンドを繰り返します。
nodeapps
を停止した場合、パッチを適用した後にそのグループのノードでnodeapps
を再起動します。nodeapps
を起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1
はパッチを適用したノード・グループ内のいずれかのノードです。
$ CRS_home/bin/srvctl start nodeapps -n docrac1
グループ内の各ノードに対して前述のコマンドを繰り返します。
nodeapps
を再起動した後、crs_stat
ユーティリティを使用して、グループ内の各ノードでnodeapps
が再起動されたことを確認します。
$ CRS_home/bin/crs_stat -t
いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のコマンドを使用すると、sales
クラスタ・データベースのsales1
インスタンスを再起動できます。
$ CRS_home/bin/srvctl start instance -d sales -i "sales1"
$ opatch apply -remote_nodes docrac2
ノードのグループにパッチを適用する場合は、次のようなコマンドを使用して、パッチが適用されるノードのグループにパッチを適用するようにOPatchに指示します。
$ opatch apply -remote_nodes docrac4,docrac5,docrac6
root
ユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。
# CRS_home/bin/crsctl start crs
グループ内の各ノードで、このコマンドを繰り返します。
nodeapps
を停止した場合、パッチを適用した後にそのグループのノードでnodeapps
を再起動します。nodeapps
を起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1
はパッチを適用したノード・グループ内のいずれかのノードです。
$ CRS_home/bin/srvctl start nodeapps -n docrac1
グループ内の各ノードに対して前述のコマンドを繰り返します。
nodeapps
を再起動した後、crs_stat
ユーティリティを使用して、グループ内の各ノードでnodeapps
が再起動されたことを確認します。
$ CRS_home/bin/crs_stat -t
いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のコマンドを使用すると、sales
クラスタ・データベースのsales2
インスタンスを再起動できます。
$ CRS_home/bin/srvctl start instance -d sales -i "sales2"
$ sqlplus /nolog SQL> connect sys/password@sales1 AS SYSDBA SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql SQL> @Oracle_home/rdbms/admin/utlrp.sql SQL> exit
参照:
|
最小停止時間でのパッチの適用では、1つのセットのノードに対して、停止およびパッチの適用を順に実行します。最初のセットのノードにパッチを適用した後、2つ目のセットのノードを停止します。次に、最初のセットのノードを再起動し、2つ目のセットのノードにパッチを適用します。2つ目のセットのノードは、パッチの適用後に再起動します。この方法を使用した場合、同時にすべてのノードを停止する方法と比較すると、Oracle RACの停止時間が短くなります。
最小停止時間でのパッチの適用では、次のアクションが実行されます。
$ cd Oracle_home/EMStagedPatches/4519934/4519934
$ Oracle_home/bin/emctl stop dbconsole
sales
はデータベースの名前、sales1
はインスタンスの名前です。
$ CRS_home/bin/srvctl stop instance -d sales -i "sales1"
ORACLE_HOME
環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。
$ echo $ORACLE_HOME /opt/oracle/11gR1/db_1
$ opatch apply -minimize_downtime
パッチがディスクにステージングされているディレクトリからOPatchコマンドを実行する場合は、パッチIDを指定する必要はありません。
ローカル・ノードにパッチを適用する準備ができているかどうか尋ねられます。ローカル・ノードのOracle RACインスタンスが停止していることを確認すると、ローカル・ノードのOracleホーム・ディレクトリにパッチが適用されます。その後、パッチ適用の対象となる次のノードを選択するよう求められます。
sales
というOracle RACデータベースのsales2
インスタンスを起動する方法を示しています。
$ CRS_home/bin/srvctl start instance -d sales -i "sales1"
nodeapps
が再起動されたことを確認します。
$ crs_stat -t
いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のようなコマンドを使用すると、docrac1
ノードのリスナーを再起動できます。ここで、CRS_home はOracle Clusterwareのホーム・ディレクトリです。
$ CRS_home/bin/srvctl start listener -n docrac1
$ sqlplus /nolog SQL> connect sys/password@sales1 AS SYSDBA SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql SQL> @Oracle_home/rdbms/admin/utlrp.sql SQL> exit
参照:
|
パッチ・セットは、完全にテストされ、統合された製品修正を提供するメカニズムです。パッチ・セット内のすべての修正が、テスト済で、互いに機能することが動作保証されています。パッチ・セットには影響が小さいパッチのみが含まれているため、サーバーに対するアプリケーションまたはツールの動作保証を行う必要はありません。
Red Hat Linux上のOracle RACデータベースおよびOracle Clusterwareに最新のパッチ・セットを適用する方法は、OracleMetaLink Webサイトのドキュメント、Oracle 11g リリース1(11.1)サポート・ステータスおよびアラートを検索してください。
このドキュメントはOracle 11g リリース1に使用可能なパッチ・セットの概要を提供します。このドキュメントを使用して、プラットフォームに合ったパッチ・セット・ノートを簡単に特定、確認できます。Oracle Databaseのパッチ・セット・ノートのドキュメントには次の情報が含まれています。
オペレーティング・システムのリストが表示されます。
Linux x86などのオペレーティング・システムのエントリの上にカーソルを置く場合データベースのバージョンが表示されます。
「Advanced Search」ページが表示されます。
パッチ・セットの説明およびダウンロード・ページが表示されます。
また、このページで「Download」をクリックしてご使用のコンピュータにパッチをダウンロードできます。
参照:
|
この項では、パッチのデプロイメントに関するトラブルシューティングについて説明します。この項の内容は次のとおりです。
Oracle RACデータベースへのパッチの適用で問題が発生した場合、一般的な問題であれば、上述のトピックで解決方法を確認できます。発生した問題がこのリストにない場合は、ログおよびトレース・ファイルを確認します。
参照:
|
OPatchによって自動的にOracle RACまたはそのノードが検出されない場合は、インベントリの内容を調べ、その内容が完全であることを確認します。
クラスタのノードのリストが完了していない場合、次の例に示すように、Oracle Universal Installerおよび-updateNodeList
フラグを使用して更新できます。
Oracle_home/oui/bin/runInstaller -updateNodeList ORACLE_ HOME=/opt/oracle/11gR1/db_1 CLUSTER_NODES=docrac1,docrac2,docrac3 -noClusterEnabled
参照:
|
ロギングおよびトレースは、デバッグの一般的な補助機能です。OPATCHではapply
、rollback
およびlsinventory
操作のすべてのログが保持されます。ログ・ファイルはOracle_home/cfgtoollogs/opatch
ディレクトリに配置されます。各ログ・ファイルには操作のタイム・スタンプが付加されます。ログ・ファイルの名前は、opatch_mm-dd-yyyy_hh-mm-ss.log
の形式になります。ここで、mm-dd-yyyy
は現在の日付、hh-mm-ss
は現在の時刻です。OPatchが実行されるたびに、新規ログ・ファイルが作成されます。
たとえば、ログ・ファイルが2007年5月17日の午後11時55分に作成された場合、ログ・ファイルの名前は次のようになります。
opatch_05-17-2007_23-55-00.log
OPatchでは、OPatchで実行されたコマンドの索引と、それに関連付けられているログ・ファイルもOracle_home/cfgtoollogs/opatch
ディレクトリのhistory.txt
ファイルに保持されます。history.txt
ファイルのサンプルを次に示します。
Date & Time : Tue Apr 26 23:00:55 PDT 2007 Oracle Home : /opt/oracle/11gR1/db_1/ OPatch Ver. : 11.1.0.0.0 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /opt/oracle/11gR1/db_1/cfgtoollogs/opatch/opatch-2007_Apr_26_23-00-55-PDT_Tue.log
このエラーは、パッチの適用のためにOPatchユーティリティで使用されているディレクトリがOPatchユーティリティで確認されている内容のテンプレートと一致しない場合、またはOPatchユーティリティが無効なディレクトリから実行されている場合に発生する可能性があります。
Patch_Shiphome
ディレクトリには、次の構造が存在する必要があります。
etc
ディレクトリ
files
ディレクトリ
etc/config/inventory
ファイルおよびアクション・ファイル
パッチ適用プロセスが中断された場合、パッチを再度インストールしようとすると、「部分的にインストールされた個別パッチを削除できません」エラーが発生する場合があります。
ORACLE_HOME
が、パッチの適用先とするOracleホーム・ディレクトリに設定されていることを確認します。
/.patch_storage/
patch-id
_
timestamp
ディレクトリに移動して、次のようにrestore
コマンドを実行します。
Oracle_home/.patch_storage/patch-id_timestamp/restore.sh
/.patch_storage/
patch-id
_
timestamp
/make.txt
ファイルを使用して(使用可能な場合)、オペレーティング・システムの環境を次のように変更します。
/bin/sh make.txt
|
Copyright © 2006, 2008 Oracle Corporation. All Rights Reserved. |
|