OPatchAutoは、GIと管理対象のOracle Real Application Cluster (RAC)の両方のホームにパッチを適用することにより、Grid Infrastructure (GI)クラスタへのパッチ適用を自動化します。また、OPatchAutoは-remoteオプションを指定して起動すると、これらのパッチをクラスタのすべてのノードにワン・ステップで適用します。OPatchAutoを使用して、単一ホスト環境または複数ホスト環境にパッチを適用するために必要な手順を自動化します。
パッチを正常に適用するには、OPatchの最新バージョンの取得、My Oracle Supportからの必要なパッチの取得、および環境のバックアップなど、OPatchAutoの実行に備えて環境を準備するために完了する必要がある前提条件がいくつかあります。
OPatchAutoを使用するための準備
パッチを正常に適用するには、OPatchの最新バージョンの取得、My Oracle Supportからの必要なパッチの取得、および環境のバックアップなど、OPatchAutoの実行に備えて環境を準備するために完了する必要がある前提条件がいくつかあります。
環境の準備の詳細は、次の項を参照してください。
OPatchAutoを使用した環境へのパッチ適用
OPatchAutoは、インストールの一部としてOPatchユーティリティとともにインストールされます。OPatchAutoには、単一のホストまたは複数のホスト環境でパッチの適用およびロールバックを自動化するために、OPatchAutoを使用した環境へのパッチ適用で使用できるコマンドが複数用意されています。
最新バージョンのOPatchとOPatchAutoの検索および取得
OPatchAutoを実行する前に、OracleホームでOPatchAutoを検索し、最新のバージョンであることを検証してください。パッチ適用をリクエストする前に、すべてのノードのすべてのホームでOPatchが最新バージョンである必要があります。
インストールに必要なパッチの取得
インストールに対する最新のパッチをMy Oracle Supportで検索してダウンロードできます。
OPatchAutoの環境変数
OPatchAutoの実行前に、必須のORACLE_HOME環境変数を必ず設定してください。
パスワードを格納するためのウォレットの作成
OPatchAutoを正常に実行するには、環境に接続するために必要なパスワード資格証明が含まれるウォレットをコマンドラインで指定する必要があります。
起動および停止操作をサポートするノード・マネージャの構成
パッチの適用中に、OPatchAutoが適切にシステムを停止および起動できるようにするには、ノード・マネージャが起動および停止操作をサポートするように構成する必要があります。
パッチ適用に関するバックアップとリカバリの考慮事項
パッチ操作を実行する前に、Oracleホームをバックアップすることを強くお薦めします。Oracleホームは、任意の方法でバックアップできます。
OPatchAutoの実行前に、必須のORACLE_HOME環境変数を必ず設定してください。ORACLE_HOME環境変数を使用して、パッチを適用する予定のOracleホームを識別します。
OPatchAutoは、データベースや管理サーバーなどのランタイム・エンティティにアクセスするために、Oracleウォレット形式の資格証明を受け入れます。ウォレット・ファイルには、パッチの適用が必要なクラスタに加わっているホストの資格証明が含まれています。コマンドラインでウォレットを入力します。OPatchAutoがウォレットを必要とするときにウォレットを指定していないと、コマンドラインで指定するように求めるプロンプトが表示されます。正常な使用方法は、ウォレットとウォレット・パスワードの両方を所持するユーザーによって異なります。
コマンドラインのOPatchAutoウォレット・ツールを使用すると、ウォレット・ファイルを生成できます。ウォレット・ファイルには、パッチの適用が必要になるクラスタに加わっているホストの資格証明が含まれています。ウォレット・ツールは、パッチ適用操作時にパラメータとしてウォレット・ファイル・パスを渡すことで、OPatchAutoパッチ・オーケストレーション・プロセス中にシームレスに機能します。
コマンドライン・ツールは次のようになります。
<ORACLE_HOME>/OPatch/auto/core/bin/patchingWallet.[sh|cmd] [-log log_file] [-log_priority log_priority] { -create | -delete | -list } alias1 alias2 ...
表5-1 patchingWallet
コマンドのオプション
オプション | 説明 |
---|---|
-create |
(必須)コマンドラインで指定した別名ごとにシークレットを作成します。指定の別名がすでにウォレットに存在する場合、その別名のシークレットは警告なしに上書きされます。 |
-delete |
(必須)ウォレットから指定した別名を削除します。ウォレットに存在しない別名は無視されます。 |
-list |
(必須)ウォレットに定義されている別名をリストします。別名に関連付けられているシークレットは表示されません。コマンドライン引数 |
-walletDir |
(オプション)ウォレット・ディレクトリへのパス。省略すると、デフォルトの場所が使用されます(定義されている場合)。 |
-useStdin |
(オプション)別名の作成時に、コンソール・デバイスではなく、STDINからパスワードを読み取る必要があることを指定します。パスワードは、別名のオプションで指定された順序で行ごとに読み取られます。プロンプトは表示されません。 |
-log |
(オプション)ログ・ファイルの名前。 |
-log_priority |
(オプション)ログ・ファイルの優先度の設定。Javaロギング・レベル文字列またはlog4j優先度文字列を使用します。 有効なJavaロギングの値は、off、severe、info、warning、config、fine、finer、finestおよびallです。 有効なlog4j優先度文字列は、debug、info、warn、error、fatalです。優先度文字列の値は、Levelクラスで定義されたレベルに対応します。 log4j優先度文字列の詳細は、Webサイトhttp://logging.apache.org/log4j/docs/api/org/apache/log4j/Level.htmlを参照してください。 |
OPatchAutoは関連するシステム内のすべてのホストで実行されるため、すべてのホストに対するOracle Grid Infrastructureのパッチ適用にはSSHが必要になります。この実行を可能にするには、SSH資格証明を指定する必要があります。これは、1つ以上のホストに対するSSH資格証明(複数ホストのパッチ適用に必要)を含むウォレットを指定することで実施します。
Linuxシステムの場合は、次のコマンドを実行することで各ノードにSSHがインストールされているかどうかを確認できます。
rpm –qa | grep ssh
ヒント: SSH等価の基本原理を理解するために、「SSHキーの生成」や「SSH-keygen」についてWeb検索して、SSHがSSH認証を可能するキーを管理する方法について理解してください。
パッチ操作を実行する前に、Oracleホームをバックアップすることを強くお薦めします。Oracleホームは、任意の方法でバックアップできます。
Oracleホームの圧縮には、zip
、cp -r
、tar
、cpio
などの任意の方法を使用できます。
opatch lsinventory - detail
コマンドの実行時にOracleホームが表示されない場合は、セントラル・インベントリにOracleホームがないか、セントラル・インベントリ自体が失われたか破損している可能性があります。
opatch lsinventory -detail
コマンドの実行時にOracleホームがリストされても、Oracleホーム内の製品およびコンポーネントがリストされない場合は、Oracleホーム内のインベントリ(ローカル・インベントリ)が失われたか破損している可能性があります。
ローカル・インベントリがなんらかの理由で破損または消失した場合は、Oracleホーム全体をリストアする必要があります(バックアップされている場合)。バックアップが存在しない場合は、ソフトウェアの再インストールが必要になることもあります。
パッチを正常に適用するには、OPatchの最新バージョンの取得、My Oracle Supportからの必要なパッチの取得、および環境のバックアップなど、OPatchAutoの実行に備えて環境を準備するために完了する必要がある前提条件がいくつかあります。
OPatchAutoを使用して、単一ホスト環境または複数ホスト環境にパッチを適用するために必要な手順を自動化します。
次の各トピックでは、OPatchAutoを使用してGI/RAC環境にパッチを適用する方法について説明します。
OPatchAutoを使用したパッチ適用には、パッチを正常に適用するために実行する必要がある一連の手順が含まれます。
次の表に、OPatchAutoを使用して既存のGI/RAC環境にパッチを適用するために必要な通常の手順の概要を示します。
表5-2 OPatchAutoの使用
タスク | 説明 | ドキュメント |
---|---|---|
インストールに必要なパッチを取得します。 |
ログインし、特定のインストールに必要なパッチを検索してダウンロードします。 OPatchAutoが特定のパッチ・タイプをサポートしているかどうかについて気にする必要はありません。OPatchAutoが特定のパッチ・タイプをサポートしていない場合、ツールを実行するときに通知されます。 |
|
パッチのREADME.txtファイルを確認します。 |
各パッチ・アーカイブには、重要な情報およびパッチの適用前に従う必要がある手順が記載されているREADMEファイルが含まれています。READMEファイルには、パッチ固有の手順やその他の情報が記載されているため、このファイルを確認することは重要です。 |
パッチ・アーカイブにパッケージされているREADME.txtファイル |
パッチ前提条件を確認します。 |
OPatchAutoのapply -analyzeコマンドで、パッチの前提条件が満たされていることを確認します。 |
単一ホストの環境にパッチを適用している場合、「単一のホストでパッチを適用するための前提条件の検証」を参照してください。 複数ホストの環境にパッチを適用している場合、「複数のホストでパッチを適用するための前提条件の検証」を参照してください。 |
パッチを適用します。 |
パッチの適用が必要なOracleホームを確定して、READMEファイルを読んだ後に、opatchauto applyコマンドを使用してパッチを適用します。 |
複数ホストの環境にパッチを適用している場合、「applyコマンドを使用した複数のホストへのパッチ適用」を参照してください |
パッチがOracleホームに正しく適用されたことを検証します。 |
OPatch lsinventoryコマンドは、Oracleホームに適用されたパッチを表示します。 |
Oracleホームに適用されたパッチを検証するためのOPatch lsinventoryコマンドの使用 |
パッチの適用後、ソフトウェアが正しく実行されていることを検証します。 |
パッチの適用が完了し、サーバーの再起動が完了したら、製品ソフトウェアで問題が解決しているかどうかを検証する必要があります。 |
パッチ適用後のインストールの検証 |
パッチ適用のトラブルシューティングを行います。 |
パッチ適用に問題がある場合、最初のトラブルシューティング・タスクはOPatchAutoセッションのログ・ファイルを確認することです。 |
OPatchAutoログ・ファイルの表示によるパッチのトラブルシューティング |
パッチ適用をロールバックします |
なんらかの原因で満足のいく結果が得られなかった場合は、 追加の支援が必要な場合は、My Oracle Support (以前のOracleMetaLink)を参照してください。 |
単一ホストの環境の場合、「単一のホストに適用したパッチのロールバック」を参照してください。 複数ホストの環境の場合、「複数のホストに適用したパッチのロールバック」を参照してください。 |
必要なパッチの取得後に、opatchauto apply -analyze
コマンドを使用して前提条件を確認します。必要な場合、opatchauto rollback
を使用してパッチ適用をロールバックできます。
注意:
-ohオプションを指定してOPatch 11.2.0.3.13で'opatch auto'、OPatch 12.1以降で'opatchauto'を呼び出すときに、現在のディレクトリが-ohで指定したホームのいずれかであることを確認してください。
注意:
DB 12.2.0.2.0以降、opatchautoパッチ適用のデフォルト・モードはホーム外パッチ適用になります。ホーム内モードでパッチを適用するには、opatchautoコマンドとともに-inplaceを渡す必要があります。DBバージョンが12.2.0.2より前の場合は、デフォルト・モードとしてホーム内で続行されます。注意:
パッチの適用時/ロールバック時に、opatchautoはすべてのノードからホーム情報を照会する必要があるため、パッチの適用を開始する前に、すべてのノードのホームに同じバージョンのOpatchをインストールする必要があります。
OPatchAutoを使用した複数ホスト環境へのパッチ適用には、次のタスクが含まれます。
OPatchAutoを使用したOracleへのパッチ適用
OPatchAutoを使用して、単一ホスト環境または複数ホスト環境にパッチを適用するために必要な手順を自動化します。
複数のホストでパッチを適用するための前提条件の検証
パッチを正常に適用するには、opatchauto apply -analyze
コマンドを使用して前提条件を確認します。
applyコマンドを使用した複数のホストへのパッチ適用
複数のホストにパッチを適用するには、opatchauto apply -remote
コマンドを使用します。これは、opatchauto apply -analyzeと同じコマンドですが、パッチを適用する準備が整っているときに-analyze引数を削除する点が異なります。
複数のホストに適用したパッチのロールバック
パッチを適用したときに結果が不十分である場合、opatchauto rollbackコマンドを使用してパッチ適用をロールバックします。opatchauto rollback -analyze -remoteコマンドを使用してロールバックする前にパッチを分析し、opatchauto rollback -remoteを呼び出してすべてのホストのOracleホームからパッチをロールバックします。
パッチを正常に適用するには、opatchauto apply -analyze —remote
コマンドを使用して前提条件を確認します。
複数のホスト上の特定のOracleホーム(ORACLE_HOME)にパッチの適用が可能なことを検証するには、OPatchAuto apply
コマンドに-analyze
引数を使用します。
opatchauto apply PATCH_HOME -remote -analyze -remote -wallet wallet_location
次に例を示します。
opatchauto apply /home/oracle/patches/15941858 -remote -analyze -wallet /tmp/samplewallet
1つのセッションで複数のパッチを適用するには、–phBaseDir
オプションを使用します。
このコマンドは、パッチによって実行される処理を表示しますが、実際にパッチを適用することはありません。これにより、パッチの前提条件が満たされていることを検証できます。
前提条件の確認が失敗した場合は、コマンドの出力およびログ・ファイルを参照して、作業を続行する前に問題を修正してください。たとえば、一般的な失敗としてはパッチの競合の検出があります。パッチの競合が発生した場合は、Oracleサポートからマージ・パッチを取得する方法についてログ・ファイル内の指示に従ってください。-force-conflictおよび-skip-conflictオプションを使用して競合を解決することもできます。詳細は、「apply」を参照してください
パッチを複数のホストに適用するには、opatchauto applyコマンドを使用します。これは、opatchauto apply -analyze —remote
と同じコマンドですが、パッチを適用する準備が整っているときに-analyze
引数を削除する点が異なります。
このトピックでは、複数のホスト上のOracleホーム環境にパッチを適用するためにopatchauto apply
コマンドを使用する例を示します。
この例では、次の内容が想定されています。
ダウンロードしたパッチは、My Oracle Supportでのパッチ番号の名前が付けられたディレクトリに保存されます。この場合、パッチ番号は15941858です。
ORACLE_HOME/OPatchディレクトリからOPatchAutoコマンドを実行し、コマンドへの引数としてパッチの場所(PATCH_HOME)を含めます。
注意:
opatchauto applyコマンドを実行する場合、コマンド出力内のセッションID (EKZRなど)をメモしてください。これにより、パッチを後でロールバックすることを決定した場合、ロールバック・プロセスが容易になります。
opatchauto apply PATCH_HOME -remote -wallet wallet_location
次に例を示します。
opatchauto apply /home/oracle/patches/15941858 -remote -wallet /tmp/samplewallet -walletPassword password
opatchauto rollback -analyze -remote
コマンドを使用してロールバックする前にパッチを分析し、opatchauto rollback -remote
を呼び出してすべてのホストのOracleホームからパッチをロールバックします。
パッチをロールバックするには、パッチを適用したときと同じプロセスに従います。つまり、最初にopatchauto rollback
コマンドのテスト実行を行います。
注意:
パッチを適用するときに使用したセッションID (EKZRなど)を指定すると、コマンドを簡素化できます。これにより、OPatchAutoで必要なコマンドライン・パラメータをすべて導出できるようになります。
opatchauto rollback <PATCH_LOCATION> -remote -analyze –wallet wallet_location
次に例を示します。
opatchauto rollback <patch_location> -remote -analyze –wallet /tmp/samplewallet
テストを正常に実行できたら、パッチのロールバックを実際に実行します。
opatchauto rollback <patch_location> -remote –wallet wallet_location
次に例を示します。
opatchauto rollback <patch_location> -remote –wallet /tmp/samplewallet
また、パッチ適用時のセッションIDを覚えていない場合は、次のように、解凍したパッチのコピーをOPatchAutoが指すように設定することでパッチをロールバックできます。
opatchauto rollback <patch_location> -remote -analyze –wallet wallet_location
Oracleホームに適用されたパッチを検証するには、またはOracleホームに関する追加情報を確認するには、opatch lsinventory
コマンドを使用します。
次の例に、特定の個別パッチが適用されていることを示す、lsinventory
コマンドのサンプル出力を示します。
例5-1 Oracleホーム情報を取得するためのopatch lsinventoryコマンドの実行
> opatch lsinventory Oracle Interim Patch Installer version 13.3.0.0.0 Copyright (c) 2013, Oracle Corporation. All rights reserved. Oracle Home : /opt/Oracle/products/fmw12c Central Inventory : /opt/Oracle/oraInventory from : /var/opt/Oracle/oraInst.loc OPatch version : 13.3.0.0.0 OUI version : 13.3.0.0.0 Log file location : /opt/Oracle/products/fmw12c/cfgtoollogs/opatch/ opatch2013-06-10_12-32-37PM_1.log OPatch detects the Middleware Home as "/opt/Oracle/products/fmw12c" Lsinventory Output file location : /opt/Oracle/products/fmw12c/cfgtoollogs/opatch/lsinv/ lsinventory2013-06-10_12-32-37PM.txt -------------------------------------------------------------------------------- Interim patches (1) : Patch 15941858 : applied on Mon Jun 10 12:39:07 PDT 2013 Unique Patch ID: 150220 Patch description: "TEST PATCH FOR WLS 12.2.1.0 - JAVA CLASSES PATCH" Created on 17 May 2013, 11:54:20 hrs PST8PDT Bugs fixed: 783169, 15941850 -------------------------------------------------------------------------------- OPatch succeeded.