postgresql unix autovacuum

¿Cómo puedo saber si Autovacuum de PostgreSQL se está ejecutando en UNIX?



(3)

PostgreSQL 9.3

Determine si Autovacuum se está ejecutando

Esto es específico de Postgres 9.3 en UNIX. Para Windows, vea esta question .

Query Postgres System Table

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

Estado del proceso 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

Si desea saber más sobre la actividad de autovacuum , configure log_min_messages en DEBUG1..DEBUG5 . El comando SQL VACUUM VERBOSE emitirá información a nivel de registro INFO .

Con respecto al Daemon Autovacuum, los documentos de Posgres declaran:

En la configuración predeterminada, se habilita el vacío automático y se configuran adecuadamente los parámetros de configuración relacionados.

Ver también:

¿Cómo se puede saber si el demonio de autovacuum en Postgres 9.x está ejecutando y manteniendo el clúster de la base de datos?


Estoy usando:

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

en collectd para saber cuántos autovacuum se están ejecutando al mismo tiempo.

Puede que necesites crear una función de seguridad como esta:

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;

y llamar a eso desde collectd.

En Postgres anterior, "consulta" era "current_query", así que cámbielo de acuerdo con lo que funciona.


También puede ejecutar pg_activity para ver las consultas actualmente en ejecución en su base de datos. En general, de todas formas, dejo una terminal abierta, ya que es muy útil.