Oracle Cloudデータベースのデータベース管理の有効化時にエラーが発生する

Oracle Cloudデータベースのデータベース管理を有効化する際に発生する可能性があるエラーを次に示します。

For information on how to resolve some other issues that you may encounter when enabling Database Management for Oracle Cloud Databases, see the Known Issues with Cloud Databases section in OCI Database Management Service: Known Issues When Enabling Database Management (Doc ID 2938669.1) in My Oracle Support.

内部エラーのため、クラウド・データベースでデータベース管理サービスを有効化できませんでした

このエラーの考えられる原因は、次の領域に分類できます:

  • イングレス・ルールおよびエグレス・ルールが設定されていないか、正しくない
    • 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。

      解決策: データベース管理プライベート・エンドポイントとOracle Cloudデータベースの間の通信を可能にするには、Oracle CloudデータベースのVCN内のNSGまたはセキュリティ・リストにイングレスおよびエグレス・ルールが追加されていることを確認してください。

  • Service Name
    • 原因: サービス名が正しくありません。

      解決策: 正しいサービス名を確認して使用します。次の問合せを使用して、データベースからサービス名情報を検証できます。

      select value from v$parameter where name like '%service_name%'
    • 原因: 「データベース管理」ページで指定したサービス名が、リスナーおよびgv$servicesに登録されていません。

      解決策: サービス名がリスナーおよびgv$servicesに登録されていることを確認してください。

  • ポリシーがありません
    • 原因: 必要なポリシーが作成されていません。

      解決策: 必要なポリシーが作成され、データベース管理を有効にするユーザー・グループに付与されていることを確認してください:

      • シークレットの作成には、次のポリシーが必要です:

        Allow group DB-MGMT-ADMIN to manage secret-family in tenancy
      • データベース管理サービスに、データベース・ユーザーのパスワード・シークレットを読み取る権限を付与するには、次のポリシーが必要です:

        Allow service dpd to read secret-family in compartment ABC

        シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

        Allow service dpd to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'
      • データベース管理を使用してデータベース・ユーザーのパスワード・シークレットを読み取るには、次のポリシーが必要です。ユーザーに、シークレットを作成する権限(このリストの最初のポリシー)が付与されている場合、このポリシーは不要です:

        Allow group DB-MGMT-USER to read secret-family in compartment ABC

        シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

        Allow group DB-MGMT-USER to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'

      Oracle Cloudデータベースのデータベース管理の有効化に必要なポリシーの完全なリストは、Oracle Cloudデータベースの診断および管理を有効にするために必要な権限を参照してください。

  • データベース・ユーザーまたはパスワードが無効
    • 原因: SYSユーザーが使用されています。

      解決策: SYSユーザーを使用しないでください。DBSNMPユーザーの使用をお薦めします。

    • 原因: ユーザーが正しくないレベルで作成されています。

      解決策: ユーザーが正しいレベルで作成されていることを確認してください。たとえば、CDBに対してデータベース管理を有効にする場合、ユーザーはCDBレベルで作成する必要があります。

  • sqlnet.oraのTCPS設定が不適切
    • 原因: TCPSプロトコルを使用していて、sqlnet.oraでTLSとOracleネイティブ暗号化(Advanced Networking Option (ANO)暗号化とも呼ばれる)の両方が有効になっている場合、デフォルトでは、両方の暗号化タイプを使用することができません。

      解決策: SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = truesqlnet.oraに追加して、TCPSの使用時にOracleネイティブ暗号化をオフにします。

  • データベース名または一意のデータベース名が正しくありません
    • 原因: データベース・レベルで指定されたデータベース名またはデータベースの一意の名前が、Oracle Databaseクラウド・ソリューション(ベース・データベース・サービス、ExaDB-DまたはExaDB-C@C)から取得された詳細と一致しません。

      解決策: データベース名とデータベースの一意の名前が、データベース・レベルおよびOracle Databaseクラウド・ソリューションから取得された詳細で同じであることを確認します。これを行うには:

      1. 次のコマンドを使用して、Oracle Databaseクラウド・ソリューションからデータベース名とデータベースの一意の名前を取得します。
        oci db database get --database-id <database_OCID>
      2. 次のSQL文を使用して、データベース・レベルで指定されたデータベース名および一意のデータベース名を取得します。
        SELECT dbId, name as dbName, db_unique_name as dbUniqueName, replace(database_role, ' ','_') as dbRole,
        to_char(sys_extract_utc(cast(created as timestamp)), 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as dbCreationTime,
        (SELECT value from v$parameter WHERE name = 'db_domain') dbDomain,
        (SELECT version FROM v$instance) as dbVersion,
        (SELECT banner FROM v$version where banner like 'Oracle%') as dbEdition,
        (SELECT dbtimezone FROM dual) as dbTimeZone,
        (SELECT value FROM v$parameter WHERE name = 'cluster_database') as isCluster,
        (SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET') as charSet,
        (SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_NCHAR_CHARACTERSET') as ncharSet,
        (SELECT value FROM v$parameter WHERE name = 'control_management_pack_access') as dbPacks
        FROM v$database
      3. データベース名とデータベースの一意の名前がデータベース・レベルと、Oracle Databaseクラウド・ソリューションから取得された詳細で同じかどうかを確認します。相違がある場合は、データベース・レベルで詳細を修正します。

データベース管理でパスワード・シークレットにアクセスできないため、操作に失敗しました

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: 必要なポリシーが作成されていません。

解決策: 必要なポリシーが作成され、データベース管理を有効にするユーザー・グループに付与されていることを確認してください:

  • シークレットの作成には、次のポリシーが必要です:

    Allow group DB-MGMT-ADMIN to manage secret-family in tenancy
  • データベース管理サービスに、データベース・ユーザーのパスワード・シークレットを読み取る権限を付与するには、次のポリシーが必要です:

    Allow service dpd to read secret-family in compartment ABC

    シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

    Allow service dpd to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'
  • データベース管理を使用してデータベース・ユーザーのパスワード・シークレットを読み取るには、次のポリシーが必要です。ユーザーに、シークレットを作成する権限(このリストの最初のポリシー)が付与されている場合、このポリシーは不要です:

    Allow group DB-MGMT-USER to read secret-family in compartment ABC

    シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

    Allow group DB-MGMT-USER to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'

内部エラーのため、クラウド・データベースに接続できませんでした

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: 正しいユーザーがデータベース管理の有効化に使用されていないか、ユーザーに必要な権限がありません。

解決策: DBSNMPまたは同等のユーザーがデータベース管理の有効化に使用されていること、およびデータベース管理を有効化するユーザーに、必要な権限があることを確認してください。Oracle Cloudデータベースのデータベース管理の有効化に必要なポリシーの完全なリストは、Oracle Cloudデータベースの診断および管理を有効にするために必要な権限を参照してください。

データベース管理プライベート・エンドポイントをプロビジョニングできませんでした。操作を再試行するか、Oracle Supportに連絡してください。

このエラーの考えられる原因は、次の領域に分類できます:

  • CIDRの割当てが不十分(ユーザー・エラー)
    • 原因: xx用のxxのIPアドレスで予約されていないものは、すでにすべて割り当てられています。

      解決策: 単一インスタンス・データベースのデータベース管理プライベート・エンドポイントには2つのプライベートIPアドレスが必要で、RACデータベースのデータベース管理プライベート・エンドポイントには3つのプライベートIPアドレスが必要です。プライベート・エンドポイントの作成を続行するには、プライベート・エンドポイントを別のサブネットに移動するか、既存のサブネットでIPアドレスを使用可能にする必要があります。

  • プライベート・エンドポイント制限が不十分
    • 原因: RAC Oracle Cloudデータベースのプライベート・エンドポイントがすでに作成され、RACデータベースに接続するためにテナンシ(リージョンごと)に作成できるプライベート・エンドポイントが1つしかありません。

      解決策: プライベート・エンドポイント制限を引き上げてください。これを行うには:

      1. Oracle Cloud Infrastructureコンソールにサインインします。
      2. ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「制限、割当ておよび使用状況」をクリックします
      3. 「制限、割当ておよび使用状況」ページで、概要テキストの「サービス制限の引上げのリクエスト」をクリックします。
      4. 「サービス制限更新のリクエスト」パネルで:
        1. リソース制限の更新(これが新しい制限になります): 「サービス・カテゴリ」ドロップダウン・リストで「その他」を選択し、「リソース」ドロップダウン・リストで「その他の制限」を選択します。
        2. リクエストの理由: このフィールドに「リソース: データベース管理プライベート・エンドポイント」と入力し、次の詳細を指定します:
          • 追加するプライベート・エンドポイントの合計数と、プライベート・エンドポイントが単一インスタンス用かRAC Oracle Cloudデータベース用かを指定します。
          • データベースが複数のVCNにまたがっているかどうかを指定します。たとえば、制限を10に引き上げるリクエストをする場合、データベースが10のVCNにまたがっていると想定されます。プライベート・エンドポイントは、同じVCN内の複数のデータベースを管理できることに注意してください。詳細は、「データベース管理プライベート・エンドポイントの作成」を参照してください。
        3. 「サポート・リクエストの作成」をクリックします。

リクエストを処理できません。Oracleサポートに連絡するか、後で再試行してください。

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: 必要なOracle Cloud Infrastructure Vaultサービス・ポリシーが作成されていません。

解決策: 必要なポリシーが作成され、データベース管理を有効化するタスクを割り当てられているユーザー・グループに付与されていることを確認してください:

  • シークレットの作成には、次のポリシーが必要です:

    Allow group DB-MGMT-ADMIN to manage secret-family in tenancy
  • データベース管理サービスに、データベース・ユーザーのパスワード・シークレットを読み取る権限を付与するには、次のポリシーが必要です:

    Allow service dpd to read secret-family in compartment ABC

    シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

    Allow service dpd to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'
  • データベース管理を使用してデータベース・ユーザーのパスワード・シークレットを読み取るには、次のポリシーが必要です。ユーザーに、シークレットを作成する権限(このリストの最初のポリシー)が付与されている場合、このポリシーは不要です:

    Allow group DB-MGMT-USER to read secret-family in compartment ABC

    シークレットの読取りを特定のVaultからに制限した権限を付与する場合は、ポリシーを次のように更新します:

    Allow group DB-MGMT-USER to read secret-family in compartment ABC where target.vault.id = 'Vault OCID'

クラウド・データベースに接続するために指定されたサービス名を認識できませんでした。有効なサービス名で再試行してください。

次に、考えられる原因と、問題を解決するために実行できる操作を示します。

  • 原因: サービス名が正しくありません。

    解決策: 正しいサービス名を確認して使用します。次の問合せを使用して、データベースからサービス名情報を検証できます。

    select value from v$parameter where name like '%service_name%'
  • 原因: 「データベース管理」ページで指定したサービス名が、リスナーおよびgv$servicesに登録されていません。

    解決策: サービス名がリスナーおよびgv$servicesに登録されていることを確認してください。

リクエストの処理中にエラーが発生しました。Oracle Supportに連絡して問題を解決してください。

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: PDBの有効化のしきい値制限に達しました。データベース管理は、1つのCDBで最大10個のPDBに対して有効にできます。

解決策: PDBの有効化しきい値制限を増やします。これを行うには:

  1. Oracle Cloud Infrastructureコンソールにサインインします。
  2. ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「制限、割当ておよび使用状況」をクリックします
  3. 「制限、割当ておよび使用状況」ページで、概要テキストの「サービス制限の引上げのリクエスト」をクリックします。
  4. 「サービス制限更新のリクエスト」パネルで:
    1. リソース制限の更新(これが新しい制限になります): 「サービス・カテゴリ」ドロップダウン・リストで「その他」を選択し、「リソース」ドロップダウン・リストで「その他の制限」を選択します。
    2. リクエストの理由: このフィールドに「リソース: データベース管理PDBの有効化しきい値制限の引上げ」と入力し、次の詳細を指定します:
      • データベース管理を有効にする必要があるCDB内のPDBの数。
      • 関連付けられたCDBのOCID。
    3. 「サポート・リクエストの作成」をクリックします。

ネットワーク・エラーにより操作は失敗しました

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: 指定されたポートおよびサービス名が無効です。

解決策: ポートおよびサービス名が正しいことを確認してください。これを行うには:

  1. 次の問合せを使用して、データベースのサービス名情報を確認します。
    select value from v$parameter where name like '%service_name%'
  2. ポートの詳細が正しいことを確認します。
  3. 必要に応じて、ポートおよびサービス名を更新します。

ネットワーク・アダプタは接続を確立できませんでしたシステムのネットワーク・セキュリティ・グループまたはセキュリティ・リストを確認および更新します...

このエラーの考えられる原因は、次の領域に分類できます:

  • イングレス・ルールおよびエグレス・ルールが設定されていないか、正しくない
    • 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。

      解決策: データベース管理プライベート・エンドポイントとOracle Cloudデータベースの間の通信を可能にするには、Oracle CloudデータベースのVCN内のNSGまたはセキュリティ・リストにイングレスおよびエグレス・ルールが追加されていることを確認してください。

  • Service Name
    • 原因: サービス名が正しくありません。

      解決策: 正しいサービス名を確認して使用します。次の問合せを使用して、データベースからサービス名情報を検証できます。

      select value from v$parameter where name like '%service_name%'
    • 原因: 「データベース管理」ページで指定したサービス名が、リスナーおよびgv$servicesに登録されていません。

      解決策: サービス名がリスナーおよびgv$servicesに登録されていることを確認してください。

セキュリティ・ルールおよびサービス名が正しい場合でもエラーが表示される場合は、Oracle Supportに連絡してください。

リクエストの処理中にデータベース管理サービスでエラーが発生したため、操作は失敗しました。

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: 1つのプライベート・エンドポイントを使用して、15を超えるクラスタまたはRACデータベースを有効にしました。

解決策: 単一のデータベース管理RACプライベート・エンドポイントは、VCN内の15個のクラスタまたはRACデータベースに接続できます。VCN内に15を超えるクラスタがある場合、同じプライベート・エンドポイントでそれらを有効にすると失敗します。Oracle Supportに連絡してください。

作業リクエスト・エラー: TCPSウォレットの詳細が正しくないため、操作に失敗しました

次に、考えられる原因と、問題を解決するために実行できる操作を示します。

  • 原因: ウォレットのコンテンツとパスワードが一致しません。

    解決策: ウォレットのコンテンツとパスワードが正しいことを確認してください。

  • 原因: ウォレットのコンテンツとサーバー証明書のDNが一致しません。

    解決策: ウォレットのコンテンツとサーバー証明書のDNが正しいことを確認してください。

  • 原因: Walletシークレットのコンテンツが、データベース管理で求められる有効な構造ではありません。

    解決策: ウォレット・シークレットのコンテンツが、データベース管理で求められる構造であることを確認してください。有効な構造は次のとおりです:

    • {
        "walletFormat":"JKS", 
        "keyStoreContent":"<Keystore Content Byte Array>", 
        "keyStorePassword":"<Keystore Password>", 
        "trustStoreContent":"<Truststore Content Byte Array>", 
        "trustStorePassword":"<Truststore Password>", 
        "serverCertDn":"<Server CERT DN>"
      }
    • {
        "walletFormat":"PKCS12", 
        "keyStoreContent":"<Wallet Content Byte Array>", 
        "keyStorePassword":"<Wallet Password>", 
        "trustStoreContent":"<Wallet Content Byte Array>", 
        "trustStorePassword":"<Wallet Password>", 
        "serverCertDn":"<Server CERT DN>"
      }

データベース・メトリックは、ベース・データベース・サービス内のDBシステムに対して収集されません

考えられる原因と、問題を解決するために何ができるかは次のとおりです。

原因: TCPSプロトコルを使用してベース・データベース・サービスのDBシステムのデータベース管理を有効にし、後でOracle Data Guardも有効にした場合、TCPS構成はOracle Data Guardの構成プロセスによって上書きされます。

解決策: Oracle Data Guardを有効にした後、TCPSを再構成し、ベース・データベース・サービスでDBシステムのデータベース管理を有効にしてください。