Le nettoyage est une opération de maintenance importante pour les bases de données PostgreSQL. Il permet de récupérer l'espace de stockage occupé par les lignes mises à jour ou supprimées pour éviter le gonflement des tables ou des index. Il est également utilisé pour figer les ID de transaction afin d'éviter la réinitialisation des ID de transaction et pour mettre à jour les statistiques du tableau.
Pour en savoir plus sur l'aspiration, consultez Aspiration de routine.
Pour automatiser le processus de nettoyage et de mise à jour collective des statistiques des tables, AlloyDB Omni est compatible avec le nettoyage automatique adaptatif. L'autovacuum adaptatif permet d'ajuster automatiquement la charge de travail d'aspiration lorsque votre charge de travail change, de supprimer les tuples morts et de mettre à jour les statistiques des tables.
Autovacuum assure des performances transactionnelles fiables et cohérentes pour les applications, et maintient la haute disponibilité du système en empêchant la réinitialisation de l'ID de transaction.
Par défaut, AlloyDB Omni active l'autovacuum adaptatif. Vous pouvez désactiver ou modifier l'autovacuum adaptatif sur AlloyDB Omni en utilisant des options de base de données.
Avantages
L'autovacuum adaptatif offre les avantages suivants :
Ajustement automatique des ressources : AlloyDB Omni ajuste automatiquement les ressources telles que le processeur, les E/S, le nombre de processus de nettoyage et la mémoire pour le processus de nettoyage en fonction de l'état en temps réel de la charge de travail et des ressources disponibles, sans affecter les performances du système.
Empêchez la réinitialisation de l'ID de transaction. AlloyDB Omni surveille la progression du vide et la vitesse de consommation des ID de transaction. Si nécessaire, AlloyDB Omni limite sa consommation d'ID de transaction en effectuant un nettoyage (vacuum) de chaque table de la base de données, ce qui empêche la réinitialisation de l'ID de transaction.
Nettoyage périodique des tables. AlloyDB Omni déclenche l'autovacuum en fonction du nombre de tuples inactifs et des pages à analyser. Il supprime les tuples morts en temps voulu pour éviter le gonflement des tables ou des index.
Détection automatique des blocages. AlloyDB Omni détecte automatiquement les bloqueurs tels que les transactions de longue durée, les transactions préparées orphelines et les emplacements de réplication orphelins. Il affiche des messages d'avertissement semblables à ceux ci-dessous dans le journal
postgres
: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.
Configurer l'autovacuum adaptatif
Par défaut, l'autovacuum adaptatif est activé sur AlloyDB Omni. Vous pouvez désactiver l'autovacuum adaptatif en définissant l'option de base de données enable_google_adaptive_autovacuum
d'une instance sur off
.
AlloyDB Omni est compatible avec plusieurs indicateurs de base de données PostgreSQL standards liés à vacuum et autovacuum, par exemple vacuum_cost_delay
et autovacuum_vacuum_cost_delay
.
Vous n'avez pas besoin de définir de valeurs dans l'un de ces indicateurs pour que l'autovacuum adaptatif fonctionne, car il adapte et optimise son comportement en fonction de vos charges de travail réelles.
Si vous définissez des valeurs dans ces indicateurs, l'ingestion automatique de données adaptative ajuste son comportement pour tenir compte de vos préférences.
Pour afficher la liste complète des options de base de données PostgreSQL compatibles liées à vacuum et autovacuum, consultez les options vacuum et les options autovacuum.