更新操作

更新操作は、フリート・メンテナンス内で実行される最も一般的な操作です。サポートされるUPDATEシナリオには、更新とアップグレードの2種類があります。更新はOracleホームをあるパッチ・セットから別のパッチ・セットに移行する小さな改善操作ですが(19.17.0から19.19.0など)、アップグレードはOracle Databaseをあるメジャー・リリースから別のメジャー・リリースに移行する大きな改善操作です(12.2.0.1から19.19、18.xから19.xなど)。ゴールド・イメージの作成、イメージ・サブスクリプション、イメージのデプロイなどのすべてのステップは変わりません。

EM CLIを使用して更新操作を開始する前に、ターゲットのサブスクライブ済イメージの最新バージョンがデプロイされていることを確認してください。

ノート:

  • 現在、アップグレードではノードごとの更新はサポートされません。データベース・アップグレードのupdateコマンドでは、データベース資格証明をコマンドの一部として指定する必要があります。
  • RACまたはGIの更新およびアップグレードを実行する場合、2つのノード間で共有の場所ではない作業ディレクトリを指定することがベスト・プラクティスとなります。これにより、チェックポイント・ファイルと潜在的な更新の失敗が上書きされるのを回避できます。
  • リスナーがカスタムの場所にある場合は、UPDATE操作を実行する前に、その場所をTNS_ADMIN環境変数に設定します。その後、エージェントを再起動して、これらの操作を続行します。
  • データベースまたはRACの更新時に静的エントリを更新する必要がある場合、listener.oraがグリッドOracleホームのデフォルトの場所($GI_HOME/network/admin)にあると、通常資格証明(DBホーム所有者など)は機能しません。これは、ファイルの所有者がGridホーム所有者であるためです。ファイルに、少なくともグループ・レベルでデータベースとGridのOracleホーム・ユーザーの両方によって変更される権限があることを確認してください。
  • サポートされているアップグレード・パスについては、Oracle Databaseアップグレード・ガイドを参照してください。
  • Enterprise Manager 13cリリース5更新5 (13.5.0.5)以降、フリート・メンテナンスを使用して非コンテナ・データベース(CDB)を新しいプラガブル・データベースに更新できるようになりました。「操作」非CDBをプラガブル・データベースとしてアップグレードを選択して、このタイプのアップグレードで使用可能なデータベースをフィルタします。このタイプのアップグレードでは、非CDBデータベースを取得し、新しいPDBにアップグレードします。ステップ・バイ・ステップのチュートリアルについては、Oracle Enterprise Managerのフリート・メンテナンス・グラフィック・ユーザー・インタフェースを使用したOracleプラガブル・データベースのパッチ適用を参照してください。
  • Enterprise Manager 13cリリース5更新17 (13.5.0.17)以降では、フリート・メンテナンスUIを使用してロジカル・スタンバイ・データベースのアップグレードを実行する必要があります。非ローリング更新は、メインのデータベース・メニューから使用できなくなりました。
  • Enterprise Manager 13.5リリース更新19 (13.5.0.19)以降では、単一インスタンス・データベースまたはRACデータベースでのUPDATE/ROLLBACK操作の前後に、デプロイメント・プロシージャのアクティビティ・ログに、検出された無効なオブジェクトの数が含まれます。

UPDATE_DB

このコマンドでは、Oracle DatabaseをOracleホームから新しく作成したゴールド・イメージの標準Oracleホームに移動します。
emcli db_software_maintenance 
-performOperation -purpose=”UPDATE_DB” 
—target_list=”db1221” 
—target_type=”oracle_db” 
—name=”Operation Name” 
–description=”Operation description” 
-normal_credential="NORMAL:SYSMAN" 
-privilege_credential=”PRIV:SYSMAN” 
—database_credential=”DB_SYS_CREDS:SYSMAN”

ノート:

Windows単一インスタンス・データベースの更新操作では、privilege_credentialのかわりにwindows_sec_credential="Named Credential: Credential Owner"を使用します。Enterprise Manager 13リリース更新2から、 –is_virtual_account="true"または–is_builtin_account="true"アカウントを使用することもできます。
:
emcli db_software_maintenance -performOperation -name="Update SIDB" -purpose=UPDATE_DB 
-target_type=oracle_database -target_list="ORCL1910.abc.sample.com" -rolling=false 
-normal_credential="LOCALADMIN:SYSMAN" -windows_sec_credential="LOCALUSERCRED:SYSMAN" 
-database_credential="SYSDBA:SYSMAN"
emcli db_software_maintenance -performOperation -name="Update SIDB" -purpose=UPDATE_DB 
-target_type=oracle_database -target_list="ORCL1910.abc.sample.com" -rolling=false 
-normal_credential="LOCALADMIN:SYSMAN" 
–is_virtual_account="true" -database_credential="SYSDBA:SYSMAN"
emcli db_software_maintenance -performOperation -name="Update SIDB" -purpose=UPDATE_DB 
-target_type=oracle_database -target_list="ORCL1910.abc.sample.com" -rolling=false 
-normal_credential="LOCALADMIN:SYSMAN" –is_builtin_account="true" 
-database_credential="SYSDBA:SYSMAN"

UPDATE_PDB

先行コンテナから新しく使用可能になった後継コンテナに、プラガブル・データベースを移動します。これは、CDBのアタッチ/CDBのデプロイ操作が実行されている場合にのみ実行できます。
emcli db_software_maintenance 
-performOperation -purpose=”UPDATE_PDB” 
—target_list=”pdb1331” 
—target_type=”oracle_pdb” 
—name=”Operation Name” 
–description=”Operation description” 
-normal_credential="NORMAL:SYSMAN" 
-privilege_credential=”PRIV:SYSMAN” 
—database_credential=”DB_SYS_CREDS:SYSMAN”

UPDATE_GI

emcli db_software_maintenance 
-performOperation 
-name="Update Cluster" 
-purpose=UPDATE_GI 
-target_type=cluster 
-target_list= CLUSTER1 
-normal_credential="NC_HOST_CREDS:SYSMAN" 
-privilege_credential="HOST_PRIV:SYSMAN" 
-node_list="host1.example.com" 
–startupDatabase=<true/false>
-SKIP_CVU_CHECK=<true/false>
-drain_timeout=<seconds>
UPDATE_GIのユースケースと詳細な説明は、「ノードごとのRACデータベース/クラスタの更新」を参照してください

SKIP_CVU_CHECK: このフラグを使用すると、CVUチェックをスキップできます(trueに設定した場合)。UPDATE_GI操作とUPDATE_SIHA操作にのみ使用されるオプションのフラグです。

UPDATE_GI操作を実行し、-target_listで複数のクラスタを渡す必要がある場合、-node_listはサポートされません。

サービスの中断を回避するために、Oracle Grid Infrastructureのパッチ適用はほとんどの場合ローリング方式で実行されます。パッチが適用されているノードで、データベース・インスタンスは停止されます。ただし、RACデータベースは残りのノードで稼働し続けます。

Oracle Grid Infrastructureは、サービスの中断を回避するためにローリング方式でパッチを適用します。データベース・インスタンスはパッチが適用されるノードでのみ停止され、RACデータベースは残りのノードで引き続き実行されます。Oracle Enterprise Manager 13.5リリース更新17 (13.5.0.17)フリート・メンテナンス以降、DRAIN_TIMEOUTパラメータを使用して、パッチ適用対象のノードの全体的な停止時間を短縮できます。UPDATE_GIおよびUPDATE_RACDBの場合、グリッド・インフラストラクチャ機能を利用して、1つのノード上のインスタンスをパラレルに停止できます。db_software_maintenance EM CLI動詞を使用する場合は、DRAIN_TIMEOUT値(秒)を定義します。DRAIN_TIMEOUTパラメータが指定されていない場合は、サービス作成時に指定されたデフォルトの排出時間が使用されます。

排出時間を秒単位で指定する場合、リソースの排出が完了してサービスが停止できるようにするには、次の値が受け入れられます:
  • DRAIN_TIMEOUT=0: すぐに排出が発生し、データベース・インスタンスはただちに停止されます。
  • DRAIN_TIMEOUT=<time>: データベース・インスタンスが停止するまでに排出を実行できる時間(秒)。
  • 入力ファイルにDRAIN_TIMEOUTが指定されていないと、データベース・サービス作成時に指定されたデフォルトの排出タイムアウトが使用されます。このオプションがデフォルトです。

UPDATE_GIMR

ノート:

Oracle Database 21c以降、GIMR更新はGI更新またはパッチ適用から分離されるようになりました。GIとGIMRの両方の更新は、2つの個別の操作で行われます。
GIMR更新を開始する前に、「Oracle Grid Infrastructureデータベースのデプロイ」で説明されているDEPLOY_GIMR_SOFTWARE命令を完了していることを確認してください。
emcli db_software_maintenance 
-performOperation 
-name="Update GIMR 21c"
-purpose=UPDATE_GIMR 
-target_type=cluster  
-target_list= <cluster  target name>
-normal_credential="NC_HOST_CREDS:SYSMAN" 
-privilege_credential="HOST_PRIV:SYSMAN"  

UPDATE_RACDB

UPDATE_RACDBのEM CLIコマンド形式:
emcli db_software_maintenance -performOperation -name="Update RAC DB" 
-purpose=UPDATE_RACDB 
-target_type=<target_type> 
-target_list==<List of targets> 
-normal_credential="NC_HOST_CREDS:SYSMAN" 
-privilege_credential="HOST_PRIV:SYSMAN" 
-database_credential=<SYSDBA credentials of the database>
-rolling=<true/false> 
-node_list="host1.example.com"
-drain_timeout = <time in seconds>
  • node_list: インスタンスを更新する必要があるホストのカンマ区切りのリストです。

    たとえば、RACDBが4ノードのクラスタ(host1host2host3およびhost4)で実行されていて、一度に2つのホストのインスタンスのみを更新することを選択した場合、このパラメータの値はnode_list="host1, host2"として指定する必要があります。

  • drain_timeout: このオプションのパラメータは、ローリング/非ローリングの両方のユース・ケースに使用できます。EM CLI引数として渡すことも、input_fileパラメータとして渡すこともできます。この排出パラメータでは、リソースの排出アクションを完了するために許容される時間を秒単位で表します。デフォルトでは、このパラメータは設定されていません。

    ノート:

    これはオプションのパラメータです。日付を指定しない場合、フリート操作は即座に開始されます。
プライマリ・データベースとスタンバイ・データベースについては、Enterprise Managerの「ローリング・アップグレード」ユーザー・インタフェースからアップグレードを実行する必要があります。このウィザードは、ターゲット・データベースのホームページ(プライマリまたはスタンバイ・データベース)から起動できます。データベースのホームページで、「Oracle Database」「プロビジョニング」「データベースをアップグレード」の順に選択します。

UPGRADE_DB

この目的は、非CDBからPDBへの移行にのみ使用します。

emcli db_software_maintenance 
-performOperation -purpose=”UPGRADE_DB” 
—target_list=”db1916” 
—target_type=”oracle_db” 
—name=”Operation Name” 
–description=”Operation description” 
-normal_credential="NORMAL:SYSMAN" 
-privilege_credential=”PRIV:SYSMAN” 
—database_credential=”DB_SYS_CREDS:SYSMAN”
-migrate_non_cdb_pdb="true"

ノート:

migrate_non_cdb_pdbは、ソース・バージョンが20c未満のプラガブル・データベースにデータベースを移行する場合にのみ使用されます。

UPGRADE_RACDB

この目的は、非CDBからRACへの移行にのみ使用します。

emcli db_software_maintenance 
-performOperation -purpose=”UPGRADE_RACDB” 
—target_list=”db1221” 
—target_type=”oracle_db” 
—name=”Operation Name” 
–description=”Operation description” 
-normal_credential="NORMAL:SYSMAN" 
-privilege_credential=”PRIV:SYSMAN” 
—database_credential=”DB_SYS_CREDS:SYSMAN”
-migrate_non_cdb_pdb="true"

ノート:

migrate_non_cdb_pdbは、ソース・バージョンが20c未満のプラガブル・データベースにデータベースを移行する場合にのみ使用されます。

フリート・メンテナンスでの透過的データ暗号化(TDE)のサポート

フリート・メンテナンスでは、TDEを使用して暗号化された表を含むデータベース、コンテナ・データベースおよびプラガブル・データベースの更新がサポートされるようになりました。

Oracle Databasesおよびコンテナ・データベースの場合、oracle_database Target_typeを使用して、UPDATE_DB中に入力ファイル-input_file="data:/<file pathc>/input.properties"にTDEウォレット・パスワードを指定する必要があります

例: srcWalletPassword=welcome123

ノート:

  • -database_credentialが指定されていない場合、SQL*Plusを使用してデータベースに接続してTDE構成が検証されます。
  • ウォレット・ステータスがCLOSEDの場合、TDE構成はスキップされます。
  • 移行が完了したら、ウォレット・ステータスを確認します。ステータスが「クローズ済」の場合は、ウォレット・ファイルを手動で開き、データベース内の暗号化されたデータにアクセスします。

Oracleプラガブル・データベースの場合(oracle_pdb Target_typeを使用):

  • UPDATE_PDBの実行時に、既存のフラグ-database_credential="DB_SYS_CREDS:SYSMAN"を使用してデータベースの資格証明を指定する必要があります。データベースの資格証明が指定されない場合は、優先資格証明が使用されます(設定されている場合)。
  • 更新先のCDBにTDEがすでに構成されている必要があります
  • UPDATE_PDBでは、入力ファイル-input_file="data:/scratch/input.properties"にTDEウォレットのソースおよび更新先のパスワードを指定する必要があります。

    例: srcWalletPassword=welcome123, destWalletPassword=welcome123