杀死autovacuum的危险:VACUUM查询(以防止环绕)

Hen*_*hiu 9 database postgresql autovacuum

有一个autovacuum查询需要很长时间才能运行,并阻止alter query运行.

在完成之前杀死这个autovacuum进程有什么危险?

PID      QUERY
16967 | autovacuum: VACUUM public.articles (to prevent wraparound)

以下是我如何杀死它:

select pg_terminate_backend(16967) from pg_stat_activity;
Run Code Online (Sandbox Code Playgroud)

bma*_*bma 9

你可以发出pg_cancel_backend(16967)而不是"pg_terminate_backend()"(我的理解并不严重).一旦你杀死了那个autovacuum进程,它就会重新启动,因为你可能已经注意到了,特别是因为它是因为所述的原因而启动的(这是为了防止环绕).如果VACUUM public.articles手动发出,真空将以更高的磁盘I/O为代价更快地完成.这是一个普遍的答案,但通常是如何结果.