デプロイ操作

デプロイ操作は、フリート・メンテナンス内で実行して、データベースのデプロイメントを単純化します。これが短時間で実行できる理由は、ゴールド・イメージ(現行の標準を示す「Current」のマークが付いているバージョンのイメージ)は、パラレルOracleホームにコピーされてから、パッチ適用済の新しいOracleホームになるためです。このコマンドは、パラレルOracleホームを作成してそこにゴールド・イメージをコピーするために使用します。言い換えると、このコマンドを使用すると、サブスクライブしているOracleホーム上で新しいOracleホームをステージングおよびデプロイできます。デプロイコマンドは、新しいOracleホームの作成時にCURRENTバージョンのサブスクライブ・イメージを自動的に使用します。このトピックでは、各種のデプロイメント操作の例について説明します。

EM CLI動詞db_software_maintenanceのデプロイ演算子の詳細は、Enterprise Managerコマンドライン・インタフェースdb_sm_performoperation_deployに関する項を参照してください。

デプロイ命令の一般的なレイアウトは、次のとおりです。

emcli db_software_maintenance 
-performOperation
-name=<User specified Operation name>
-purpose=<Operation Type>
-target_type=<type of target>
-target_list=<list of targets>
-normal_credential=<Named Credential: Credential Owner>
-privilege_credential=<Named Credential: Credential Owner>
[-windows_sec_credential=<Named Credential: Credential Owner>]
-input_file="data:<location of input file>"
[-standbyAutoDeploy=true|false] [-procedure_name_prefix="CustomUpdate"]
  • name: これは操作の一意の名前です。
  • purpose: この命令の目的。この場合は、DEPLOY:
    • DEPLOY_DB_SOFTWARE
    • DEPLOY_RAC_SOFTWARE
    • DEPLOY_SIHA_SOFTWARE
    • DEPLOY_GI_SOFTWARE
    • DEPLOY_CBD
    .
  • target_type: この操作が実行されるターゲットのタイプ。有効な値については、エンティティ・タイプに基づくEM CLIコマンド入力の表を参照してください。
  • target_list: これはパッチを適用する必要があるターゲットのカンマ区切りのリストです。
    • 同種のタイプのターゲットは、単一のフリート操作でサポートされます。
    • このターゲット・リストに基づく一意のホストのリストが表示され、それらのホストでOracleホーム・ソフトウェアのステージングが開始されます。
    • 同じOracleホームから実行されているターゲットをこのリストに指定した場合、ステージング操作およびデプロイ操作はすべてのターゲットに対してトリガーされるのではなく、一度だけトリガーされます。
  • normal_credential: Unixのみ< Named Credential: Credential Owner>という形式で入力する必要があります。次に各要素の説明を示します。
    • <Named Credential>: 新しいOracleホームがデプロイされるホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。
  • privilege_credential: Unixのみ< Named Credential: Credential Owner>という形式で入力する必要があります。次に各要素の説明を示します。
    • <Named Credential>: 新しいOracleホームがデプロイされるホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。

    ノート:

    これらの資格証明は、スクリプトをルートとして実行するために使用されます。
  • windows_sec_credential: Windows単一インスタンス・データベースのみ。<Named Credential: Credential Owner>の形式で入力する必要があります。次に各要素の説明を示します。
    • <Named Credential>: 新しいOracleホームがデプロイされるホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。

    ノート:

    Enterprise Manager 13.5リリース更新2以降、Windows単一インスタンス・データベース(標準/ローカル・アカウント、仮想アカウントおよび組込みアカウント)では、3つの異なる資格証明がサポートされています。
    Windowsの例:
    • 標準/ローカル・アカウント:
      emcli db_software_maintenance -performOperation -name="Deploy a Patched Home" 
      -purpose=DEPLOY_DB_SOFTWARE -target_type=oracle_database -target_list="ORCL1910.abc.sample.com"  
      -input_file="data:/tmp/deploywin.properties" -normal_credential="LOCALADMIN:SYSMAN"
      -windows_sec_credential="LOCALUSERCRED:SYSMAN"
    • 仮想アカウント:
      emcli db_software_maintenance -performOperation -name="Deploy a Patched Home" 
      -purpose=DEPLOY_DB_SOFTWARE -target_type=oracle_database -target_list="ORCL1910.abc.sample.com"  
      -input_file="data:/tmp/deploywin.properties" -normal_credential="LOCALADMIN:SYSMAN" 
      –is_virtual_account="true"
    • 組込みアカウント:
      emcli db_software_maintenance -performOperation -name="Deploy a Patched Home" 
      -purpose=DEPLOY_DB_SOFTWARE -target_type=oracle_database -target_list="ORCL1910.abc.sample.com"  
      -input_file="data:/tmp/deploywin.properties" -normal_credential="LOCALADMIN:SYSMAN"
      –is_builtin_account="true"
  • start_schedule: ステージングおよびデプロイを開始する日付(将来開始する場合)です。"start_time:yyyy/mm/dd HH:mm"という書式を使用します。これはオプションのパラメータです。日付を指定しない場合、フリート操作は即座に開始されます。
  • standbyAutoDeploy: これは、デフォルト値がTrueのオプション・パラメータです。ターゲットがプライマリ・データベースの場合は、プライマリと同じゴールド・イメージ・バージョンを持つ新しいOracleホームが自動的にスタンバイ・ホストにデプロイされます。このパラメータは、falseと指定されると、スタンバイ・ホストでのソフトウェアの自動デプロイメントを無効にします。この値がfalseの場合、前述のEM CLIコマンドを使用して、スタンバイのステージング/デプロイを個別に実行できます。
  • procedure_name_prefix: これはオプションのパラメータです。デプロイメント・プロシージャ・インスタンス名にカスタム名を指定するために使用します。サポートされている操作は、DEPLOY、UPDATE、CLEANUPおよびROLLBACKです。
  • input_file: このファイルには次のエントリが含まれています。
    • NEW_ORACLE_HOME_LIST=<新しいOracleホームのファイル・システムの場所への絶対パス>
    • workingDir=<Name of temp directory>: これは、すべてのホスト上で新しいOracleホームがインストールされる場所です。資格証明所有者には、この場所への読取りおよび書込みアクセス権がある必要があります。

      NFSを使用してデプロイする場合、NFSでは、ローカル・マウントの場所として作業ディレクトリが使用されます。NFSは、Oracle Enterprise Manager 13.5リリース更新13 (13.5.0.13)以上で使用可能です。

    • homeNamePrefix=<User defined Oracle Home name>: カスタムのOracleホーム名の接頭辞を定義できるため、デプロイメント後にカスタム名を持つOracleホームを検出できるようになります。ホーム名の接頭辞を指定しない場合、デフォルト値が使用されます。この変数は、Oracle Enterprise Manager 13.5リリース更新20 (13.5.0.20)以降で使用可能です。
    • dispatchLoc=<Dispatch location>: スクリプトがホスト上でステージングされる場所です。これらのスクリプトは、rootユーザーが実行できます。
    • SKIP_PREREQUISITE_CHECKS=<true/false>: デフォルト値はfalseです。
    • SKIP_CVU_CHECK=<true|false>: デフォルト値はfalseです。
    • PREREQS_ONLY=<true/false>: デフォルト値はfalseです。これは、前提条件チェック中のエラーの特定に使用できます。値がtrueに設定されている場合、実際のデプロイメントは行われません。
    • dispatchLoc=<Absolute path to the custom location>: このパラメータは、既存の読取り専用の場所を使用してディスパッチャの場所をステージングして使用し、事前ステージングされているディスパッチャおよびフリート・スクリプトを使用する操作のために追加されています。これは、カスタム・スクリプトを使用してrootとしてのみ実行される追加のセキュリティ対策であり、少数のファイルを実行することのみが許可されます。
    • isRootPreStaged=<true/false>: このフラグにtrueを設定する場合は、ルート・コンポーネントをdispatchLocの場所に事前ステージングする必要があります。これは、コンポーネントがすでに手動で事前ステージングされている場合に、事前ステージングのステップをスキップするために役立ちます。

      ルートを事前ステージングするには、次のコンポーネントを事前ステージングおよび実行する必要があります。

      • ルート・ディスパッチャ・コンポーネント(Unixのみの要件)
      • ルート・スクリプト。dispatchLocの場所にスクリプトを解凍する追加ステップが必要となります。
      • 共通ルート・コンポーネント

      ルート・コンポーネントを事前ステージングする方法の詳細な手順は、「フリート・メンテナンスのための手動によるルート・コンポーネントのステージング(パッチ適用)」を参照してください。

      ノート:

      このフラグがfalseに設定されていて、コンポーネントが事前ステージングされている場合、コンポーネントは上書きされます
    • RUN_CVU_FROM_OH=<true/false>: デフォルトでは、クラスタ検証ユーティリティはOracleホームから実行されます。このフラグをfalseに設定すると、CUSTOM_CVU_COMPONENTと組み合せて使用されるソフトウェア・ライブラリからCVUを実行できるようになります。このフラグは、次の2つの場合にもfalseに設定します。
      • データベースのバージョンが12.1以前。該当するバージョンのoracleホーム・バイナリには、クラスタ検証ユーティリティが含まれていません。
      • スタンドアロンSIDB (単一インスタンス・データベース)。SIDB oracleホーム・バイナリには、クラスタ検証ユーティリティが含まれていません。
    • CUSTOM_CVU_COMPONENT=<Path of Custom CVU in the Software Library>: このコンポーネントはRUN_CVU_FROM_OH=falseと組み合せて使用し、カスタムのCVUが存在する場所からのパスを設定して、Oracleホームではなくソフトウェア・ライブラリからCVUを実行できるようにします。

Oracleホームのデプロイ

次の例では、Oracleホームのデプロイメントについて説明します。次に示すように、DEPLOY_DB_SOFTWAREのpurposeは、単一インスタンスのOracle Databaseおよびプラガブル・データベースの作成に使用できます。

emcli db_software_maintenance 
-performOperation 
-name="Deploy Home"
-purpose="DEPLOY_DB_SOFTWARE"
-target_type= <oracle_database or oracle_pdb>
-target_list=db1916
-normal_credential="NORMAL:SYSMAN"
-privilege_credential="ROOT:SYSMAN"
-input_file="data:/deploy_OH.txt"
-attach_home=true

ノート:

コンテナ・データベースおよびRACコンテナ・データベースの作成には、DEPLOY_DB_SOFTWAREではなく動詞DEPLOY_CDBを使用します。

RACデータベースのデプロイ

次のコードの抜粋は、db_software_maintenance emcli動詞でDEPLOY_RAC_SOFTWAREのpurposeを使用して、RACデータベースをデプロイする方法を示しています。
emcli db_software_maintenance 
-performOperation 
-name="Deploy Home"
-purpose="DEPLOY_RAC_SOFTWARE"
-target_type= rac_database
-normal_credential="NORMAL:SYSMAN"
-privilege_credential="ROOT:SYSMAN"
-input_file="data:/deploy_OH.txt"
-attach_home=true

Oracle Restartのデプロイ


emcli db_software_maintenance 
-performOperation -name="Deploy Home"
-name="Deploy Home"
-purpose="DEPLOY_SIHA_SOFTWARE"
-target_type= has
-normal_credential="NC_HOST_CREDS:SYSMAN"
-privilege_credential="HOST_PRIV:SYSMAN"
-input_file="data:/deploy_OH.txt"
-SKIP_CVU_CHECK=<true/false>
SKIP_CVU_CHECK: このフラグを使用すると、CVUチェックをスキップできます(trueに設定した場合)。DEPLOY_SIHA操作とDEPLOY_GI操作にのみ使用されるオプションのフラグです。

Oracle Grid Infrastructureデータベースのデプロイ

emcli db_software_maintenance 
-performOperation 
-name="Deploy-1916 GI Home"
-purpose=DEPLOY_GI_SOFTWARE
-target_type=input_file
-target_list="CLUSTER1"
-normal_credential="NC_HOST_CREDS:TESTSUPERADMIN"
-privilege_credential="HOST_PRIV:TESTSUPERADMIN"
-inputfile="data:/usr/oracle/deploy.txt"
SKIP_CVU_Check=<true/false>"
SKIP_CVU_CHECK: このフラグを使用すると、CVUチェックをスキップできます(trueに設定した場合)。DEPLOY_SIHA操作とDEPLOY_GI操作にのみ使用されるオプションのフラグです。

DEPLOY_GI_SOFTWAREは、12.Xのグリッド・インフラストラクチャを19 cまたは18 cにアップグレードする場合に使用します。新しい19Cまたは18Cのホームがデプロイされたら、UPDATE_GIを実行します。最後に、DEPLOY_RAC_SOFTWAREを使用して、19 cまたは18 cのRACホーム・バイナリをデプロイします。

GIMRソフトウェアのデプロイ

ノート:

Oracle Database 21C以降、GIMR更新はGI更新またはパッチ適用から分離されるようになりました。GIとGIMRの両方の更新は、2つの個別の操作で行われます。このコマンドは、21C以上のデータベースでのみ使用します。
GIMRソフトウェアをデプロイするための前提条件として、GIは事前に更新する必要があります。GIを更新したら、次のステップを実行します:
  1. ゴールド・イメージの作成: RACホーム・ターゲットまたはSIホーム・ターゲットのゴールド・イメージを作成します(SI Oracleホーム・イメージをRACソフトウェアのデプロイに使用できます)。
  2. GIMRターゲットをイメージにサブスクライブします。GIMRは、別のターゲットとしてEnterprise Managerで検出されません。GIMRを使用してRACまたはSIホーム・イメージに構成するには、クラスタ・ターゲットをサブスクライブする必要があります。これを実行するには、次のコマンドを使用します。
    emcli db_software_maintenance 
    -subscribeTarget
    -target_name="GIMR-target-cluster" 
    -target_type=cluster   
    -image_id=<RAC-SI_IMAGE_ID> 
    -gimr=true
  3. GIMRソフトウェアのデプロイ:
    emcli db_software_maintenance 
    -performOperation 
    -name="Deploy GIMR Home"
    -purpose=DEPLOY_GIMR_SOFTWARE 
    -target_type=cluster   
    -target_list=den01nr-cluster
    -normal_credential="NC_HOST_CREDS:TESTSUPERADMIN"
    -privilege_credential="HOST_PRIV:TESTSUPERADMIN"
    -inputfile="data:/usr/oracle/deploy.txt"

コンテナ・データベースのデプロイ

コンテナ・データベースの場合、コンテナ全体を同時に更新するのではなく、一度に1つまたは複数のPDBを更新できます。これを可能にするには、新しいコンテナ・データベースを作成するか、ステージング済/パッチ適用済のOracleホーム上の既存のコンテナを使用して、新しいコンテナにPDBをオンデマンドで移動します。新しいCDBは構造のみのテンプレートを使用して作成されます。ソフトウェアのデプロイは、DEPLOY_CDB操作の前に実行しておく必要があります

ノート:

既存のコンテナ・データベースを使用して、より高いパッチ・レベルのパッチをPDBターゲットに適用することもできます。この場合は、ATTACH_CDB操作を実行する必要があり、DEPLOY_CDB操作をスキップする必要があります。
emcli db_software_maintenance -performOperation -name="<name>"
-purpose=DEPLOY_CDB 
-target_type=rac_database  
-target_list="<CDB Name that is being patched>"
-db_name="<db_name>"  
-normal_credential="<normal_credential>"
-privilege_credential="<privilege_credential>"
-database_credential="<database_credential>"  
-input_file="<input_file>"
-templateName="<template_path_and_name>"
-dataFileLocation="<dataFileLocation>"
必要なイメージを持つコンテナ・データベースがすでに存在する場合は、更新時にPDBを格納するために同じデータベースをアタッチできます。
emcli db_software_maintenance 
-performOperation -purpose="ATTACH_CDB" 
-target_list="<CDB Name that is being patched>"
-target_type="<target type>" 
-name="Operation Name” 
-description="Operation description" 
-destinationCDB="<Container database to which PDBs will be migrated>" 
-normal_credential="<credential name>" 
-privilege_credential="<credential name>" 
-database_credential="<SYSDBA credential name>"
-templateName="<template_path_and_name>"
-dataFileLocation="<dataFileLocation>"