Postgresql

如何知道在 postgresql 數據庫上執行維護作業

  • May 10, 2012

我在 postgresql 數據庫上有一個 python 腳本,它從 sql server 數據庫中獲取記錄,並在經過一些過濾後將其插入到 postgresql DB 中。該作業cron每兩分鐘執行一次。我想知道什麼時候有維護工作,比如autovacuum正在執行,如果執行忘記獲取記錄。是否可以在python中檢測?

在目前版本的 PostgreSQL 中,您可以查看 pg_stat_activity 視圖以查找 autovacuum 任務。他們將有 current_query 欄位以“在 pg_stat_activity 中標記 autovacuum 條目,如下所示:

autovacuum: VACUUM t

計算您擁有多少人的查詢可能如下所示:

SELECT count(*) FROM pg_stat_activity WHERE position('autovacuum:' IN current_query) = 1;

你可以讓你的 Python 程式碼檢查返回的值是否 >0;如果是這樣,則 autovacuum 正在執行。您可能還想跟踪並避免與手動 VACUUM 呼叫同時執行。

引用自:https://dba.stackexchange.com/questions/17505