Ändern der Konfiguration von PostgreSQL
Gen 2
Mit IBM Cloud® Databases for PostgreSQL Gen 2 können Sie Datenbankparameter sowohl bei der Bereitstellung als auch bei einer laufenden Instanz über die API oder die CLI konfigurieren. Einige Parameter erfordern einen schrittweisen Neustart (jedes Mitglied wird nacheinander neu gestartet); andere werden sofort und ohne Ausfallzeit angewendet.
Bereitstellung einer neuen Instanz mit benutzerdefinierten Parametern
Geben Sie nur die Parameter an, die Sie festlegen möchten.
Bereitstellung über die CLI
ibmcloud resource service-instance-create <INSTANCE_NAME> databases-for-postgresql <SERVICE_PLAN_NAME> <REGION> \
-p '{
"dataservices": {
"postgresql": {
"configuration": {
"max_connections": 300,
"log_connections": true,
"log_disconnections": true,
"log_min_duration_statement": 500,
"max_locks_per_transaction": 128,
"max_prepared_transactions": 50,
"wal_level": "logical",
"shared_buffers": 196608,
"max_worker_processes": 16,
"max_logical_replication_workers": 8,
"max_wal_senders": 20,
"max_replication_slots": 20,
"pgaudit.log": "ddl,role,read",
"pgaudit.role": "auditor"
}
}
}
}'
Bereitstellung über die API
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H "Authorization: Bearer $IBMCLOUD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "<INSTANCE_NAME>",
"resource_plan_id": "<SERVICE_PLAN_ID>",
"resource_group": "<RESOURCE_GROUP_ID>",
"target": "<REGION>",
"parameters": {
"dataservices": {
"postgresql": {
"configuration": {
"max_connections": 300,
"log_connections": true,
"log_disconnections": true,
"log_min_duration_statement": 500,
"max_locks_per_transaction": 128,
"max_prepared_transactions": 50,
"wal_level": "logical",
"shared_buffers": 196608,
"max_worker_processes": 16,
"max_logical_replication_workers": 8,
"max_wal_senders": 20,
"max_replication_slots": 20,
"pgaudit.log": "ddl,role,read",
"pgaudit.role": "auditor"
}
}
}
}
}'
Aktualisieren von Parametern auf einer laufenden Instanz
Geben Sie nur die Parameter an, die Sie ändern möchten; alle anderen bleiben unverändert. Ungültige Parameterwerte werden mit einem 4xx-Fehler zurückgewiesen.
Über die Befehlszeilenschnittstelle (CLI) aktualisieren
ibmcloud resource service-instance-update <INSTANCE_NAME_OR_CRN> \
-p '{
"dataservices": {
"postgresql": {
"configuration": {
"max_connections": 300,
"log_connections": true,
"log_disconnections": true,
"log_min_duration_statement": 500,
"max_locks_per_transaction": 128,
"max_prepared_transactions": 50,
"wal_level": "logical",
"shared_buffers": 196608,
"max_worker_processes": 16,
"max_logical_replication_workers": 8,
"max_wal_senders": 20,
"max_replication_slots": 20,
"pgaudit.log": "ddl,role,read",
"pgaudit.role": "auditor"
}
}
}
}'
Aktualisierung über die API
curl -X PATCH \
https://resource-controller.cloud.ibm.com/v2/resource_instances/<INSTANCE_ID> \
-H "Authorization: Bearer $IBMCLOUD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"dataservices": {
"postgresql": {
"configuration": {
"max_connections": 300,
"log_connections": true,
"log_disconnections": true,
"log_min_duration_statement": 500,
"max_locks_per_transaction": 128,
"max_prepared_transactions": 50,
"wal_level": "logical",
"shared_buffers": 196608,
"max_worker_processes": 16,
"max_logical_replication_workers": 8,
"max_wal_senders": 20,
"max_replication_slots": 20,
"pgaudit.log": "ddl,role,read",
"pgaudit.role": "auditor"
}
}
}
}
}'
Konfigurieren der Parameter von PostgreSQL
max_connections
- Typ: Ganzzahl
- Standard: 115
- Umfang: 25 – 500
- Neustart erforderlich: Ja
Maximale Anzahl gleichzeitiger Client-Verbindungen. Der Standardwert von 115 reserviert 15 Verbindungen für die Plattformüberwachung; 100 stehen für Client-Workloads zur Verfügung.
log_connections
- Typ: Boolesch
- Standard: false
- Neustart erforderlich: Nein
Jede erfolgreiche Verbindung wird protokolliert, was für Compliance-Prüfpfade (z. B. SOC 2 oder PCI DSS) nützlich ist.
log_disconnections
- Typ: Boolesch
- Standard: false
- Neustart erforderlich: Nein
Protokolliert jede Sitzung bei der Trennung der Verbindung, einschließlich der Sitzungsdauer.
log_min_duration_statement
- Typ: Ganzzahl (Millisekunden)
- Standardwert: 100
- Umfang: -1 – 3.600.000
- Neustart erforderlich: Nein
Protokolliert Anweisungen, die die angegebene Dauer (ms) überschreiten. Setzen Sie den Wert auf -1, um die Funktion zu deaktivieren, und auf 0, um alle Anweisungen zu protokollieren.
max_locks_per_transaction
- Typ: Ganzzahl
- Standard: 64
- Bereich: 10 – 1.024
- Neustart erforderlich: Ja
Durchschnittliche Anzahl der pro Transaktion verfügbaren Objektsperren.
max_prepared_transactions
- Typ: Ganzzahl
- Standard: 0
- Umfang: 0 – 500
- Neustart erforderlich: Ja
Maximale Anzahl von Transaktionen im vorbereiteten Zustand. Setzen Sie den Wert auf 0 (Standard), um das zweistufige Commit zu deaktivieren. Setzen Sie diesen Wert nur dann auf einen Wert ungleich Null, wenn Ihre Anwendung PREPARE TRANSACTION verwendet. Wenn diese Option aktiviert ist, sollte dieser Wert dem Wert von max_connections entsprechen.
wal_level
- Typ: Aufzählung
- Standard: logisch
- Gültige Werte: Replik, logisch
- Neustart erforderlich: Ja
Steuert den Ausführlichkeitsgrad der WAL. logical unterstützt logische Replikation und CDC; replica unterstützt ausschließlich physische Replikation.
Eine Reduzierung von logisch auf Replik kann dazu führen, dass bestehende logische Replikationsslots nicht mehr verwendet werden können. Stellen Sie sicher, dass keine CDC- oder logischen Replikations-Workloads aktiv sind, bevor Sie diesen Wert ändern.
max_wal_senders
- Typ: Ganzzahl
- Standard: 10
- Umfang: 10 – 40
- Neustart erforderlich: Ja
Maximale Anzahl gleichzeitig laufender WAL-Sender-Prozesse. Für jeden logischen Replikationsabonnenten und jeden physischen Standby-Server ist ein Sender erforderlich.
max_replication_slots
- Typ: Ganzzahl
- Standard: 10
- Umfang: 10 – 40
- Neustart erforderlich: Ja
Maximale Anzahl an Replikationsslots. Jeder Abonnent der logischen Replikation benötigt einen Slot. Löschen Sie nicht genutzte Slots umgehend, da aufgegebene Slots WAL-Daten behalten und den Speicherplatz auf der Festplatte belasten können. Die Bedingung max_wal_senders >= max_replication_slots muss erfüllt sein.
max_worker_processes
- Typ: Ganzzahl
- Standard: 8
- Mindestanzahl: 8
- Maximal: Speicher-gestaffelt. 8, 16, 24 oder 32, je nach RAM-Auslastung der Host-Variante
- Neustart erforderlich: Ja
Gesamtbudget für Hintergrundprozesse, das sich auf logische Replikation und andere Hintergrundaufgaben verteilt.
| Host-RAM | Maximaler Wert für max_worker_processes |
|---|---|
| Weniger als 16. GiB | 8 |
| 16–31 GiB | 16 |
| 32 – 63 GiB | 24 |
| 64 GiB oder mehr | 32 |
Die Bedingung max_worker_processes >= max_logical_replication_workers + 4 muss erfüllt sein.
max_logical_replication_workers
- Typ: Ganzzahl
- Standard: 4
- Mindestanzahl: 4
- Maximal: Speicher-Tier — 4, 12, 20 oder 28, je nach RAM-Kapazität der Host-Variante
- Neustart erforderlich: Ja
Für die logische Replikation verfügbare Worker. Das Maximum liegt bei der Stufe max_worker_processes – 4:
| Host-RAM | Maximaler Wert für max_logical_replication_workers |
|---|---|
| Weniger als 16. GiB | 4 |
| 16–31 GiB | 12 |
| 32 – 63 GiB | 20 |
| 64 GiB oder mehr | 28 |
pgaudit.log
- Typ: Zeichenfolge (durch Kommas getrennte Ereignisklassen)
- Standard: ddl
- Neustart erforderlich: Nein
Durch Kommas getrennte Liste der zu prüfenden Anweisungsklassen:
| Klasse | Protokollierte Aussagen |
|---|---|
| Lesen | SELECT, COPY FROM |
| Schreiben | INSERT, UPDATE, DELETE, TRUNCATE, COPY TO |
| Function | Funktionsaufrufe und DO-Blöcke |
| Rolle | GRANT, REVOKE, Änderungen an Rollen und Berechtigungen |
| DDL | Alle DDL-Anweisungen mit Ausnahme der rollenbezogenen Anweisungen |
| Misc | DISCARD, FETCH, CHECKPOINT, VACUUM, SET |
| misc_set | Nur SET-Anweisungen |
| Alle | Alle bisherigen Aussageklassen |
| keine | Deaktiviert die Protokollierung der Sitzungsüberwachung |
Die Verwendung von all oder write on busy kann zu hohem Protokollaufkommen führen.
pgaudit.role
- Typ: Zeichenfolge
- Standard: "" (leer – Audit-Protokollierung auf Objektebene deaktiviert)
- Neustart erforderlich: Nein
Rolle, die für die Protokollierung von Prüfprotokollen auf Objektebene verwendet wird. pgAudit protokolliert Aktivitäten an Objekten, für die diese Rolle Berechtigungen besitzt. Die Rolle muss bereits vorhanden sein, bevor Sie diesen Parameter festlegen.