Domanda

Come si può dire se il demone Autovacuum In Postgres 9.x è in esecuzione e manutenzione del cluster di database?

È stato utile?

Soluzione

PostgreSQL 9.3

Determina se l'autovacuum è in esecuzione

Ciò è specifico per Postgres 9.3 su Unix. Per Windows, vedi questo domanda.

Tabella del sistema postgres query

SELECT
  schemaname, relname,
  last_vacuum, last_autovacuum,
  vacuum_count, autovacuum_count  -- not available on 9.0 and earlier
FROM pg_stat_user_tables;

Stato del processo del sistema GREP

$ ps -axww | grep autovacuum
24352 ??  Ss      1:05.33 postgres: autovacuum launcher process  (postgres)    

Grep Postgres Log

# grep autovacuum /var/log/postgresql
LOG:  autovacuum launcher started
LOG:  autovacuum launcher shutting down

Se vuoi saperne di più sul Autovacuum Attività, set log_min_messages a DEBUG1..DEBUG5. Il comando SQL VACUUM VERBOSE emetterà informazioni a livello di registro INFO.


Per quanto riguarda il demone Autovacuum, lo stato di Posgres Docs:

Nella configurazione predefinita, AutovaCuuming è abilitato e i parametri di configurazione correlati sono impostati in modo appropriato.

Guarda anche:

Altri suggerimenti

Sto usando:

select count(*) from pg_stat_activity where query like 'autovacuum:%';

In Collecd per sapere quante autovacuum sono in esecuzione contemporaneamente.

Potrebbe essere necessario creare una funzione di sicurezza come questa:

CREATE OR REPLACE FUNCTION public.pg_autovacuum_count() RETURNS bigint
AS 'select count(*) from pg_stat_activity where query like ''autovacuum:%'';'
LANGUAGE SQL
STABLE
SECURITY DEFINER;

E chiamalo da CollectD.

Nelle precedenti postgres, "query" era "current_query", quindi cambiarlo in base a ciò che funziona.

Puoi anche eseguire PG_Activity per vedere le query attualmente in esecuzione nel tuo database. In genere lascio un terminale aperto con questo in esecuzione per la maggior parte del tempo comunque come lo è molto utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top