プライマリ・コンテンツに移動
Oracle® OPatchユーザーズ・ガイド
13c リリース2
E49737-08
目次へ移動
目次
索引へ移動
索引

前
次

2 OPatchを使用したバイナリ・パッチ適用

OPatchは、Oracleのソフトウェアに個別パッチを適用またはロールバックするユーティリティです。パッチを適用する手動プロセスは、バイナリ・パッチ適用と呼ばれます。バイナリ・パッチ適用の場合は、OPatchユーティリティを使用して次の操作を実行できます。

注意:

パッチを適用する前には、必ず特別な手順について記載された、パッチのREADMEを参照してください。

パッチ操作を実行する前に、ORACLE_HOMEをバックアップすることをお薦めします。ORACLE_HOMEは、任意の方法でバックアップできます。ORACLE_HOMEの圧縮には、zip、cp -r、tarcpioなどの任意の方法を使用できます。

2.1 最新のOPatchユーティリティの取得

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ツールをダウンロードする方法に関するインストラクション・ビデオへのリンクが含まれています。

2.2 OPatchの使用

OPatchコマンドおよび使用可能なオプションを使用する前に、OPatchの前提条件が満たされていることを確認する必要があります。

2.2.1 パッチ適用ワークフロー

OPatchユーティリティを使用した製品(Fusion Middlewareなど)ホームへのパッチ適用は、通常、次のステップで構成されています。

  1. 環境変数ORACLE_HOMEの設定

  2. システムにインストールされている項目の確認

  3. パッチ適用の前提条件が満たされていることの確認

  4. パッチの適用

  5. 適用後のチェックの実行

2.2.1.1 ORACLE_HOME環境変数の設定

OPatchにより製品ホームが存在するかどうかが検証されます。環境変数ORACLE_HOMEが、パッチを適用しようとしている製品の製品ホームに設定されている必要があります。環境変数の設定の詳細は、各ベンダーのドキュメントを参照してください。

注意:

Oracle Universal Installerのバイナリおよびインベントリが、パッチを適用するホーム内に存在する必要があります。

使用されるその他の環境変数は次のとおりです。

  • OPATCH_DEBUG — ソフトウェア開発者が使用できる追加のデバッグ情報を有効にするブール設定。

  • PATH — 製品ホームのパス情報。

注意:

$ORACLE_HOME/OPatchを$PATHに追加すると、任意のディレクトリからOPatchコマンドを実行する場合に便利です。

2.2.1.2 システムにインストールされている項目の確認

次のステップは、システムにすでにインストールされている項目を確認することです。これには、opatch lsinventoryコマンドをpatchまたはpatch_idのいずれかのオプションで使用します。

例2-1 lsinventoryコマンド

opatch lsinventory

このコマンドの詳細は、lsinventoryを参照してください。

2.2.1.3 パッチ適用の前提条件が満たされていることの確認

現在のシステム構成が適用するパッチに適切なものであることを確認したら、パッチを適用する前にOPatchが実行する操作を表示して、パッチの適用前にすべてのシステム前提条件が満たされているかどうかを確認することをお薦めします。これには、OPatchの-reportオプションを使用して、アクションを実際には実行せずに、OPatchが実行するパッチ適用アクションをすべて出力します。

例2-2 reportオプション

opatch apply -report

-reportオプションの詳細は、「OPatchの構文およびコマンド」を参照してください"

2.2.1.4 パッチの適用

システムにパッチが正常に適用できることを確認したら、OPatchを使用してパッチを適用します。これには、OPatchのapplyコマンドを使用します。

例2-3 applyコマンド

opatch apply /tmp/patch/12345678

このコマンドの詳細は、applyを参照してください。

2.2.1.5 適用後のチェックの実行

システムにパッチを適用したら、すべてのパッチが正常に適用されていることを確認するための最終チェックを実行する必要があります。これには、OPatchのlsinventoryコマンドをpatchまたはpatch_idのいずれかのオプションで使用します。このOPatchコマンドの詳細は、lsinventoryを参照してください。

2.3 パッチ・セット更新(PSU)の適用

前提条件チェックを確認したら、OPatchを使用してパッチを適用します。

OPatchユーティリティは、$Oracle_Home/OPatchディレクトリにあります。このユーティリティは、様々なコマンドおよびオプションを指定して実行できます。OPatchで使用できるコマンド・オプションの完全なリストは、「OPatchの構文およびコマンド」を参照してください。

2.3.1 単一パッチの適用

前述の一般的なパッチ適用ワークフローに従って、単一パッチを適用します。

  1. 最新のOPatchユーティリティの取得

  2. 環境変数ORACLE_HOMEの設定

  3. システムにインストールされている項目の確認

  4. パッチ適用の前提条件が満たされていることの確認

  5. パッチの適用

  6. 適用後のチェックの実行

パッチをダウンロードしたら、次のコマンドを使用して適用できます(ステップ5)。

# opatch apply <patch directory location>/<patch ID>

次に例を示します。

# opatch apply /tmp/patch/12345678

2.3.2 テキスト・ファイルを使用した複数パッチの適用

適用する必要があるすべてのパッチの場所を含むテキスト・ファイルを作成できます。OPatchを使用してファイルを参照し、パッチを適用します。

  1. パッチの場所に関するテキスト・ファイルを作成します。エントリでは、各行にそれぞれのパッチの場所が含まれている必要があります。

    vi patches.txt
    /tmp/patchlocation1/12345678
    /tmp/patchlocation2/12365478
    /scratch/patchlocation3/32165487
    

    変更を保存します。

  2. OPatchを使用してパッチを適用します。

    # opatch napply - -phBaseFile <location of text file>
    

    次に例を示します。

    #opatch napply - -phBaseFile /tmp/patches/patches.txt

2.4 パッチの競合の検出および解決

OPatchは、パッチを適用する場合に、以前に適用したパッチとの競合を検出およびレポートします。競合がある場合、パッチの適用は失敗します。OPatchの-forceオプションを使用して、このエラーをオーバーライドできます。-forceを指定すると、インストーラは最初に競合パッチをロールバックしてから、目的の個別パッチのインストールに進みます。-forceを使用すると、受信パッチが適用されるかわりに、競合の原因となっている一部のバグ修正が失われる可能性があります。

不具合の競合が発生し、競合するパッチの削除が必要になる場合があります。このプロセスは、パッチのロールバックと呼ばれます。パッチのインストール時、OPatchは、新規パッチで置換されるすべてのファイルのコピーを保存してから、これらのファイルの新規バージョンをロードし、$ORACLE_HOME/.patch_storageに格納します。これらの保存されたファイルはロールバック・ファイルと呼ばれ、パッチのロールバックを可能にするためのキーとなります。パッチをロールバックする場合、これらのロールバック・ファイルがシステムにリストアされます。パッチのロールバック・プロセスを十分に理解している場合、必要な操作は-forceフラグを使用してデフォルトの動作をオーバーライドすることのみです。パッチをロールバックするには、次のコマンドを実行します。

$ OPatch/opatch rollback -id <Patch_ID>

別々のパッチ内の複数の修正により同じファイルが編集されているが、単一のエンティティとして一度にテストされていない場合、パッチの競合が発生します。OPatchおよびOPatchAutoは、これらの状況を識別して競合を回避するために役に立ちます。パッチの競合が発生したが、その競合をドキュメント化されたサポート手順を使用しても解決できない場合、MOSが技術的な支援として信頼できるソースになります。競合の解決には、パッチ適用の問題に対応するためのサービス・リクエストのファイリングおよびマージ・ラベル・リクエスト(MLR)パッチの取得が必要になる場合があります。解決策が見つかったら、OPatchを使用して修正済のパッチを適用します。