スタンバイ・データベースの更新およびロールバック

この項は、すべてのプライマリおよびフィジカル・スタンバイ構成(RAC - RAC、RAC - SI、SI - SI、RAC One - RAC One)に適用できます。このユースケースでは、プライマリ・データベースおよびスタンバイ・データベースの両方を新しいOracleホームに切り替える必要があります。単一の切替え操作では、プライマリとスタンバイの両方のデータベースを処理することはできません。
スタンバイ・データベースの更新およびロールバックの手順は、patch type (ローリングを適用できるかどうか).によって異なります。

ノート:

リスナーがカスタムの場所にある場合は、UPDATEまたはROLLBACK操作を実行する前に、まずTNS_ADMIN環境変数にこの場所を設定します。その後、エージェントを再起動して、これらの操作を続行します。
STANDBY_START_OPTIONパラメータは、パッチ適用後にスタンバイ・データベース起動オプションを設定します。UPDATE_DB EM CLI動詞を使用してスタンバイ・データベースにパッチを適用するときは、このパラメータを-input_fileに含める必要があります。
  • スタンバイ・データベースへのパッチ適用時にSTANDBY_START_OPTIONを指定した場合:

    ローリング・スタンバイ・データベースおよび非ローリング・スタンバイ・データベースはどちらも、パッチ適用後に-input_fileに設定されたモードで起動されます。パラメータ値にREAD ONLY WITH APPLYが指定されていた場合、パッチ適用前にMRPが実行されていなかった場合でもMRPが起動されます。それ以外の場合は、srcvtl構成で設定されたMRPのステータスが有効になります。

  • スタンバイ・データベースへのパッチ適用時にSTANDBY_START_OPTIONを指定しなかった場合:
    • ローリングで適用できるパッチ: パッチ適用後もスタンバイ・データベースの既存のopen_modeおよびMRPのステータスが保持されます。スタンバイ・データベースの既存のopen_modeおよびMRPステータスをフェッチできない場合は、デフォルト・モードで起動され、srcvtl構成で設定されたMRPステータスが有効になります。

      ノート:

      open_modeおよびMRPステータスのフェッチ時に問題が検出された場合、UPDATE_DBプロシージャは停止しません。エラー・メッセージは、UPDATE_DBプロシージャの更新先ホームからのDBインスタンスの起動ステップで表示されます。
    • ローリングで適用できないパッチ: スタンバイ・データベースはデフォルト・モードで再起動され、srcvtl構成で設定されたMRPステータスが有効になります。

スタンバイ・データベースの更新

ローリングを適用できるパッチ(データベースのリリース更新など)の場合は、次のステップに従います:

  • スタンバイ・データベースを更新します:

    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<UPDATE_DB or UPDATE_RACDB> 
    -target_type=oracle_database 
    -target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -database_credential=<SYSDBA credentials of the database> 
    -dataguard_role=standby 
    -input_file="data:<location of input file>"

    入力パラメータの説明

    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの場所と名前。
      • disableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
  • プライマリ・データベースを更新します:

    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=-purpose=<UPDATE_DB or UPDATE_RACDB> 
    —target_type=oracle_database
    -target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=primary 
    [–ignoreStandbyPrereq=true|false] 
    -input_file="data:<location of input file>”
    
    [] Denotes optional parameter

    入力パラメータの説明

    • ignoreStandbyPrereq: デフォルト値はfalseです。これにより、スタンバイがプライマリの移動先と同じイメージ・バージョン上にあるかどうかの検証チェックが無効になります。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの場所と名前。
      • enableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。

(Jan 2017 RUより前の) OJVMなどのローリングを適用できないパッチの場合は、次のステップを実行します:

  • スタンバイ・データベースを更新します
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<UPDATE_DB or UPDATE_RACDB> 
    —target_type=oracle_database 
    —target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    —dataguard_role=standby 
    —startupAfterSwitch=false 
    —input_file=”data:<location of input file>”

    入力パラメータの説明

    • startupAfterSwitch: ローリングを適用できないパッチの場合は、まずパッチ適用済ホームからプライマリ・データベースを起動する必要があります。これにより、更新操作中、スタンバイ・データベースが停止状態のままになります。プライマリ・データベースのパッチ適用と起動が終了すると、スタンバイ・データベースが別のステップで起動されます。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。

      • workingDir: 一時ディレクトリの場所と名前。
      • disableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
  • dataguard_role=Primaryを指定してプライマリ・データベースを更新します
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=-purpose=<UPDATE_DB or UPDATE_RACDB> 
    -target_type=oracle_database
    —target_list=oracle_database
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=primary 
    -rolling=false 
    -input_file="data:<location of input file>”

    入力パラメータの説明

    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの名前と場所。
  • パッチ適用済ホームからスタンバイ・データベースを起動します
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<UPDATE_DB or UPDATE_RACDB> 
    -target_type=oracle_database
    -target_list=<List of targets> 
    -normal_credential=credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=standby 
    –startupDatabase=true 
    -skipSwitchDatabase=true 
    -input_file=”data:<location of input file>”

    入力パラメータの説明

    • startupDatabase: 常にtrueに設定する必要があります。これにより、パッチ適用済ホームからスタンバイ・データベースを起動できるようになります。
    • skipSwitchDatabase: trueに設定する必要があります。パッチ適用済ホームへのデータベースの切替えは、これより前のステップですでに実行済であるためスキップされます。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの名前と場所。
      • enableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
      • primary_dbhost_creds: Data Guardはプライマリ・ホストを介して有効化されるため、これは必須です。これは、プライマリ・データベースの更新で使用されるものと同じにすることができます。
db_software_maintenance動詞およびupdate操作の詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』db_sm_performoperation_updateを参照してください。

スタンバイ・データベースのロールバック

ロールバック処理は同じであり、purpose値のみが変更されます。データベース・リリース更新などのローリング・パッチをロールバックするには、次のステップに従います:

  • スタンバイ・データベースをロールバックします:

    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<ROLLBACK_DB or ROLLBACK_RACDB>
    -target_type=oracle_database 
    -target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -database_credential=<SYSDBA credentials of the database> 
    -dataguard_role=standby 
    -input_file="data:<location of input file>"

    入力パラメータの説明

    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの場所と名前。
      • disableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
  • プライマリ・データベースをロールバックします:

    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<ROLLBACK_DB or ROLLBACK_RACDB>
    —target_type=oracle_database
    -target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=primary 
    [–ignoreStandbyPrereq=true|false] 
    -input_file="data:<location of input file>”
    
    [] Denotes optional parameter

    入力パラメータの説明

    • ignoreStandbyPrereq: デフォルト値はfalseです。これにより、スタンバイがプライマリの移動先と同じイメージ・バージョン上にあるかどうかの検証チェックが無効になります。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの場所と名前。
      • enableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。

(Jan 2017 RUより前の) OJVMなどのローリングを適用できないパッチの場合は、次のステップを実行します:

  • スタンバイ・データベースをロールバックします
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<ROLLBACK_DB or ROLLBACK_RACDB> 
    —target_type=oracle_database 
    —target_list=<List of targets> 
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    —dataguard_role=standby 
    —startupAfterSwitch=false 
    —input_file=”data:<location of input file>”

    入力パラメータの説明

    • startupAfterSwitch: ローリングを適用できないパッチの場合は、まずパッチ適用済ホームからプライマリ・データベースを起動する必要があります。これにより、更新操作中、スタンバイ・データベースが停止状態のままになります。プライマリ・データベースのパッチ適用と起動が終了すると、スタンバイ・データベースが別のステップで起動されます。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。

      • workingDir: 一時ディレクトリの場所と名前。
      • disableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
  • dataguard_role=Primaryを指定してプライマリ・データベースをロールバックします
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<ROLLBACK_DB or ROLLBACK_RACDB> 
    -target_type=oracle_database
    —target_list=oracle_database
    -normal_credential=<credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=primary 
    -rolling=false 
    -input_file="data:<location of input file>”

    入力パラメータの説明

    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの名前と場所。
  • スタンバイ・データベースを起動します。
    emcli db_software_maintenance 
    -performOperation 
    -name=<User Specified Operation Name> 
    -purpose=<ROLLBACK_DB or ROLLBACK_RACDB> 
    -target_type=oracle_database
    -target_list=<List of targets> 
    -normal_credential=credential name> 
    -privilege_credential=<credential name> 
    -dataguard_role=standby 
    –startupDatabase=true 
    -skipSwitchDatabase=true 
    -input_file=”data:<location of input file>”

    入力パラメータの説明

    • startupDatabase: 常にtrueに設定する必要があります。これにより、パッチ適用済ホームからスタンバイ・データベースを起動できるようになります。
    • skipSwitchDatabase: trueに設定する必要があります。パッチ適用済ホームへのデータベースの切替えは、これより前のステップですでに実行済であるためスキップされます。
    • input_file: これはオプション・パラメータです。ここで指定できるパラメータは、次のとおりです。
      • workingDir: 一時ディレクトリの名前と場所。
      • enableDG: True/False。デフォルト値はfalseです。スタンバイ・データベースがData Guardによって管理されている場合は、これをtrueに設定する必要があります。trueに設定すると、データ・ガード構成が有効になります。
      • primary_dbhost_creds: Data Guardはプライマリ・ホストを介して有効化されるため、これは必須です。これは、プライマリ・データベースの更新で使用されるものと同じにすることができます。
db_software_maintenance動詞およびrollback操作の詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』performoperation_rollbackを参照してください。