数据库真空以避免事务回绕

database vacuum to avoid transaction wrap around

Heroku 平台 PG 版本 13

我有一个非常繁忙的数据库,它接近事务回绕。

此时我真的很想手动吸尘。 我的问题是,如果我对单个表进行手动清理,那么我可以看到 txid 恢复到其最小值。但是全局的txid没有变。

单独清理表格是否足够? 我还需要做 vacuum 数据库吗?

是的,手动 VACUUM 个单独的表格就可以了。

查看该数据库 pg_class 条目中的 relfrozenxidrelminmxid 列。找到最古老的。其中一个或多个应等于 datfrozenxidpg_database 中的 datminmxid。如果你 VACUUM 这些表,数据库的值应该提前。