如何在没有警告的情况下执行真空命令在postgres中停止?

时间:2019-06-28 23:25:56

标签: postgresql performance vacuum

尝试使用vacuum作为postgresql数据库,但是在清理约50条记录后,此命令/警告会停止:

 backend> vacuum FULL;
 WARNING:  database "postgres" must be vacuumed within 988308 transactions
HINT:  To avoid a database shutdown, execute a full-database VACUUM in "postgres".

后端>

// again

WARNING:  database "postgres" must be vacuumed within 988242 transactions
HINT:  To avoid a database shutdown, execute a full-database VACUUM in "postgres".

如何调用此方法,使其不会经常停止? Ty:^)

1 个答案:

答案 0 :(得分:1)

VACUUM (FULL)VACUUM截然不同,不是在这种情况下是不需要的。 VACUUM (FULL)不是更好的VACUUM

您已经以某种方式使自己陷入困境。如果您没有成功在VACUUM数据库中上运行正常的postgres 。百万笔交易,您的数据库将遭受数据丢失。

您必须使用--single选项启动PostgreSQL (有关详细信息,请参见文档)连接到postgres数据库,然后运行< / p>

VACUUM

可能必须首先清除障碍。这可能是

  • 长时间运行的事务(在单用户模式下启动时消失)

  • 孤立的准备好的交易

  • 孤立的复制插槽

有关更多信息,请参见my blog