Oracle Databaseへのパッチ適用

Oracle Databaseにパッチを適用するには、データベース・ホームを、実装するパッチが含まれる新しいホームに移動します。

1つ以上のデータベース・ホームを同じリリース・レベルのデータベースの作業用コピーに移動するには、rhpctl move databaseコマンドを使用します。データベースは、作業用コピー、またはフリート・パッチ適用およびプロビジョニングで管理されていないOracle Databaseホームで実行できます。
移動操作がフリート・パッチ適用およびプロビジョニング・サーバーまたはクライアントで開始される場合、移動先のバージョンは、ゴールド・イメージの作業用コピーである必要があります。フリート・パッチ適用およびプロビジョニング・サーバーが存在しない環境で独立オートマトンを使用してこの操作を実行することもできます。この場合、ソース・ホームおよび宛先ホームはゴールド・イメージの作業用コピーではありませんが、フリート・パッチ適用およびプロビジョニングを使用する以外の方法でデプロイした2つのインストール済ホームです。
データベースの移動先の作業用コピーは、現在のデータベース・ホームよりも低いパッチ・レベルにすることができます。これにより、高いレベルのパッチが適用されたホームに移動した後で問題が発生した場合に、ロールバックが容易になります。
データベース・ホームの移動先の作業用コピーは、元の作業用コピーと同じパッチ・レベルにすることができます。このことは、ある記憶域の場所から別の記憶域の場所にデータベース・ホームを移動する場合や、同じパッチ・レベルを維持して管理対象外のホームを管理対象のホームに変換する場合に役立ちます。
フリート・パッチ適用およびプロビジョニングでは、すべてのパッチがアウトオブプレースで適用されることで、メンテナンスに必要な停止時間が最小化されます。また、フリート・パッチ適用およびプロビジョニングでは、現在の構成が保持されるため、前述のロールバック機能を使用できます。デフォルトでは、フリート・パッチ適用およびプロビジョニングでは、パッチがローリング方式で適用されるため、サービスの停止時間が削減され、多くの場合解消されます。非ローリング・モードでパッチ適用を実行するには、-nonrollingオプションを使用します。 こうすると、古いORACLE_HOMEデータベースでデータベースが完全に停止してから、新しくパッチ適用されたORACLE_HOMEから再起動して実行されます。

ノート:

パッチ適用プロセスの一部には、データパッチの適用が含まれます。Oracle Database 12c リリース1 (12.1)以降を移動する場合、フリート・パッチ適用およびプロビジョニングでこのステップが自動的に完了します。ただし、Oracle Database 12c リリース1 (12.1)より前のバージョンに移動する場合は、手動でデータパッチを実行する必要があります。フリート・パッチ適用およびプロビジョニングではOracle Data Guardが認識され、Oracle Data Guardスタンバイにはデータパッチは適用されません。

データベースへのパッチ適用のワークフロー

DB122というOracle Database 12c リリース2 (12.2)のゴールド・イメージから作成された作業用コピーでmyorcldbというデータベースが実行されているとします。Oracle Databaseホームにパッチを適用する一般的なワークフローは次のとおりです。
  1. パッチを適用するOracle Database (この場合、DB122)の作業用コピーを作成します。
  2. 作成した作業用コピーにパッチを適用します。
  3. パッチが適用された作業用コピーをテストおよび検証します。
  4. パッチが適用された作業用コピーからゴールド・イメージ(DB122_PATCHなど)を作成するには、rhpctl add imageコマンドを使用します。

    ノート:

    前述のコマンドで指定する作業用コピーは、フリート・パッチ適用およびプロビジョニング管理の記憶域でフリート・パッチ適用およびプロビジョニング・サーバーにホストされている必要があります。
  5. rhpctl delete workingcopyコマンドを使用して、パッチが適用されたOracle Databaseとともにパッチが適用された作業用コピーを削除します。

    ノート:

    rmコマンドなどのいくつかの方法では、フリート・パッチ適用およびプロビジョニング・インベントリの情報が更新されないため、これらの方法を使用して直接削除しないでください。
  6. パッチが適用されたゴールド・イメージ(DB122_PATCH)から作業用コピーを作成します。
  7. 作成した作業用コピーにmyorcldbを移動します。
  8. 手順の開始時にデータベースが実行されていた作業用コピーにロールバックする必要がないことがわかっている場合は、rhpctl delete workingcopyコマンドを使用してその作業用コピーを削除します。

Data Guard環境でのOracle Databaseへのパッチ適用

Oracle Fleet Patching and Provisioningサーバーでは、データベースのロールでdatapatchの実行が許可されているかどうかをチェックし、それに応じて動作します。たとえば、データベース・ロールがプライマリの場合、Oracle FPPでは移動プロセスの最後にdatapatchを実行し、データベース・ロールがフィジカル・スタンバイの場合はdatapatchを実行しません。

ただし、Oracle FPPはスタンバイ・トポロジを認識せず、スタンバイの場所にある作業用コピーのパッチ適用レベルをチェックしません。プライマリ・データベースを移動する前に、スタンバイ・データベースが常にパッチ適用済の作業用コピーに移動されるようにする必要があります。また、スタンバイ・データベースをパッチ適用済の作業用コピーに移動し、プライマリ・データベースをパッチ適用済の作業用コピーに移動する前にスイッチオーバーまたはフェイルオーバーが発生した場合、プライマリ・データベースでdatapatchが実行されていない可能性があります。これは、ロールがフィジカル・スタンバイだったときに、どちらのサイトもパッチ適用済の作業用コピーに移動されたためです。この場合、プライマリ・データベースでdatapatchを手動で実行する必要があります。

バッチを使用したOracle Databaseへのパッチ適用

データベースへのパッチの適用中に、フリート・パッチ適用およびプロビジョニングによって、ノードのバッチを順次処理し、各バッチの多数のノードをパラレルで再起動できます。この方法により、パッチ適用プロセス中のサービスの可用性が最大化されます。コマンドラインでバッチを定義することも、クラスタで実行されているデータベース・サービスの分析に基づいてフリート・パッチ適用およびプロビジョニングでバッチのリストを生成することもできます。

OJVMデプロイメントのアダプティブOracle RACローリング・パッチ適用

クラスタ化環境で、フリート・パッチ適用およびプロビジョニングによりデータベース保守を適用するデフォルトの方法は、Oracle RACローリングです。ただし、新しい(パッチ適用対象の)データベース・ホームにOJVMパッチが含まれる場合、非ローリングが必要になることがあります。この場合、フリート・パッチ適用およびプロビジョニングにより、ローリング方式が可能かどうか判別され、可能な場合はローリングが行われます。(詳細は、MOS Note 2217053.1を参照してください。)