OPatchは、Oracleのソフトウェアに個別パッチを適用またはロールバックするユーティリティです。パッチを適用する手動プロセスは、バイナリ・パッチ適用と呼ばれます。バイナリ・パッチ適用の場合は、OPatchユーティリティを使用して次の操作を実行できます。
注意:
パッチを適用する前には、必ず特別な手順について記載された、パッチのREADMEを参照してください。
パッチ操作を実行する前に、ORACLE_HOME
をバックアップすることをお薦めします。ORACLE_HOME
は、任意の方法でバックアップできます。ORACLE_HOME
の圧縮には、zip、cp -r、tar
、cpio
などの任意の方法を使用できます。
ORACLE_HOMEリリースをサポートしているOPatchのバージョンを使用する必要があります。たとえば、12.0.1 Oracleホームにパッチを適用する場合は、OPatchバージョン12.0.1を使用します。Oracleホームがバージョン11.2である場合は、OPatchバージョン11.2を使用します。
My Oracle Supportからダウンロード可能な最近リリースされたOPatch for 12.1リリースを使用することをお薦めします(パッチ6880880)。12.1.0.1.0リリースのARUリンクを選択します。
https://updates.oracle.com/download/6880880.html
最新バージョンのOPatchの参照方法に関するサポート・ドキュメントも参照できます(ドキュメントID 224346.1)。このドキュメントには、MOSからOPatchツールをダウンロードする方法に関するインストラクション・ビデオへのリンクが含まれています。
OPatchコマンドおよび使用可能なオプションを使用する前に、OPatchの前提条件が満たされていることを確認する必要があります。
OPatchユーティリティを使用した製品(Fusion Middlewareなど)ホームへのパッチ適用は、通常、次のステップで構成されています。
OPatchにより製品ホームが存在するかどうかが検証されます。環境変数ORACLE_HOME
が、パッチを適用しようとしている製品の製品ホームに設定されている必要があります。環境変数の設定の詳細は、各ベンダーのドキュメントを参照してください。
注意:
Oracle Universal Installerのバイナリおよびインベントリが、パッチを適用するホーム内に存在する必要があります。
使用されるその他の環境変数は次のとおりです。
OPATCH_DEBUG
— ソフトウェア開発者が使用できる追加のデバッグ情報を有効にするブール設定。
PATH
— 製品ホームのパス情報。
注意:
$ORACLE_HOME/OPatchを$PATHに追加すると、任意のディレクトリからOPatchコマンドを実行する場合に便利です。
次のステップは、システムにすでにインストールされている項目を確認することです。これには、opatch
lsinventory
コマンドをpatch
またはpatch_id
のいずれかのオプションで使用します。
例2-1 lsinventory
コマンド
opatch lsinventory
このコマンドの詳細は、「lsinventory」を参照してください。
現在のシステム構成が適用するパッチに適切なものであることを確認したら、パッチを適用する前にOPatchが実行する操作を表示して、パッチの適用前にすべてのシステム前提条件が満たされているかどうかを確認することをお薦めします。これには、OPatchの-report
オプションを使用して、アクションを実際には実行せずに、OPatchが実行するパッチ適用アクションをすべて出力します。
例2-2 report
オプション
opatch apply -report
-reportオプションの詳細は、「OPatchの構文およびコマンド」を参照してください"
システムにパッチが正常に適用できることを確認したら、OPatchを使用してパッチを適用します。これには、OPatchのapply
コマンドを使用します。
例2-3 apply
コマンド
opatch apply /tmp/patch/12345678
このコマンドの詳細は、「apply」を参照してください。
システムにパッチを適用したら、すべてのパッチが正常に適用されていることを確認するための最終チェックを実行する必要があります。これには、OPatchのlsinventory
コマンドをpatch
またはpatch_id
のいずれかのオプションで使用します。このOPatchコマンドの詳細は、「lsinventory」を参照してください。
前提条件チェックを確認したら、OPatchを使用してパッチを適用します。
OPatchユーティリティは、$Oracle_Home/OPatch
ディレクトリにあります。このユーティリティは、様々なコマンドおよびオプションを指定して実行できます。OPatchで使用できるコマンド・オプションの完全なリストは、「OPatchの構文およびコマンド」を参照してください。
前述の一般的なパッチ適用ワークフローに従って、単一パッチを適用します。
パッチをダウンロードしたら、次のコマンドを使用して適用できます(ステップ5)。
# opatch apply <patch directory location>/<patch ID>
次に例を示します。
# opatch apply /tmp/patch/12345678
適用する必要があるすべてのパッチの場所を含むテキスト・ファイルを作成できます。OPatchを使用してファイルを参照し、パッチを適用します。
パッチの場所に関するテキスト・ファイルを作成します。エントリでは、各行にそれぞれのパッチの場所が含まれている必要があります。
vi patches.txt /tmp/patchlocation1/12345678 /tmp/patchlocation2/12365478 /scratch/patchlocation3/32165487
変更を保存します。
OPatchを使用してパッチを適用します。
# opatch napply - -phBaseFile <location of text file>
次に例を示します。
#opatch napply - -phBaseFile /tmp/patches/patches.txt
OPatchは、パッチを適用する場合に、以前に適用したパッチとの競合を検出およびレポートします。競合がある場合、パッチの適用は失敗します。OPatchの-force
オプションを使用して、このエラーをオーバーライドできます。-force
を指定すると、インストーラは最初に競合パッチをロールバックしてから、目的の個別パッチのインストールに進みます。-forceを使用すると、受信パッチが適用されるかわりに、競合の原因となっている一部のバグ修正が失われる可能性があります。
不具合の競合が発生し、競合するパッチの削除が必要になる場合があります。このプロセスは、パッチのロールバックと呼ばれます。パッチのインストール時、OPatchは、新規パッチで置換されるすべてのファイルのコピーを保存してから、これらのファイルの新規バージョンをロードし、$ORACLE_HOME/.patch_storage
に格納します。これらの保存されたファイルはロールバック・ファイルと呼ばれ、パッチのロールバックを可能にするためのキーとなります。パッチをロールバックする場合、これらのロールバック・ファイルがシステムにリストアされます。パッチのロールバック・プロセスを十分に理解している場合、必要な操作は-force
フラグを使用してデフォルトの動作をオーバーライドすることのみです。パッチをロールバックするには、次のコマンドを実行します。
$ OPatch/opatch rollback -id <Patch_ID>
別々のパッチ内の複数の修正により同じファイルが編集されているが、単一のエンティティとして一度にテストされていない場合、パッチの競合が発生します。OPatchおよびOPatchAutoは、これらの状況を識別して競合を回避するために役に立ちます。パッチの競合が発生したが、その競合をドキュメント化されたサポート手順を使用しても解決できない場合、MOSが技術的な支援として信頼できるソースになります。競合の解決には、パッチ適用の問題に対応するためのサービス・リクエストのファイリングおよびマージ・ラベル・リクエスト(MLR)パッチの取得が必要になる場合があります。解決策が見つかったら、OPatchを使用して修正済のパッチを適用します。