PostgreSQLのAutovacuumがUNIXで実行されているかどうかをどのように見分けることができますか?

StackOverflow https://stackoverflow.com/questions/19826467

  •  05-07-2022
  •  | 
  •  

質問

どうすればわかりますか Autovacuumデーモン Postgres 9.xでは、データベースクラスターを実行して維持していますか?

役に立ちましたか?

解決

postgreSQL 9.3

Autovacuumが実行されているかどうかを判断します

これは、UnixのPostgres 9.3に固有です。 Windowsについては、これを参照してください 質問.

Query Postgresシステムテーブル

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

GREPシステムプロセスステータス

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

Grep Postgresログ

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

あなたがについてもっと知りたいなら autovacuum アクティビティ、セット log_min_messagesDEBUG1..DEBUG5. 。 SQLコマンド VACUUM VERBOSE ログレベルで情報を出力します INFO.


Autovacuum Daemonについては、Posgres Docsが述べています。

デフォルトの構成では、Autovacuumingが有効になり、関連する構成パラメーターが適切に設定されます。

参照:

他のヒント

私が使用しています:

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を実行して、データベースで現在実行中のクエリを確認することもできます。私は通常、とにかくほとんどの時間を実行して、ターミナルを開いたままにしておきます とても 使える。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top