Oracle Cloudデータベースの診断および管理を有効化する際にエラーが発生する
Oracle Cloudデータベースのデータベース管理診断および管理を有効にする際に発生する可能性があるエラーを次に示します。
-
データベース管理プライベート・エンドポイントをプロビジョニングできませんでした。操作を再試行するか、Oracle Supportに連絡してください。
-
クラウド・データベースに接続するために指定されたサービス名を認識できませんでした。有効なサービス名で再試行してください。
-
ネットワークアダプタが接続を確立できませんでした。システムのネットワーク・セキュリティ・グループまたはセキュリティ・リストを確認および更新します...
Oracle Cloudデータベースの診断および管理を有効にする際に発生する可能性のあるその他の問題を解決する方法の詳細は、My Oracle SupportのOCI Database Management Service: Known Issues When Enabling Database Management (KB77991)のクラウド・データベースに関する既知の問題に関する項を参照してください。
内部エラーのため、クラウド・データベースでデータベース管理サービスを有効化できませんでした
このエラーの考えられる原因は、次の領域に分類できます:
- イングレス・ルールおよびエグレス・ルールが設定されていないか、正しくない
- 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。
解決策: データベース管理プライベート・エンドポイントとOracle Cloudデータベースの間の通信を可能にするには、Oracle CloudデータベースのVCN内のNSGまたはセキュリティ・リストにイングレスおよびエグレス・ルールが追加されていることを確認してください。
- 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。
- Service Name
- 原因: サービス名が正しくありません。
解決策: 正しいサービス名を確認して使用します。次の問合せを使用して、データベースからサービス名情報を検証できます。
select value from v$parameter where name like '%service_name%'
- 原因: 「データベース管理」ページで指定したサービス名が、リスナーおよび
gv$services
に登録されていません。解決策: サービス名がリスナーおよび
gv$services
に登録されていることを確認してください。
- 原因: サービス名が正しくありません。
- ポリシーがありません
- 原因: 必要なポリシーが作成されていません。
解決策: 必要なポリシーが作成され、診断および管理を有効にするユーザー・グループに付与されていることを確認してください:
-
シークレットの作成には、次のポリシーが必要です:
Allow group <user_group_name> to manage secret-family in tenancy
-
管理対象データベース・リソースにデータベース・ユーザーのパスワード・シークレットにアクセスする権限を付与するには、次のリソース・プリンシパル・ポリシーが必要です:
Allow any-user to read secret-family in compartment ABC where ALL {request.principal.type = dbmgmtmanageddatabase}
特定のシークレットにアクセスする権限を付与する場合は、ポリシーを次のように更新します:
Allow any-user to read secret-family in compartment ABC where ALL {target.secret.id = <Secret OCID>,request.principal.type = dbmgmtmanageddatabase}
For a complete list of the policies required to enable Diagnostics & Management for Oracle Cloud Databases, see Permissions Required to Enable Diagnostics & Management for Oracle Cloud Databases.
-
- 原因: 必要なポリシーが作成されていません。
- データベース・ユーザーまたはパスワードが無効
- 原因:
SYS
ユーザーが使用されています。解決策:
SYS
ユーザーを使用しないでください。DBSNMP
ユーザーの使用をお薦めします。 - 原因: ユーザーが正しくないレベルで作成されています。
解決策: ユーザーが正しいレベルで作成されていることを確認してください。たとえば、CDBの診断および管理を有効にする場合、ユーザーはCDBレベルで作成する必要があります。
ノート
PDBの診断および管理を一括で有効にした場合、CDB資格証明をローカル・アクセスへの共通アクセスからダウングレードすることはできません。
- 原因:
- sqlnet.oraのTCPS設定が不適切
- 原因: TCPSプロトコルを使用していて、
sqlnet.ora
でTLSとOracleネイティブ暗号化(Advanced Networking Option (ANO)暗号化とも呼ばれる)の両方が有効になっている場合、デフォルトでは、両方の暗号化タイプを使用することができません。解決策:
SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = true
をsqlnet.ora
に追加して、TCPSの使用時にOracleネイティブ暗号化をオフにします。
- 原因: TCPSプロトコルを使用していて、
- データベース名または一意のデータベース名が正しくありません
- 原因: データベース・レベルで指定されたデータベース名またはデータベースの一意の名前が、Oracle Databaseクラウド・ソリューションから取得された詳細(ベース・データベース・サービス、ExaDB-D、ExaDB-XSまたはExaDB-C@C)と一致しません。
解決策: データベース名とデータベースの一意の名前が、データベース・レベルおよびOracle Databaseクラウド・ソリューションから取得された詳細で同じであることを確認します。これを行うには:
- 次のコマンドを使用して、Oracle Databaseクラウド・ソリューションからデータベース名とデータベースの一意の名前を取得します。
oci db database get --database-id <Database OCID>
- 次の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
- データベース名とデータベースの一意の名前がデータベース・レベルと、Oracle Databaseクラウド・ソリューションから取得された詳細で同じかどうかを確認します。相違がある場合は、データベース・レベルで詳細を修正します。
- 次のコマンドを使用して、Oracle Databaseクラウド・ソリューションからデータベース名とデータベースの一意の名前を取得します。
- 原因: データベース・レベルで指定されたデータベース名またはデータベースの一意の名前が、Oracle Databaseクラウド・ソリューションから取得された詳細(ベース・データベース・サービス、ExaDB-D、ExaDB-XSまたはExaDB-C@C)と一致しません。
データベース管理でパスワード・シークレットにアクセスできないため、操作に失敗しました
考えられる原因と、問題を解決するために何ができるかは次のとおりです。
原因: 必要なポリシーが作成されていません。
解決策: 必要なポリシーが作成され、診断および管理を有効にするユーザー・グループに付与されていることを確認してください:
-
シークレットの作成には、次のポリシーが必要です:
Allow group <user_group_name> to manage secret-family in tenancy
-
管理対象データベース・リソースにデータベース・ユーザーのパスワード・シークレットにアクセスする権限を付与するには、次のリソース・プリンシパル・ポリシーが必要です:
Allow any-user to read secret-family in compartment ABC where ALL {request.principal.type = dbmgmtmanageddatabase}
特定のシークレットにアクセスする権限を付与する場合は、ポリシーを次のように更新します:
Allow any-user to read secret-family in compartment ABC where ALL {target.secret.id = <Secret OCID>,request.principal.type = dbmgmtmanageddatabase}
内部エラーのため、クラウド・データベースに接続できませんでした
考えられる原因と、問題を解決するために何ができるかは次のとおりです。
原因: 診断および管理の有効化に適切なユーザーが使用されなかったか、またはユーザーに必要な権限がありません。
解決策: DBSNMP
または同等のユーザーが診断および管理の有効化に使用されていること、および診断および管理を有効化しているユーザーに、必要な権限があることを確認してください。For a complete list of the policies required to enable Diagnostics & Management for Oracle Cloud Databases, see Permissions Required to Enable Diagnostics & Management for Oracle Cloud Databases.
データベース管理プライベート・エンドポイントをプロビジョニングできませんでした。操作を再試行するか、Oracle Supportに連絡してください。
このエラーの考えられる原因は、次の領域に分類できます:
- CIDRの割当てが不十分(ユーザー・エラー)
- 原因: xx用のxxのIPアドレスで予約されていないものは、すでにすべて割り当てられています。
解決策: 単一インスタンス・データベースのデータベース管理プライベート・エンドポイントには2つのプライベートIPアドレスが必要で、RACデータベースのデータベース管理プライベート・エンドポイントには3つのプライベートIPアドレスが必要です。プライベート・エンドポイントの作成を続行するには、プライベート・エンドポイントを別のサブネットに移動するか、既存のサブネットでIPアドレスを使用可能にする必要があります。
- 原因: xx用のxxのIPアドレスで予約されていないものは、すでにすべて割り当てられています。
- プライベート・エンドポイント制限が不十分
- 原因: データベース管理プライベート・エンドポイントの最大数がすでにテナンシに作成されています。
解決策: 最初のステップとして、テナンシで現在使用可能なデータベース管理プライベート・エンドポイントの数を確認します:
- Oracle Cloud Infrastructureコンソールにサインインします。
- ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「リソース・エクスプローラ」をクリックします。
「リソース・エクスプローラ」ページが表示されます。
- 「検索」フィールドに「リソース・タイプ」と入力し、「プライベート・エンドポイント」を選択して、「フィルタの適用」をクリックします。
テナンシで使用可能なすべてのプライベート・エンドポイントがリストされます。
- プライベート・エンドポイントの名前をクリックして、VCNの詳細を確認します。
プライベート・エンドポイントがOracle Cloudデータベースで使用される同じVCNに属している場合、診断および管理を有効にするときに使用できます。
コマンドラインを使用して、テナンシで現在使用可能なデータベース管理プライベート・エンドポイントの数を確認するには:
- 次のOracle Cloud Infrastructureコマンドラインを使用します:
$ oci iam compartment list --all --access-level=ANY --compartment-id-in-subtree true > compartments.out
compartments.out
ファイルを解析して、コンパートメントOCIDを取得します。- 各コンパートメントOCIDについて、次のコマンドを使用して
dbm_pe_list.out
ファイルのプライベート・エンドポイントをフェッチします:$ for i in $(grep -i ocid compartments.out | grep -v tenancy | grep -v compartment-id | sed 's/.*ocid/ocid/'|sed 's/",//'); do oci database-management private-endpoint list -c $i --all; done > dbm_pe_list.out
テナンシ内のプライベート・エンドポイントのデフォルト制限(7つの単一インスタンス・プライベート・エンドポイントと3つのRACプライベート・エンドポイント)を超えた場合、制限の引上げをリクエストできます。これを行うには:
- Oracle Cloud Infrastructureコンソールにサインインします。
- ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「制限、割当ておよび使用状況」をクリックします
- 「制限、割当ておよび使用状況」ページで、概要テキストの「サービス制限の引上げのリクエスト」をクリックします。
- 「サービス制限更新のリクエスト」パネルで:
- リソース制限の更新(これが新しい制限になります): 「サービス・カテゴリ」ドロップダウン・リストで「その他」を選択し、「リソース」ドロップダウン・リストで「その他の制限」を選択します。
- リクエストの理由: このフィールドに「リソース: データベース管理プライベート・エンドポイント」と入力し、次の詳細を指定します:
- 既存のプライベート・エンドポイントを使用できない理由
- テナンシのOCID
- プライベート・エンドポイントを作成するリージョン
- 追加するプライベート・エンドポイントの合計数
- プライベート・エンドポイントのタイプ: 単一インスタンスのOracle Cloudデータベースのプライベート・エンドポイントまたはRAC Oracle Cloudデータベースのプライベート・エンドポイント
- データベースが複数のVCNにまたがっているかどうかを指定します。たとえば、10への制限の引上げをリクエストしている場合、データベースは10のVCNsに分散されていることを理解しています。プライベート・エンドポイントは、同じVCN内の複数のデータベースを管理できることに注意してください。詳細は、「Oracle Cloudデータベースのデータベース管理プライベート・エンドポイントの作成」を参照してください。
- 「サポート・リクエストの作成」をクリックします。
- 原因: データベース管理プライベート・エンドポイントの最大数がすでにテナンシに作成されています。
リクエストを処理できません。Oracleサポートに連絡するか、後で再試行してください。
考えられる原因と、問題を解決するために何ができるかは次のとおりです。
原因: 必要なOracle Cloud Infrastructure Vaultサービス・ポリシーが作成されていません。
解決策: 必要なポリシーが作成され、診断および管理を有効化するタスクを割り当てられているユーザー・グループに付与されていることを確認してください:
-
シークレットの作成には、次のポリシーが必要です:
Allow group <user_group_name> to manage secret-family in tenancy
-
管理対象データベース・リソースにデータベース・ユーザーのパスワード・シークレットにアクセスする権限を付与するには、次のリソース・プリンシパル・ポリシーが必要です:
Allow any-user to read secret-family in compartment ABC where ALL {request.principal.type = dbmgmtmanageddatabase}
特定のシークレットにアクセスする権限を付与する場合は、ポリシーを次のように更新します:
Allow any-user to read secret-family in compartment ABC where ALL {target.secret.id = <Secret OCID>,request.principal.type = dbmgmtmanageddatabase}
クラウド・データベースに接続するために指定されたサービス名を認識できませんでした。有効なサービス名で再試行してください。
次に、考えられる原因と、問題を解決するために実行できる操作を示します。
- 原因: サービス名が正しくありません。
解決策: 正しいサービス名を確認して使用します。次の問合せを使用して、データベースからサービス名情報を検証できます。
select value from v$parameter where name like '%service_name%'
- 原因: 「データベース管理」ページで指定したサービス名が、リスナーおよび
gv$services
に登録されていません。解決策: サービス名がリスナーおよび
gv$services
に登録されていることを確認してください。
リクエストの処理中にエラーが発生しました。Oracle Supportに連絡して問題を解決してください。
考えられる原因と、問題を解決するために何ができるかは次のとおりです。
原因: PDBの有効化のしきい値制限に達しました。診断および管理は、1つのCDBで最大10個のPDBに対して有効にできます。
単一PDBの診断および管理を有効にする場合は、1つのCDBで最大10個のPDBに対してのみ有効にできます。ただし、CDBに関連付けられているすべてのPDBの診断および管理を一括で有効にする場合、有効にできるPDBの数に制限はありません。
解決策: PDBの有効化しきい値制限を増やします。これを行うには:
- Oracle Cloud Infrastructureコンソールにサインインします。
- ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「制限、割当ておよび使用状況」をクリックします
- 「制限、割当ておよび使用状況」ページで、概要テキストの「サービス制限の引上げのリクエスト」をクリックします。
- 「サービス制限更新のリクエスト」パネルで:
- リソース制限の更新(これが新しい制限になります): 「サービス・カテゴリ」ドロップダウン・リストで「その他」を選択し、「リソース」ドロップダウン・リストで「その他の制限」を選択します。
- リクエストの理由: このフィールドに「リソース: データベース管理PDBの有効化しきい値制限の引上げ」と入力し、次の詳細を指定します:
- 診断および管理を有効にする必要があるCDB内のPDBの数。
- 関連付けられたCDBのOCID。
- 「サポート・リクエストの作成」をクリックします。
ネットワーク・エラーにより操作は失敗しました
考えられる原因と、問題を解決するために何ができるかは次のとおりです。
原因: 指定されたポートおよびサービス名が無効です。
解決策: ポートおよびサービス名が正しいことを確認してください。これを行うには:
- 次の問合せを使用して、データベースのサービス名情報を確認します。
select value from v$parameter where name like '%service_name%'
- ポートの詳細が正しいことを確認します。
- 必要に応じて、ポートおよびサービス名を更新します。
ネットワーク・アダプタは接続を確立できませんでしたシステムのネットワーク・セキュリティ・グループまたはセキュリティ・リストを確認および更新します...
このエラーの考えられる原因は、次の領域に分類できます:
- イングレス・ルールおよびエグレス・ルールが設定されていないか、正しくない
- 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。
解決策: データベース管理プライベート・エンドポイントとOracle Cloudデータベースの間の通信を可能にするには、Oracle CloudデータベースのVCN内のNSGまたはセキュリティ・リストにイングレスおよびエグレス・ルールが追加されていることを確認してください。
- 原因: NSGまたはセキュリティ・リストに対するイングス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールが、ポート1521での通信を許可するように定義されていません。
- 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システムの診断および管理を有効にします。