Postgres 9.xでautovacuumデーモンが実行され、データベースクラスターを維持していることを確認するにはどうすればよいですか?
これは、UNIX上のPostgres 9.3に固有です。 Windowsの場合、これを参照してください question 。
SELECT
schemaname, relname,
last_vacuum, last_autovacuum,
vacuum_count, autovacuum_count -- not available on 9.0 and earlier
FROM pg_stat_user_tables;
$ ps -axww | grep autovacuum
24352 ?? Ss 1:05.33 postgres: autovacuum launcher process (postgres)
# grep autovacuum /var/log/postgresql
LOG: autovacuum launcher started
LOG: autovacuum launcher shutting down
autovacuumアクティビティについて詳しく知りたい場合は、log_min_messages
からDEBUG1..DEBUG5
。 SQLコマンドVACUUM VERBOSE
は、ログレベルINFO
で情報を出力します。
Autovacuum Daemonに関して、Posgresのドキュメントは次のように述べています。
デフォルト構成では、自動バキュームが有効になっており、関連する構成パラメーターが適切に設定されています。
参照:
私は使用しています:
select count(*) from pg_stat_activity where query like 'autovacuum:%';
collectdでは、同時に実行されているautovacuumの数を把握します。
次のようなセキュリティ機能を作成する必要がある場合があります。
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;
collectdから呼び出します。
以前のPostgresでは、「クエリ」は「current_query」でしたので、何が機能するかに応じて変更してください。
Pg_activityを実行して、データベースで現在実行中のクエリを確認することもできます。とにかくveryが便利なので、たいていの場合これを実行したままターミナルを開いたままにします。