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 afin d'éviter l'encombrement des tables ou des index. Il permet également de figer les ID de transaction pour éviter la réinitialisation de l'ID de transaction et de mettre à jour les statistiques de la table.
Pour en savoir plus sur le nettoyage, consultez Nettoyage de routine.
Pour automatiser le processus de nettoyage et de mise à jour collective des statistiques de table, AlloyDB Omni est compatible avec l'autovacuum adaptatif. L'autovacuum adaptatif permet d'ajuster automatiquement la charge de travail de nettoyage lorsque votre charge de travail change, supprime les tuples morts et met à jour les statistiques de la table.
L'autovacuum garantit des performances transactionnelles fiables et cohérentes de l'application, et maintient une 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 à l'aide d'indicateurs 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.
Prévention de la réinitialisation de l'ID de transaction AlloyDB Omni surveille la progression du nettoyage et la vitesse de consommation des ID de transaction. Si nécessaire, AlloyDB Omni limite sa consommation d'ID de transaction en nettoyant chaque table de la base de données, ce qui évite la réinitialisation des ID de transaction.
Nettoyage périodique des tables. AlloyDB Omni déclenche l'autovacuum en fonction du nombre de tuples morts et des pages à analyser. Il supprime les tuples morts en temps opportun pour éviter l'encombrement des tables ou des index.
Détection automatique des bloqueurs AlloyDB Omni détecte automatiquement les éléments bloquants, tels que les transactions de longue durée, les transactions préparées orphelines et les emplacements de réplication orphelins, et affiche des messages d'avertissement semblables aux suivants 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 les indicateurs de base de données d'une instance](/alloydb/omni/linux/18.3.0/docs/configure-database-flags) de sorte que enable_google_adaptive_autovacuum soit défini sur off.
AlloyDB Omni est compatible avec plusieurs options de base de données PostgreSQL standards liées à vacuum et autovacuum, par exemple vacuum_cost_delay et autovacuum_vacuum_cost_delay.
Vous n'avez pas besoin de définir de valeurs pour ces options 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 options, l'autovacuum adaptatif ajuste son comportement pour prendre en compte vos préférences.
Pour afficher la liste complète des indicateurs de base de données PostgreSQL compatibles liés à vacuum et autovacuum, consultez indicateurs vacuum et indicateurs autovacuum.