我的vacuumdb正在运行,但是我不小心用statement_timeout = 0参数多次启动它,所以我担心这可能需要很长时间才能完成。
我的问题是,我可以安全地杀死theese vacuum的过程,还是在运行时重新启动服务器?
xxx=# select pid, backend_start, query_start, state_change, state, query from pg_stat_activity where application_name = 'vacuumdb' OR query like '%reload%';
pid | backend_start | query_start | state_change | state | query
-------+-------------------------------+-------------------------------+-------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------
1273 | 2017-03-25 13:18:48.355737+03 | 2017-03-25 13:18:56.318492+03 | 2017-03-25 13:18:56.319311+03 | idle | select pg_reload_conf();
32102 | 2017-03-25 13:14:26.737586+03 | 2017-03-25 13:14:26.74256+03 | 2017-03-25 13:14:26.742566+03 | active | VACUUM (FULL, VERBOSE, ANALYZE) xxx; +
| | | | |
2693 | 2017-03-25 13:22:44.275979+03 | 2017-03-25 13:46:48.168615+03 | 2017-03-25 13:46:48.168625+03 | active | select pid, backend_start, query_start, state_change, state, query from pg_stat_activity where application_name = 'vacuumdb' OR query like '%reload%';
31746 | 2017-03-25 13:13:07.173855+03 | 2017-03-25 13:13:07.178614+03 | 2017-03-25 13:13:07.178621+03 | active | VACUUM (FULL, VERBOSE, ANALYZE) xxx; +
| | | | |
16923 | 2017-03-25 12:28:31.537226+03 | 2017-03-25 12:28:31.543027+03 | 2017-03-25 12:28:31.543032+03 | active | VACUUM (FULL, VERBOSE, ANALYZE) xxx; +
| | | | |
(5 rows)
答案 0 :(得分:0)
只需重新启动运行vacuum
的postgres即可100%安全。这适用于VACUUM
,VACUUM (FULL)
,CLUSTER
等
它甚至不必在开始时完全重新开始工作,它可以在重新启动之前完成一些工作。