Auf dieser Seite erhalten Sie einen Überblick über die adaptive automatische Bereinigung in AlloyDB for PostgreSQL und erfahren, wie Sie sie konfigurieren.
Das Ausführen von VACUUM ist ein wichtiger Vorgang zur Wartung von PostgreSQL-Datenbanken. So wird Speicherplatz wiederhergestellt, der von aktualisierten oder gelöschten Zeilen belegt wird, um eine unnötige Ausweitung von Tabellen oder Indexen zu vermeiden. Außerdem wird er zum Fixieren von Transaktions-IDs verwendet, um einen Transaktions-ID-Wraparound zu verhindern, und zum Aktualisieren der Tabellenstatistiken.
Weitere Informationen zum Staubsaugen finden Sie unter Routine-Saugen.
AlloyDB unterstützt die adaptive automatische Datenbereinigung, um das Leeren und die gemeinsame Aktualisierung der Tabellenstatistiken zu automatisieren. Mit dem adaptiven Auto-Vacuum wird die Vakuumarbeitslast automatisch angepasst, wenn sich Ihre Arbeitslast ändert. Außerdem werden inaktive Tupel entfernt und Tabellenstatistiken aktualisiert.
Autovacuum sorgt für eine zuverlässige und gleichbleibende Transaktionsleistung der Anwendung und aufrechterhält die hohe Verfügbarkeit des Systems, indem der Transaktions-ID-Wraparound verhindert wird.
In AlloyDB ist standardmäßig die adaptive Autovacuum-Funktion aktiviert. Sie können die adaptive automatische Bereinigung in AlloyDB mithilfe von Datenbank-Flags deaktivieren oder ändern.
Vorteile
Adaptives Autovacuum bietet folgende Vorteile:
Automatische Anpassung der Ressourcen AlloyDB passt Ressourcen wie CPU, E/A, Anzahl der Vakuumprozesse und Arbeitsspeicher für den Vakuumprozess automatisch anhand des Echtzeitstatus der Arbeitslast und der verfügbaren Ressourcen an, ohne die Systemleistung zu beeinträchtigen.
Verhinderung des Transaktions-ID-Wraparounds AlloyDB überwacht den Fortschritt der Datenbereinigung und die Geschwindigkeit der Transaktions-ID-Nutzung. Bei Bedarf drosselt AlloyDB die Nutzung der Transaktions-ID, indem jede Tabelle in der Datenbank geräumt wird. So wird ein Transaktions-ID-Wraparound verhindert.
Regelmäßiges Leeren von Tabellen. AlloyDB löst das automatische Entfernen von fehlerhaften Tupeln basierend auf der Anzahl der fehlerhaften Tupel und der Seiten aus, die gescannt werden müssen. Es entfernt veraltete Tupel zeitnah, um eine unnötige Größe von Tabellen oder Indexen zu vermeiden.
Automatische Erkennung von Blockern AlloyDB erkennt automatisch Blockierungen wie langlaufende Transaktionen, verwaiste vorbereitete Transaktionen und verwaiste Replikationsslots und zeigt im
postgres
-Log Warnmeldungen wie die folgende an:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
Adaptives Autovacuum konfigurieren
Die adaptive automatische Bereinigung ist in AlloyDB standardmäßig aktiviert. Sie können das adaptive Autovakuum deaktivieren, indem Sie das enable_google_adaptive_autovacuum
-Datenbankflag einer Instanz auf off
festlegen.
Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.
AlloyDB unterstützt mehrere Standard-PostgreSQL-Datenbank-Flags im Zusammenhang mit „vacuum“ und „autovacuum“, z. B. vacuum_cost_delay
und autovacuum_vacuum_cost_delay
.
Sie müssen keine Werte für diese Flags festlegen, damit die adaptive automatische Bereinigung funktioniert, da sie ihr Verhalten an Ihre tatsächlichen Arbeitslasten anpasst und optimiert.
Wenn Sie Werte in diesen Flags festlegen, passt das adaptive Autovacuum-System sein Verhalten an Ihre Einstellungen an.
Eine vollständige Liste der unterstützten PostgreSQL-Datenbank-Flags für die Funktionen „vacuum“ und „autovacuum“ finden Sie unter vacuum-Flags und autovacuum-Flags.