OCI Database with PostgreSQL-Konfigurationen verwalten

Verwenden Sie Konfigurationen, um Variablen zu verwalten und Erweiterungen für ein OCI Database with PostgreSQL-Datenbanksystem zu aktivieren.

Konfigurationen sind Variablenlisten sowie aktivierte und konfigurierte Erweiterungen, die Sie zum Optimieren, Optimieren oder Erweitern einer Datenbank festlegen können. Sets von Standardvariablen sind für die Hardwareausprägungen optimiert, die mit Datenbanksystemen verknüpft sind. Viele Erweiterungen werden automatisch für Datenbanksysteme aktiviert.

Administratoren können weitere Variablen festlegen und zusätzliche Erweiterungen aktivieren, indem sie eine neue benutzerdefinierte Konfiguration erstellen oder eine vorhandene Konfiguration kopieren. Nachdem eine Konfiguration einer Datenbank zugewiesen wurde, stehen dem Datenbankadministrator alle aktivierten Erweiterungen zur Verfügung.

Wichtig

Da der OCI Database with PostgreSQL-Service Konfigurationsvariablen für Sie optimiert, müssen möglicherweise nur fortgeschrittene Benutzer diese ändern und verwalten. Weitere Informationen finden Sie im PostgreSQL-Referenzhandbuch.

Variablen

Ausprägungsspezifische Standardkonfigurationen umfassen Variablen, die optimiert wurden, um eine optimale Out-of-the-box-Performance und -Verhalten zu bieten. Sie können diese Variablen anpassen, wenn Sie eine neue benutzerdefinierte Konfiguration erstellen oder eine vorhandene Konfiguration kopieren und die benutzerdefinierte Konfiguration auf ein Datenbanksystem anwenden.

Zu den Variablentypen gehören:

  • Benutzervariablen, die in einer benutzerdefinierten Konfigurationsliste geändert werden können. Sie können Benutzervariablen bearbeiten, wenn Sie eine Konfiguration erstellen oder kopieren. Einige Benutzervariablen sind Standardbenutzervariablen. Sie können diese Standardbenutzervariablen nicht aus einer Konfiguration entfernen.

    • Dynamische Variablen, die ohne Neustart der Datenbank geändert werden können.
    • Statische Variablen, bei denen PostgreSQL neu gestartet werden muss, um geändert zu werden.
  • Systemvariablen, die nicht geändert werden können. Systemvariablen werden entsprechend den Ausprägungen oder Anforderungen der Datenbank definiert.

Informationen zum Anzeigen der Werte, die mit einer bestimmten Konfigurationsvariablen verknüpft sind, finden Sie unter Standardkonfigurationsdetails abrufen und Benutzerdefinierte Konfigurationsdetails abrufen.

Weitere Informationen für Konfigurationsvariablen

oci.pagecache_size

Die Communityversion von PostgreSQL basiert auf dem Linux-BS, um den Speicher im System zu verwalten. Unter anderem verwendet es den Linux-Kernel-Seitencache, um zu vermeiden, dass die meisten Datenbankseiten auf die Festplatte gehen. Der Linux-Seitencache ist unbedingt sehr allgemein und wird nicht für PostgreSQL angepasst.

Im Gegensatz dazu führt OCI Database with PostgreSQL eine eigene Speicherverwaltung durch. OCI Database with PostgreSQL hat einen benutzerdefinierten Seitencache implementiert und verlässt sich nicht nur auf den Linux-Seitencache. Der benutzerdefinierte Seitencache ist vollständig im User Land implementiert und für PostgreSQL-Workloads effektiver (z. B. Vermeidung von Doppelpufferung). OCI Database with PostgreSQL weist einen festen Teil des Speichers für diesen benutzerdefinierten Seitencache vor und verwendet ihn nicht für andere Zwecke.

OCI Database with PostgreSQL ist, wie die Communityversion, so eingerichtet, dass shared_buffers eine gewisse Arbeitsspeichermenge zugewiesen wird.

Sowohl oci.pagecache als auch shared_buffers können mit Konfigurationsvariablen gesteuert werden.

  • oci.pagecache_size steuert die Speichermenge, die der benutzerdefinierten OCI Database with PostgreSQL-Seitencache zugewiesen ist. Diese Variable wurde in MiBytes definiert.
  • shared_buffers steuert die Speichermenge, die dem gemeinsamen PostgreSQL-Speicher für Datenseiten zugewiesen ist. Diese Variable wird in Blockgrößeneinheiten (8KiB) definiert.

Die Standardwerte sind ungefähr 50% Arbeitsspeicher für oci.pagecache_size und 25% Arbeitsspeicher für shared_buffers. Bei Standardeinstellungen werden immer etwa 75% des gesamten Speichers des Datenbanksystems zugewiesen. Metriken zeigen diesen Betrag als verwendet an. Dieser Speicher wird jedoch für PostgreSQL-Datenpuffer wie vorgesehen verwendet und führt nicht zu negativen Auswirkungen.

pg_cron.database_name

Standardmäßig kann die Erweiterung pg_cron nur in der Datenbank postgres erstellt werden. Wenn Sie versuchen, die Erweiterung zu erstellen, wird möglicherweise eine Fehlermeldung wie ERROR: can only create extension in database postgres angezeigt.

Um die Erweiterung in einer anderen Datenbank zu erstellen, müssen Sie den Wert des Parameters pg_cron.database_name in einer benutzerdefinierten Konfiguration anpassen. Beispiel:

pg_cron.database_name='<database_name>'

Weitere Informationen finden Sie unter pg_cron.

Flexible Konfigurationen und Ganzzahlvariablen

Einige Benutzervariablen werden durch Ganzzahlwerte angegeben. Wenn Sie eine feste Konfiguration verwenden, können Sie eine Variable wie max_connections auf einen bestimmten Wert setzen. Dieser Wert kann später nicht mehr geändert werden und die Konfiguration möglicherweise nicht mit anderen Datenbanksystemen kompatibel machen.

Mit einer flexiblen Konfiguration können Sie ganzzahlige Ausdrücke für Variablenwerte verwenden. Variablen, die Ganzzahlausdrücke verwenden, können flexibel zusammen mit Datenbanksystemen unterschiedlicher Hardwarekonfigurationen skaliert werden. Beispiel: Anstelle eines festgelegten Wertes für max_connections können Sie ihn mit dem Speicher der Instanz verknüpfen:

min(DB_INSTANCE_MEMORY_IN_BYTES/76251136,5000)

OCI Database with PostgreSQL unterstützt die folgenden Variablen in ganzzahligen Ausdrücken:

  • 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

Erforderliche IAM-Policy

Mit den folgenden Policy-Anweisungen kann eine Gruppe von Administratoren OCI Database with PostgreSQL-Datenbankkonfigurationen verwalten:

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

Weitere Informationen finden Sie unter OCI Database with PostgreSQL-Policys.