OCI Database with PostgreSQLのトラブルシューティング

トラブルシューティング情報を使用して、PostgreSQLOCI Database with PostgreSQLを使用したOCI Databaseの操作中に発生する可能性のある一般的な問題を特定し、対処します

拡張の作成が「許可されていません」エラーで失敗する

OCI Database with PostgreSQL環境で拡張を作成する場合、拡張が許可されていないというエラーが表示されます。

ほとんどのOCI Database with PostgreSQLでサポートされている拡張機能は即時に使用可能ですが、カスタム構成を介して拡張機能を有効にするために管理者が必要なものもあります。たとえば、pg_stat_statements拡張子はサポート対象としてリストされますが、すぐには使用できません。

pg_stat_statements拡張子を作成しようとしたときに、管理者が有効にしていない場合は、エラーが表示されることがあります。たとえば:

postgres=> CREATE EXTENSION pg_stat_statements;
ERROR:  Extension : pg_stat_statements is not allowed

pg_stat_statementsなどの拡張機能が使用可能かどうかを確認するには、最新の拡張機能とそのバージョン情報を示すpg_available_extensionsカタログが表示されます。たとえば:

postgres=> SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements';

管理者がテナンシに対して有効になっている拡張機能を確認するには、oci.admin_enabled_extensionsを使用します。たとえば:

postgres=> SHOW oci.admin_enabled_extensions;
oci.admin_enabled_extensions 
------------------------------
postgres_fdw
(1 row)

pg_stat_statementsがリストされていない場合は、まだ有効になっていないことを意味します。

これらの拡張を有効にするには、OCI Database with PostgreSQLデータベース・システムの拡張機能の有効化を参照してください。

データベース・システムがアイドル状態の間、メモリー使用率が高くなる

PostgreSQLOCI Database with PostgreSQLメトリックを使用したOCI Databaseは、データベース・システムがアイドル状態であっても、高いメモリー使用率を示します。

OCI Database with PostgreSQLは、カスタム・ページ・キャッシュを使用して独自のメモリー管理を行います。OCI Database with PostgreSQLでは、このカスタム・ページ・キャッシュに固定量のメモリーが事前に割り当てられ、他の目的に使用されません。

デフォルト設定では、データベース・システムの合計メモリーの約75%が、常にoci.pagecacheおよびshared_buffersに割り当てられます。OCI Database with PostgreSQLメトリックでは、この量が使用済と表示されますが、このメモリーは意図したとおりにPostgreSQLデータ・バッファに使用され、悪影響は発生しません。

詳細は、oci.pagecache_sizeを参照してください。

ホスト容量が不足しているため、データベース・システムのプロビジョニングが失敗する

OCI Database with PostgreSQLデータベース・システムを作成する場合、OCIにはリクエストされた場所の選択されたシェイプに対する十分なコンピュート・ホスト容量がないため、作業リクエストが失敗する可能性があります。エラーにより、選択したシェイプと、該当する場合は可用性ドメインを識別できます。

この障害は、OCIがプロビジョニング時に、選択したデータベース・システム・シェイプに必要なコンピュート・ホスト・リソースを配置できなかったことを意味します。データベース・システム構成に問題があるとはかぎりません。容量は時間の経過とともに変化するため、あとで再試行すると成功する可能性があります。

問題を解決するには、次を試します:
  1. 同じ形状と場所が必要な場合は、短い待機後に再試行してください。
  2. ワークロードで許可されている場合は、同じリージョン内の別の可用性ドメインを試してください。
  3. ワークロードに特定の可用性ドメインが必要ない場合は、可用性ドメインを省略し、リージョンごとの配置で使用可能な場所を選択します。
  4. シェイプの変更が可能な場合は、サポートされている別のPostgreSQLシェイプまたは小さいOCPUおよびメモリー構成を試してください。

別のシェイプを選択する前に、OCI Compute容量レポートを作成し、候補シェイプに十分な可用性があることを確認します。容量レポートは、インスタンスを作成するか、インスタンス・シェイプを変更する前に十分な容量が使用可能かどうかを判断するのに役立つ可用性ドメイン・ホストの容量情報を生成します。完全なコマンド構文および例は、oci compute compute-capacity-report createを参照してください。

コンピュート容量レポートを作成する権限も必要です。この権限がない場合は、OCIテナンシのIAMポリシーを管理する管理者に依頼して、次のようなポリシーを付与してください:

Allow group <group-name> to manage compute-capacity-reports in tenancy

候補のPostgreSQLコンピュート・シェイプとOCPU、およびメモリー構成のshape-availabilities.jsonファイルを作成します。次に例を示します。

[
  {
    "instanceShape": "VM.Standard.E4.Flex",
    "instanceShapeConfig": {
      "memoryInGBs": 32.0,
      "ocpus": 2.0
    }
  }
]

使用する予定の可用性ドメインの容量レポートを実行します。コンパートメントOCIDは、ルート・コンパートメントOCIDである必要があります。

oci compute compute-capacity-report create \
  --availability-domain <availability-domain> \
  --compartment-id <root-compartment-ocid> \
  --shape-availabilities file://shape-availabilities.json
候補シェイプを選択する前にレポートをレビューします。
  • availability-statusAVAILABLEであることを確認します。
  • available-countが、プロビジョニングする必要があるデータベース・システム・ノードの数以上であることを確認します。
  • availability-statusOUT_OF_HOST_CAPACITYの場合、チェックされた可用性ドメインのシェイプを選択しないでください。別の可用性ドメインまたはサポートされている別のPostgreSQLシェイプを確認してください。
  • availability-statusHARDWARE_NOT_SUPPORTEDの場合、シェイプはその場所ではサポートされません。サポートされている別のシェイプまたは場所を選択してください。

容量レポートはポイント・イン・タイム・シグナルであり、容量を予約しません。候補シェイプに十分な可用性があることを確認した後、データベース・システムをすぐに作成します。

再試行および代替シェイプまたは可用性ドメインのチェック後も容量が使用できない場合は、Oracle Supportに連絡して、失敗した作業リクエストのOCID、リージョン、可用性ドメイン、元のシェイプ、チェックされた候補シェイプ、容量レポートの結果、およびおおよその再試行時間を提供してください。