OPatchを使用して、Oracle Databaseのホーム内個別およびシングル・インスタンス・パッチによるメンテナンスを実行できます。

ノート:

メンテナンスを簡略化し潜在的な問題を回避するためのベスト・プラクティスとして、新しいOracleホームおよびホーム外パッチ適用を使用してデータベース・メンテナンスを実行することをお薦めします。これは、パッチ適用操作のためのお薦めのデプロイメント選択です。

シングル・インスタンスの場合のOPatchの使用のための確認事項と前提条件

パッチをダウンロードし、ソフトウェア・メンテナンスの実行前に、計画デプロイメント・シナリオのガイドラインおよび前提条件を確認します。

ノート:

メンテナンスのためのリリース更新または個別パッチの適用を開始する前に、Oracleホームのバイナリ、Gridホームのバイナリ、および中央のOracle Inventory (その更新の影響を受ける可能性があるoraInventory)のバックアップを作成することをお薦めします。詳細は、次を参照してください:

How to Perform ORACLE_HOME Backup? (Doc ID 565017.1)

パッチのダウンロードと解凍

最新リリースのOPatchバージョンをダウンロードし使用することをお薦めします。My Oracle Supportから最新バージョンをダウンロードします:

My Oracle Supportパッチ6880880

OPatchをインストールするための正確な手順については、ツールのダウンロードに含まれているreadmeに従ってください。

関連項目:

既知の問題などの詳しいOPatchドキュメントについては、次を参照してください:

Primary Note For OPatch (Doc ID 293369.1)

OPatchによるメンテナンスのガイドライン

自動リリース更新(ARU)やMy Oracle Supportからのリリース更新(RU)は累積です。つまり、あるソフトウェア・リリースに対する以前のすべてのRUの内容は、最新のRUに含まれています。使用されていないパッチの削除によってパフォーマンスを高めるために、listorderedinactivepatchesおよびdeleteinactivepatchesオプションを指定してOPatchを実行することをお薦めします。詳細については、以下を参照:

OPatch 12.2.0.1.37+ Introduces a New Feature to Delete Inactive Patches in the ORACLE_HOME/.patch_storage Directory (Doc ID 2942102.1)

ディレクトリ内にあります。

OPatchを使用してOracleソフトウェアの最新のソフトウェア更新をインストールするには、ソフトウェア・ホームに最新リリースのソフトウェアがすでにインストールされている必要があります。たとえば、Oracle Database 23aiの最新のRUをインストールするには、最新のRUを適用するOracleホームにまずOracle Database 23aiをインストールしておく必要があります。パッチ適用の要件およびオプションの詳細は、ソフトウェア更新のダウンロード・リファレンスを参照してください:

Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc ID 2118136.2)

パッチでは、通常は、前のRUより後にリリースされたJava Development Kit (JDK)修正が含まれており、Oracleホーム内のJDKが更新されます。

UTL_URI.ESCAPEファンクションは、RFC 3896に準拠するようになり、#を予約文字として扱います。詳細については、以下を参照:

UTL_URI.ESCAPE function is now compliant with RFC 3896 and will treat "#" as a reserved character (Doc ID 2981395.1)

Oracle Grid InfrastructureおよびOracle RAC ClusterメンバーでのOracle Inventoryの検証

パッチ適用を開始する前に、Gridホーム、およびパッチを適用する各Oracleホームについて、インベントリ情報の整合性を確認します。このコマンドをそれぞれのOracleホーム所有者として実行し、整合性を確認します。ここでの<ORACLE_HOME>はOracleホームまたはGridホームです:

$ <ORACLE_HOME>/OPatch/opatch lsinventory -detail -oh <ORACLE_HOME>

このコマンドが成功すると、そのホームにインストールされているOracleコンポーネントがリストされます。パッチ適用を開始する前のインベントリの状態がわかるように、その出力を保存します。

このコマンドが失敗した場合は、Oracle Supportに問い合せてください。

システム要件の確認

OPatchを起動する前に、必要な環境依存性があることを確認してください。

$PATH定義に次の実行可能ファイルがあることを確認します:

  • make
  • ar
  • ld
  • nm

これらの実行可能ファイルの場所は、ご使用のオペレーティング・システムによって異なります。多くのオペレーティング・システムでは、これらは/usr/ccs/binにあります。ご使用のパス環境にそれらの実行可能ファイルの場所が含まれていることを確認します。次に例を示します:

export PATH=$PATH:/usr/ccs/bin

個別パッチの競合の検出と解決

OPatchを実行する前に、個別(1回かぎり)パッチの競合を検出し解決する必要があります。

パッチ検索には、My Oracle Supportの検索結果ページにある「パッチと更新版」タブの「パッチの推奨」およびパッチ計画機能を使用することをお薦めします。これらの機能は、リリース更新(RU)と競合する個別パッチがOracleホームにあるかどうかを特定するためと、必要な競合解決パッチを入手するための最も速い簡単な方法です。「パッチの推奨」およびパッチ計画機能は、My Oracle Support Configuration Managerと連携して動作します。これらの機能についての録画されているトレーニング・セッションがMy Oracle Supportにあります:

My Oracle Support How-to Video Training Series (Doc ID 603505.2)

My Oracle Supportのパッチ計画を使用しない場合は、My Oracle Supportの競合チェッカ・ツールにより、OPatchインベントリをアップロードし、競合のために環境に適用する必要があるパッチを確認できます。

このツールの使用の詳細は、次を参照してください:

How to Use the My Oracle Support Conflict Checker Tool for Patches Installed with OPatch. (Doc ID 1091294.1)

このツールを使用する手順は、次のとおりです:

  1. Oracle Supportからパッチをダウンロードします。パッチは、<patchnumber>_<version>_<platform>.zipという形式のzipアーカイブ・ファイル形式ファイルです。ここでの<patchnumber>はパッチの8桁の番号であり、<version>はパッチの提供対象のOracleソフトウェアのリリースであり、<platform>はパッチを適用できるオペレーティング・システム・プラットフォームです。たとえば、p12345678_23.0.0.0.0_Linux-x86-64のようになります。

  2. パッチを解凍し、OPatchコマンドopatch prereq CheckConflictAgainstOHWithDetailを使用して、現在インストールしてある個別パッチが、インストールされるパッチと競合するかどうかを確認します。たとえば、パッチがp12345678_23.0.0.0.0_Linux-x86-64の場合:

    unzip p12345678_23.0.0.0.0_Linux-x86-64.zip
    cd % ARU_TrackingBug %
    opatch prereq CheckConflictAgainstOHWithDetail -ph ./
    
  3. レポートを確認します。競合がある場合は、レポートで、競合するパッチ、およびスーパーセットであるパッチが示されます。

  4. 競合するパッチごとに、パッチの競合を解決します。競合解決パッチがすでに入手可能になっているかどうかと、新しい競合解決パッチをリクエストする必要があるかどうか、または競合が無視される可能性があるかどうかを確認します。他の競合解決パッチが必要な場合は、それらが入手可能になるまで待ってから続行する必要があります。

    パッチの競合を解決するには、次のMy Oracle Supportドキュメントを使用します:

    データベース・パッチ競合解決(ドキュメントID 1321267.1)

パッチの競合を解決したか個別競合解決パッチを受け取った後に、Oracleソフトウェアの更新を続行できます。

OPatchの使用によるシングル・インスタンス・データベースでのソフトウェアの更新

パッチの競合を解決した後は、OPatchを使用してソフトウェアを手動で更新できます。

ご使用のOracleソフトウェア・リリース用の最新のOPatchバージョンを使用することをお薦めします。

シングル・インスタンス・データベースの場合は、次のステップに従います:

  1. 更新するOracleホームに関連付けられているデータベースおよびすべてのリスナーを停止します。データベースとリスナーの停止の詳細は、『Oracle Database管理者ガイド』を参照してください。

  2. 現在のディレクトリをパッチを配置するディレクトリに設定し、次のコマンドを入力することでOPatchユーティリティを実行します。ここでの<patchnumber>はパッチの8桁の番号であり、<version>はパッチの提供対象のOracleソフトウェアのリリースであり、<platform>はパッチを適用できるオペレーティング・システム・プラットフォームです。

    unzip p<patchnumber>_<version>_<platform>.zip
    cd p<patchnumber>_<version>_<platform>
    opatch apply
    

    次に例を示します:

    unzip p12345678_23.0.0.0.0_Linux-x86-64.zip
    cd p12345678_23.0.0.0.0_Linux-x86-64
    opatch apply
    

    パッチ更新が正常に終了するのを待ちます。

    エラーがある場合は、「既知の問題」を参照してください。

  3. パッチが正常にインストールされた後は、パッチ競合解決個別パッチを入手してあれば、パッチ競合があるか確認してから、それらを適用します。

必要なパッチをインストールしたら、次のステップを実行します:

  1. 「データベースへの変更済SQLファイルのロード」の説明に従って、変更されたSQLファイルをデータベースにロードします。
  2. 「Oracle Recovery Managerカタログのアップグレード」の説明に従って、Oracle Recovery Managerカタログをアップグレードします。
  3. Managing "installed but disabled" bug fixes in Database Release Updates using DBMS_OPTIM_BUNDLE (Doc ID 2147007.1)の説明に従って、既存のオプティマイザ実行計画を変更する可能性があるバグ修正を確認します。

エラーがある場合は、「既知の問題」を参照してください。

データベースへの変更済SQLファイルのロード

OPatchを使用してデータベース・メンテナンスを実行する場合は、datapatchツールを手動で実行して、変更されたSQLファイルをそのツールでデータベースにロードできるようにする必要があります。

Datapatchは、RDBMSパッチのパッチ適用後SQLアクション(変更されたSQLファイルをデータベース・レジストリにロードするスクリプトの実行など)を実行するパッチ適用ツールです。Datapatchでは、データベースの更新後に必要なインストール後ステップが識別され、必要に応じてデータベース内のSQL変更が適用および削除またはロールバックされます。新しいバイナリ・パッチのインストール後にパッチ適用後アクションを完了するために自動的にDatapatchがコールされデータベースが再起動される、OPatchAutoによるメンテナンス操作とは異なり、OPatchの実行後はDatapatchを手動で実行する必要があります。

Datapatchの詳細は、次を参照してください:

  • Datapatch: Database 12c or later Post Patch SQL Automation (Doc ID 1585822.1)
  • Datapatch User Guide (Doc ID 2680521.1)
  1. マルチテナント環境内の同じOracleホームで実行されている複数のデータベースにパッチを適用している場合は、datapatchツールを実行します。この例では、-sanity_checksオプションを指定してdatapatchを実行します:

    % sqlplus /nolog
    SQL> Connect / as sysdba
    SQL> startup
    SQL> alter pluggable database all open; 
    SQL> quit
    % cd $ORACLE_HOME/OPatch
    % ./datapatch -sanity_checks
    % ./datapatch -verbose

    -sanity_checksオプションを指定してdatapatchを実行することをお薦めします。このオプションを指定して起動すると、datapatchで、環境およびデータベースの一連のチェックが実行されて、状態がパッチ適用に最適かどうかが検証されます。結果が画面に表示されて、実行可能なアクションの重要度と推奨事項が示されます。この機能の詳細は、次を参照してください:

    Datapatch User Guide (Doc ID 2680521.1)

    また、マルチテナント環境内のすべてのプラガブル・データベース(PDB)に対してdatapatchを同時に実行することをお薦めします。ただし、個々のプラガブル・データベースに対してdatapatchを実行することもできます。これを実行することにした場合、datapatchは、マルチテナント・コンテナ・データベース(CDB)およびオープンされているプラガブル・データベース(PDB)に対してのみ実行されます。その後、現時点で更新されていないPDBをalter pluggable database文の使用によって更新し、後でdatapatchツールを再度実行してそれらのPDBに対するパッチ適用後SQLアクションを完了する必要があります。参照:

    Multitenant Unplug/Plug Best Practices (Doc ID 1935365.1)

    datapatchユーティリティでは、変更されたSQLファイルをデータベースにロードするための適用スクリプトが実行されます。dba_registry_sqlpatchビューにエントリが追加されて、パッチ適用が記録されます。

  2. dba_registry_sqlpatchビューで、APPLYステータスSUCCESSであることを確認します。その他のステータスについては、次を参照してください:

    Troubleshooting Assistant:12c Datapatch Issues (Doc ID 2335899.2)

  3. datapatchの完了後、その出力を確認して、エラーがレポートされたかどうかを確認します。datapatchの出力には、インストールされたパッチのログ・ファイルの場所が含まれています。その特定のdatapatchプロセスの関連ログ・ファイルはすべて、sqlpatch_invocation.logと同じディレクトリにあります。出力の最初の行でこの起動のログ・ファイル:を確認します。

Oracle Recovery Managerカタログのアップグレード

Oracle Recovery Managerを使用している場合は、そのカタログをアップグレードする必要があります。

アップグレードを確定するため、UPGRADE CATALOGコマンドは2回入力する必要があります。

次のコマンドを入力します。

$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
RMAN> UPGRADE CATALOG;
RMAN> EXIT;

既知の問題

OPatchの実行中に発生した問題が既知の問題であるかどうかを確認する方法について学習します。

OPatchの既知の問題については、次を参照してください:

Primary Note For OPatch (Doc ID 293369.1)

インストールしたリリース更新(RU)またはパッチ・バージョンのリリースより後に記載された問題については、インストールしたリリース更新(RU)またはパッチ・バージョンのREADMEを確認してください。

ドキュメントのアクセシビリティについて

Oracleサポート・サービスへのアクセス