如何在 Postgres 8.1.22 上禁用自动清理?

如何在 Postgres 8.1.22 上禁用自动清理?

我正在将旧环境迁移到更现代的软件堆栈,并试图在此过程中尽我所能。

现在我试图通过禁用自动清理来防止数据库服务器崩溃(而是每晚运行一次完全清理,自动清理负载在高峰时段会造成问题),但不知何故却失败了。我在 postgresql.conf 中将 autovacuum = off 并重新启动了 postgres,但这似乎没有起到作用。

我的权宜之计是一个 while 循环来立即终止自动清理,但我无法想象这是健康的。

答案1

根据我的经验,在 postgresql.conf 中将 autovacuum 设置为 off 并向服务器发出重新加载配置的信号总是会停止 autovacuum。例如,在进行大型数据库恢复时,我总是关闭 autovacuum。

您在哪里更改配置?如果您在 PGAdmin 中执行此操作,请确保在向服务器发出信号重新加载配置之前已保存更改。

您有什么证据表明 autovacuum 尚未停止?请确保在进行更改时刷新 pgAdmin 中显示正在运行的进程的任何屏幕。有几次我被 PGAdmin 未自动刷新所困扰。

仔细检查您的实际 postgresql.conf 文件。如果您在 Windows 环境中运行,请尝试以管理员身份运行“重新加载配置”。尝试重新启动服务。

阅读日志文件。当您在更改配置后重新启动服务或重新加载配置时,更改会反映在日志中吗?应该是的。

作为一项长期努力,请考虑升级到较新版本的 postgreSQL。在 8.1 中,自动清理功能非常新;在 8.3 及更高版本中,自动清理的工作方式有了显著改进,减少了对数据库的影响。

相关内容