12

在 8.x 之前的日子里,我在 Linux 上运行了许多 PGSQL 数据库,并通过维护脚本明确地清理了数据库。

当 8.x 出现时,我没有在这些系统上使用 autovacuum,因为它工作正常,因此无需更改任何内容。所以我不是自动真空专家。

现在在后 8.x 时代,我发现自己有一些在 Windows Server 2003 或更高版本上运行的 PGSQL 数据库。

看起来 autovacuum应该正在运行,因为我们已按照说明操作并在 .conf 文件中将其打开。

然而,将 PGAdmin 连接到数据库会提示我们应该运行 VACUUM。

您如何判断 autovacuum 守护程序是否正在运行并在照看您的数据库,并正确清理它们?

4

1 回答 1

11

pg_stat_user_tables 中有列列出了最后一次自动清理和自动分析在表上运行的时间 - 这是一个很好的起点。当然,日志文件将包含有关 autovacuum 正在做什么的信息。

您可以使用 Process Explorer 之类的工具专门查看 postgres.exe 进程。将有一个专门命名的互斥锁来模拟 Unix 上可用的 ps 命令行信息。应该很容易找到。您可以搜索“autovacuum”以确保它正在运行。

于 2010-01-08T13:14:31.173 回答