Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Spiegazione dei messaggi NOTICE in RDS per PostgreSQL
La funzione postgres_get_av_diag() fornisce i seguenti messaggi NOTICE:
- Scenario in cui l’età non ha ancora raggiunto la soglia di monitoraggio
-
Per impostazione predefinita, la soglia di monitoraggio per
postgres_get_av_diag()che consente di identificare gli elementi bloccanti è di 500 milioni di transazioni. Sepostgres_get_av_diag()genera il seguente messaggio NOTICE, significa che l’età delle transazioni non ha ancora raggiunto tale soglia.NOTICE:
postgres_get_av_diag()checks for blockers that prevent aggressive vacuums only, it does so only after exceedingdvb_thresholdwhich is 500,000,000 and age of this PostgreSQL cluster is currently at 2. - Mancata connessione al database con l’età dell’ID transazione meno recente
-
La funzione
postgres_get_av_diag()fornisce l’output più accurato quando è connessa al database con l’età dell’ID transazione meno recente. Nel caso in questione, il database con l’età dell’ID transazione meno recente riportato dapostgres_get_av_diag()è diverso da “my_database”. In caso di mancata connessione al database corretto, viene generato il seguente messaggio NOTICE:NOTICE: You are not connected to the database with the age of oldest transaction ID. Connect to my_database database and run postgres_get_av_diag() for accurate reporting.
La connessione al database con l’età della transazione meno recente è importante per i seguenti motivi:
-
Identificazione degli elementi bloccanti costituiti da tabelle temporanee: i metadati per le tabelle temporanee sono specifici di ogni database, pertanto solitamente sono contenuti nel database in cui sono stati creati. Tuttavia, se una tabella temporanea è l’elemento bloccante principale ed è contenuta nel database con la transazione meno recente, la situazione potrebbe risultare fuorviante. La connessione al database corretto garantisce l’identificazione accurata dell’elemento bloccante costituito da una tabella temporanea.
-
Diagnosi dei problemi correlati a processi di vacuum a esecuzione lenta: le informazioni sul numero di tabelle e i metadati degli indici sono specifici di ogni database e sono necessari per diagnosticare eventuali problemi correlati a processi di vacuum a esecuzione lenta.
-
- Scenario in cui il database con la transazione meno recente per età è un database rdsadmin o template0
-
In alcuni casi, è possibile che un database
rdsadminotemplate0venga identificato come il database con l’età dell’ID transazione meno recente. In tali casi,postgres_get_av_diag()genera il seguente messaggio NOTICE:NOTICE: The database with the age of oldest transaction ID is
rdsadminortemplate0, reach out to support if the reported blocker is inrdsadminortemplate0.Verifica che l’elemento bloccante indicato non provenga da nessuno di questi due database. Se viene segnalata la presenza dell’elemento bloccante nel database
rdsadminotemplate0, contatta il supporto poiché tali database non sono accessibili all’utente e richiedono un intervento.È altamente improbabile che il database
rdsadminotemplate0contenga un elemento bloccante principale. - Scenario in cui è già in esecuzione un processo di vacuum aggressivo
-
La funzione
postgres_get_av_diag()è progettata per segnalare quando è in corso un processo di vacuum aggressivo, ma attiva questo output solo dopo che il processo di vacuum è rimasto attivo per almeno 1 minuto. Questo ritardo intenzionale aiuta a ridurre le possibilità di falsi positivi. L’attesa fa sì che la funzione segnali solo i processi di vacuum efficaci e significativi, permettendo un monitoraggio più accurato e affidabile dell’attività di vacuum.La funzione
postgres_get_av_diag()genera il seguente messaggio NOTICE quando rileva uno o più processi di vacuum aggressivi in esecuzione.NOTICE: Your database is currently running aggressive vacuum to prevent wraparound, monitor autovacuum performance.
Come indicato nel messaggio NOTICE, occorre continuare a monitorare le prestazioni dell’attività di vacuum. Per ulteriori informazioni sui processi di vacuum aggressivi, consulta Esecuzione di un processo di vacuum aggressivo (per evitare il wraparound).
- Scenario in cui la funzionalità di autovacuum è disattivata
-
La funzione
postgres_get_av_diag()genera il seguente messaggio NOTICE se la funzionalità di autovacuum è disabilitata in un’istanza database:NOTICE: Autovacuum is OFF, we strongly recommend to enable it, no restart is necessary.
Autovacuum è una funzionalità fondamentale delle istanze database RDS per PostgreSQL in quanto garantisce il corretto funzionamento del database. Rimuove automaticamente le versioni precedenti delle righe, recupera spazio di archiviazione e impedisce il bloat delle tabelle, garantendo così l’efficacia di tabelle e indici per prestazioni ottimali. Inoltre, evita il wraparound degli ID transazione, che può interrompere le transazioni sulle istanze Amazon RDS. Disabilitando la funzionalità di autovacuum, è possibile che la stabilità e le prestazioni del database subiscano una riduzione a lungo termine. Pertanto suggeriamo di lasciarla sempre attivata. Per ulteriori informazioni, consulta Informazioni sull’autovacuum in ambienti RDS per PostgreSQL
. Nota
La disattivazione della funzionalità di autovacuum non blocca i processi di vacuum aggressivi. Tali problemi continueranno a verificarsi quando le tabelle raggiungeranno la soglia
autovacuum_freeze_max_age. - Scenario in cui il numero di transazioni rimanenti è estremamente basso
-
La funzione
postgres_get_av_diag()genera il seguente messaggio NOTICE quando è imminente un processo di vacuum per wraparound. Questo messaggio NOTICE viene generato quando, in un’istanza Amazon RDS, mancano solo 100 milioni di transazioni prima che possa verificarsi il rifiuto di nuove transazioni.WARNING: Number of transactions remaining is critically low, resolve issues with autovacuum or perform manual
VACUUM FREEZEbefore your instance stops accepting transactions.È necessaria un’azione immediata per evitare un tempo di inattività del database. Occorre monitorare attentamente le operazioni di vacuum e valutare la possibilità di avviare manualmente un processo
VACUUM FREEZEsul database interessato per evitare errori nelle transazioni.