PostgreSQL 中 template0 和 template1 需要执行 VACUUM FREEZE 吗?

意外发现这两个数据库的 age 很高,用这个看的:
SELECT age(datfrozenxid) FROM pg_database;
最开始所有数据库的 age 都是一样的。
更清晰的:
SELECT datname, age(datfrozenxid)
FROM pg_database
WHERE datname IN ('template0', 'template1');
发现所有数据库的 age 都一样并且很高我就全都手动 vacuum 了一遍。其中 template0 和 template1 的 vacuum 方法是问的 DeepSeek。我都是在练习服务器上搞的。
我用谷歌搜好像有说不需要对 template0 VACUUM FREEZE 的。但是如果变得很高的话也不会出问题吗?我看着两个数据库的 age 是会增的。
再补充点信息。最开始我是问 autovacuum 是解决了 xid 问题还是只是缓解了。DeepSeek 说只是缓解了,还是需要手动看着 SELECT age(datfrozenxid) FROM pg_database; 。如果高到一定程度还是需要手动 vacuum。

阅读 577
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题