Postgresql
如何知道在 postgresql 數據庫上執行維護作業
我在 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 呼叫同時執行。