我在 postgresql 数据库上有一个 python 脚本,它从 sql server 数据库中获取记录,并在经过一些过滤后将其插入到 postgresql DB 中。该作业cron
每两分钟运行一次。我想知道什么时候有维护工作,比如autovacuum
正在运行,如果运行忘记获取记录。是否可以在python中检测?
我在 postgresql 数据库上有一个 python 脚本,它从 sql server 数据库中获取记录,并在经过一些过滤后将其插入到 postgresql DB 中。该作业cron
每两分钟运行一次。我想知道什么时候有维护工作,比如autovacuum
正在运行,如果运行忘记获取记录。是否可以在python中检测?
在当前版本的 PostgreSQL 中,您可以查看 *pg_stat_activity* 视图以查找 autovacuum 任务。他们将有 *current_query* 字段以“在 pg_stat_activity 中标记 autovacuum 条目,如下所示:
计算您拥有多少人的查询可能如下所示:
你可以让你的 Python 代码检查返回的值是否 >0;如果是这样,则 autovacuum 正在运行。您可能还想跟踪并避免与手动 VACUUM 调用同时运行。