In diesem Dokument werden die Grundlagen des VACUUM
-Vorgangs in PostgreSQL beschrieben. Außerdem werden die Mechanismen zum Überwachen und Optimieren der Datenbank-Engine beschrieben, die den Zustand von Datenbankinstanzen aufrechterhält.
PostgreSQL verwendet ein Snapshot-basiertes Gleichzeitigkeitsprotokoll, das mehrere Versionen von Datenzeilen erstellt, während die Daten geändert werden. Diese Datenzeilenversionen werden verwendet, um eine sichtbare Version der Daten mithilfe eines berechneten Snapshots zu lesen, ohne eine Lesesperre für die Datenzeile zu erhalten. PostgreSQL verwaltet für jede Datenzeile Transaktions-IDs (eingefügte und gelöschte Transaktionen) und verwendet die Transaktions-IDs zusammen mit dem berechneten Snapshot, um die Sichtbarkeit der Zeile zu bestimmen. Da die Daten aufgrund alter Datenversionen immer länger werden, nimmt die Zeit für das Scannen der Daten (Tabellenscan oder Indexscan) zu. Um die Antwortzeit des Scanvorgangs zu optimieren und Speicherplatz effizient zu nutzen, müssen Sie die Versionen und die Metadaten zurückholen, die zur Verwaltung der Versionen verwendet werden (z. B. Transaktions-ID).
Der Vorgang VACUUM
holt die gelöschten Versionen (automatische Speicherbereinigung) und Transaktions-IDs zurück (Transaktions-ID fixieren). Der Vorgang VACUUM
arbeitet mit Daten in verschiedenen Modi mit unterschiedlichen Leveln der Datenverfügbarkeit. Das Fixieren von Transaktions-IDs ist für den Zustand des Datenbanksystems von entscheidender Bedeutung, da das System Autoren immer dann blockiert, wenn der verwendete Transaktions-ID-Bereich reservierten Bereich betritt.
Die von Ihnen konfigurierten autovacuum
-Jobs versuchen immer wieder, die Transaktions-ID zurückzuholen. Sie können jedoch fehlschlagen. Dieser Fehler ist entweder auf eine unzureichende Konfiguration zurückzuführen oder eine so hohe Erstellungsrate für Transaktions-IDs, sodass der autovacuum
-Job bei der Arbeitslast nicht mehr hinterherkommt. In diesem Dokument erfahren Sie, wie Sie die VACUUM
-Vorgänge zusammen mit den Mechanismen für die Feinabstimmung und Überwachung verschiedener Aspekte von VACUUM
-Vorgängen verwenden.
Übersicht
In diesem Dokument wird Folgendes behandelt:
- Transaktions-IDs fixieren.
- Transaktions-IDs überwachen.
- Speicherplatz freigeben.
- Automatische Cloud Monitoring-Benachrichtigungen konfigurieren.
Klicken Sie auf die Schaltfläche, um das vollständige Dokument zu lesen: