Frage

Wie kann man sagen, ob die Autovacuum Dämon In Postgres 9.x wird der Datenbankcluster ausgeführt und verwaltet?

War es hilfreich?

Lösung

PostgreSQL 9.3

Stellen Sie fest, ob Autovacuum ausgeführt wird

Dies ist spezifisch für Postgres 9.3 auf UNIX. Für Windows sehen Sie dies Frage.

Abfragen postgres Systemtabelle

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

Grep -System -Prozessstatus

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

Grep Postgres Protokoll

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

Wenn Sie mehr über die erfahren möchten Autovakuum Aktivität, festgelegt log_min_messages zu DEBUG1..DEBUG5. Der SQL -Befehl VACUUM VERBOSE Ausgabe Informationen auf Protokollebene aus. INFO.


In Bezug auf das Autovacuum Dämon statten die Posens -Dokumente:

In der Standardkonfiguration ist die AutoVacuuming aktiviert und die zugehörigen Konfigurationsparameter werden angemessen eingestellt.

Siehe auch:

Andere Tipps

Ich benutze:

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

In Collectd, um zu wissen, wie viele Autovacuum gleichzeitig laufen.

Möglicherweise müssen Sie eine solche Sicherheitsfunktion erstellen:

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;

und rufen Sie das von Collectd an.

In früheren Postgres war "Query" "Current_query". Ändern Sie es also je nach Funktion, was funktioniert.

Sie können auch pg_Activity ausführen, um die derzeit ausgeführten Abfragen in Ihrer Datenbank zu sehen. Ich lasse im Allgemeinen sowieso ein Terminal offen, da es die meiste Zeit so läuft, wie es ist sehr nützlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top