Pregunta

¿Cómo se puede decir si el demonio autovacuo ¿En Postgres 9.X está ejecutando y manteniendo el clúster de la base de datos?

¿Fue útil?

Solución

PostgreSQL 9.3

Determinar si Autovacuum se está ejecutando

Esto es específico para Postgres 9.3 en UNIX. Para Windows, vea esto pregunta.

Tabla del sistema Postgres de consulta

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)    

GRP Postgres Log

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

Si quieres saber más sobre el autovacuo actividad, establecer log_min_messages a DEBUG1..DEBUG5. El comando sql VACUUM VERBOSE emitirá información a nivel de registro INFO.


Con respecto al Daemon Autovacuum, los Docs de Posgres están al estado:

En la configuración predeterminada, Autovacuuming está habilitado y los parámetros de configuración relacionados se establecen adecuadamente.

Ver también:

Otros consejos

Estoy usando:

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

en Collectd para saber cuántos autovacuum se ejecutan simultáneamente.

Es posible que deba 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 llame eso de 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. Generalmente dejo una terminal abierta con esto corriendo la mayor parte del tiempo de todos modos, ya que es muy útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top