緊急パッチ適用

フリート・メンテナンスで緊急パッチ適用の実行が可能になりました。緊急パッチ適用は、通常のメンテナンス・サイクルのパッチ適用のかわりにはなりません。非クリティカルなパッチは、次回のバージョンのイメージに含めるようにフラグ設定する必要があります。

緊急パッチが適用されたデータベースは、ドリフトされたデータベースとしてラベルが付けられ、次回のメンテナンス・サイクルで変更内容を新しいバージョンのイメージにローリングするか、最新バージョンでオーバーライドすることで調整する必要があります。

フリート・メンテナンスで緊急パッチを適用する場合、新しいバージョンのゴールド・イメージを作成する必要はありません。緊急パッチが必要なデータベースは、スケジュール済メンテナンスに使用されるプロセスと同様に、新しいホームに切り替えられます。問題のデータベースを新しいホームに切り替えることで、元のホームで機能しているデータベースに影響を与えることなく分離してパッチ適用できます。

緊急パッチ適用ステップの概要

  1. 適用する緊急パッチの完全なリストを準備します。
    1. 必要な緊急パッチを特定します。
    2. 適用済のパッチと適用するパッチのリストの間の競合を特定してマージします。
    3. Oracle Supportにマージ・パッチをリクエストします(必要な場合)。
    4. 目的のすべてのパッチが入手可能になったら、すべてのパッチをソフトウェア・ライブラリにダウンロードします。
  2. 緊急パッチとともにソフトウェアを新しいホームにデプロイします。
  3. 緊急パッチ適用済のデータベースを新しいホームに切り替えます。

緊急パッチとソフトウェアの同時デプロイ

単一インスタンス・データベース
emcli db_software_maintenance 
-performOperation 
-name="Deploy - Critical one-off 12345"
-purpose=EMERGENCY_DEPLOY_DB_SOFTWARE  
-target_type='oracle_database' -target_list="DB1" 
-normal_credential="<normal credential>" 
-privilege_credential="<host privilege credential>"
-inputfile="data:/<user>/oracle/deploy.txt" 
-patch_list=<List of conflict-free patches in the software library>
説明:
  • PURPOSEには、EMERGENCY_DEPLOY_DB_SOFTWAREを設定する必要があります。
  • PATCH_LISTは、patchID:ReleaseID:PlatformID:LanguageIDの形式にする必要があります。ReleaseIDPlatformIDLanguageIDは、オプションの引数です。
  • INPUTFILEには、次の項目が含まれている必要があります:
    • NEW_ORACLE_HOME_LIST=<Emergency home location>
    • DISPATCHER_LOC=<Dispatcher location>
    • PATCH_LIST=<List of conflict-free patches in the software library>
RACデータベース
emcli db_software_maintenance -performOperation -name="Deploy - Critical one-off 12345"
-purpose=EMERGENCY_DEPLOY_RAC_SOFTWARE
-target_type='rac_database' -target_list="DB1"
-normal_credential="<normal credential>"
-privilege_credential="<host privilege credential>"
-inputfile="data:/<user>/oracle/deploy.txt"
-patch_list=<List of conflict-free patches in the software library>
説明:
  • PURPOSEには、EMERGENCY_DEPLOY_RAC_SOFTWAREを設定する必要があります。
  • patch_listは、コマンドライン引数として渡すことも、入力ファイルのパラメータとして渡すこともできます。入力ファイルのパラメータの場合、パラメータは大文字で定義する必要があります。

データベースの緊急ホームへの切り替え

データベースを切り替えるには、UPDATE_DBコマンドを実行する必要があります。このコマンドにより、パッチを適用するデータベースを新しい空のホームに移動します。
emcli db_software_maintenance -performOperation -name="Update DB"
-purpose=UPDATE_DB  
-target_type=oracle_database 
-target_list="DB1"
-normal_credential="<normal credential>"
-privilege_credential="<host privilege credential>"
-destinationOracleHomeLocation=<path of the new Oracle Home Location>
-force=<true/false>
forceフラグは、デフォルトでfalseに設定されています。このフラグは、ターゲットがイメージにサブスクライブされていて、それでもデータベースを緊急ホームに切り換える必要がある場合に必須です。

新しいバージョンのイメージの公開

アップロードしたイメージは、デフォルトでDRAFTになります。管理者は、それを公開するために明示的にCURRENTのマークを付ける必要があります。そのためには、次のコマンドを実行します。
emcli db_software_maintenance 
-updateVersionStatus
-version_id=<version_id> 
-status=CURRENT
説明
  • version_idは、データベースに適用されるパッチのターゲット・バージョンです。

緊急パッチのロールバック

ロールバックが必要な場合、データベースは元の未変更のホームに戻されます。これにより、ロールバックによってソフトウェアとそのファイルの権限が正しく元に戻されたかどうかについての混乱を回避できます。
emcli db_software_maintenance 
-performOperation -purpose="ROLLBACK_DB"
-target_list="DB1" 
-target_type=oracle_database 
-name="RollbackDB"
-description="Relocates the DB from inactive CDB  to newly active CDB"
-normal_credential="<normal credential>"  
-privilege_credential="<host privilege credential>"
-database_credential="<Database credential>"