PostgreSQL構成を使用したOCIデータベースの管理

構成を使用して、PostgreSQLデータベース・システムで変数を管理し、OCIデータベースの拡張を有効にします。

構成は、変数のリストであり、データベースのチューニング、最適化または拡張に設定できる有効化および構成済の拡張です。デフォルトの変数のセットは、データベース・システムに関連付けられたハードウェア・シェイプ用に最適化されています。データベース・システムでは、多くの拡張が自動的に有効になります。

管理者は、新しいカスタム構成を作成するか、既存の構成をコピーすることで、より多くの変数を設定し、追加の拡張を有効にできます。構成がデータベースに割り当てられると、データベース管理者は有効な拡張を使用できます。

重要

PostgreSQLサービスを使用するOCIデータベースは構成変数を最適化するため、変更および管理が必要なのは上級ユーザーのみです。詳細は、PostgreSQLリファレンス・マニュアルを参照してください。

変数

シェイプ固有のデフォルト構成には、すぐに使用できるパフォーマンスと動作を提供するように最適化されている変数が含まれます。これらの変数は、新しいカスタム構成の作成または既存の構成のコピー時にカスタマイズして、データベース・システムにカスタム構成を適用できます。

変数タイプ:

  • ユーザー変数。カスタム構成リストで変更できます。構成を作成またはコピーするときに、ユーザー変数を編集できます。一部のユーザー変数はデフォルトのユーザー変数です。これらのデフォルトのユーザー変数は構成を削除できません。

    • 動的変数。データベースを再起動せずに変更できます。
    • 静的変数。変更するには、PostgreSQLを再起動する必要があります。
  • システム変数。変更できません。システム変数は、データベースのシェイプまたは要件に従って定義されます。

特定の構成変数に関連付けられた値を表示するには、デフォルトの構成詳細の取得およびカスタム構成詳細の取得を参照してください。

構成変数の詳細情報

oci.pagecache_size

PostgreSQLのコミュニティ・バージョンは、Linux OSを使用してシステム上のメモリーを管理します。特に、ほとんどのデータベース・ページのディスクに移動しないように、Linuxカーネル・ページ・キャッシュを使用します。Linuxページ・キャッシュは非常に一般的であり、PostgreSQL用にカスタマイズされていません。

一方、PostgreSQLを使用するOCIデータベースは、独自のメモリー管理を行います。OCI Database with PostgreSQLは、カスタム・ページ・キャッシュを実装し、Linuxページ・キャッシュのみに依存しません。カスタム・ページ・キャッシュは、ユーザー・ランドに完全に実装され、PostgreSQLワークロード(二重バッファリングの回避など)に対してより効果的です。PostgreSQLを使用するOCIデータベースでは、このカスタム・ページ・キャッシュに固定部分のメモリーが事前に割り当てられ、他の目的では使用されません。

PostgreSQLを使用したOCIデータベースは、コミュニティ・バージョンと同様に、shared_buffersにメモリー量を割り当てるように設定されています。

oci.pagecacheshared_buffersの両方は、構成変数を使用して制御できます。

  • oci.pagecache_sizeは、PostgreSQLカスタム・ページ・キャッシュを使用してOCIデータベースに割り当てられるメモリー量を制御します。この変数は、MiBytesで定義されます。
  • shared_buffersは、データ・ページのPostgreSQL共有メモリーに割り当てられるメモリーの量を制御します。この変数は、ブロック・サイズ単位(8KiB)で定義されます。

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

pg_cron.database_name

デフォルトでは、pg_cron拡張子はpostgresデータベースでのみ作成できます。拡張機能を作成しようとすると、ERROR: can only create extension in database postgresなどのエラー・メッセージが表示されることがあります。

他のデータベースで拡張を作成するには、カスタム構成でパラメータpg_cron.database_nameの値を調整する必要があります。たとえば:

pg_cron.database_name='<database_name>'

詳細は、pg_cronを参照してください。

柔軟な構成と整数変数

一部のユーザー変数は整数値で指定されます。固定構成を使用している場合は、max_connectionsなどの変数を特定の値に設定できます。この値は後で変更できず、構成が他のデータベース・システムと互換性を持たない可能性があります。

柔軟な構成では、変数値に整数式を使用できます。整数式を使用する変数は、異なるハードウェア構成のデータベース・システムとともに柔軟にスケーリングできます。たとえば、max_connectionsの設定値のかわりに、それをインスタンスのメモリーに結び付けることができます。

min(DB_INSTANCE_MEMORY_IN_BYTES/76251136,5000)

PostgreSQLを持つOCIデータベースでは、整数式で次の変数がサポートされます:

  • DB_INSTANCE_OCPU_COUNT
  • DB_INSTANCE_MEMORY_IN_BYTES
  • DB_INSTANCE_MEMORY_IN_KILOBYTES
  • DB_INSTANCE_MEMORY_IN_MEGABYTES
  • DB_INSTANCE_MEMORY_IN_GIGABYTES
  • DB_INSTANCE_MEMORY_IN_TERABYTES

必要なIAMポリシー

次のポリシー・ステートメントを使用すると、管理者のグループがPostgreSQLデータベース構成でOCIデータベースを管理できます:

Allow group <postgresql-admin-group> to read compartments in tenancy
Allow group <postgresql-admin-group> to manage postgres-configuration in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
Allow group <postgresql-admin-group> to use tag-namespaces in tenancy

詳細は、PostgreSQLポリシーを含むOCIデータベースを参照してください。