2010-01-08 8 views
8

In den Tagen vor 8.x habe ich zahlreiche PGSQL-Datenbanken unter Linux ausgeführt und die Datenbank explizit über Wartungsskript abgesaugt.Wie kann ich feststellen, ob Autovacuum unter Windows Server 2003 für meine PGSQL-Datenbank ausgeführt wird?

Als 8.x kam ich nicht auf diese Systeme AutoVakuum auf der Grundlage, dass es funktioniert gut, so dass keine Notwendigkeit, etwas zu ändern. Also bin ich kein Autovakuum-Experte.

Jetzt in der Post-8.x-Ära finde ich mich mit einigen PGSQL-Datenbanken auf Windows Server 2003 oder neuer.

Es sieht aus wie autovacuum sollte laufen, weil wir die Anweisungen befolgt haben und ließ es in der .conf-Datei eingeschaltet.

Wenn PGAdmin jedoch mit der Datenbank verbunden wird, werden wir aufgefordert, VACUUM auszuführen.

Wie können Sie feststellen, ob der Autovacuum-Daemon ausgeführt wird und nach Ihren Datenbanken sucht und diese richtig absaugt?

+0

Eine UNIX-spezifische Antwort finden Sie unter http://stackoverflow.com/q/19826467/41906. –

Antwort

8

Es gibt Spalten in pg_stat_user_tables, die auflisten, wann das letzte Autovacuum und Autoanalyze auf einer Tabelle ausgeführt wurde - das ist ein guter Ausgangspunkt. Und natürlich enthält das Logfile Informationen darüber, was Autovacuum macht.

Sie können die postgres.exe-Prozesse mit einem Tool wie Process Explorer genauer betrachten. Es wird einen Mutex geben, der speziell benannt wurde, um die unter Unix verfügbaren ps-Kommandozeilen-Informationen zu emulieren. Es sollte leicht zu finden sein. Und Sie können einfach nach "Autovacuum" suchen, um sicherzustellen, dass es läuft.

+0

Ah. Ausgezeichnet, das sieht vielversprechend aus. Ich werde in dieser Tabelle und dem Logfile herumstochern und diese Antwort angemessen bewerben. – liamf

Verwandte Themen