vacuumdb 是一个用于清理和分析PostgreSQL的核心实用工具。
vacuumdb 在 PostgreSQL 7.0 中引入。
用法
vacuumdb 实际上是 VACUUM 和 ANALYZE 命令的命令行包装器,并提供了额外的便利功能,用于
- 分阶段执行
ANALYZE(--analyze-in-stages选项) - 一次性清理所有数据库(
--all选项)
vacuumdb --all 选项
有些反直觉的是,当指定 --all 时,vacuumdb 会拒绝 -d/--dbname 选项。
$ vacuumdb --all --analyze-in-stages -d 'host=node1 port=5433' vacuumdb: error: cannot vacuum all databases and a specific one at the same time
在这种情况下,使用 --maintenance-db 选项提供显式的数据库名称或 conninfo 字符串。
源代码
vacuumdb 的源代码位于 src/bin/scripts/vacuumdb.c。
变更历史
- PostgreSQL 18
- 添加了
--missing-stats-only选项(提交 edba754f)
- 添加了
- PostgreSQL 17
- 现在可以将
-a/--all选项与--table、--schema和--exclude-schema结合使用(提交 648928c7)
- 现在可以将
- PostgreSQL 16
- PostgreSQL 14
- PostgreSQL 13
- 添加了
--parallel选项(提交 47bc9ced)
- 添加了
- PostgreSQL 12
- PostgreSQL 9.5
- 添加了用于并行处理的
-j/--jobs选项(提交 a1792320)
- 添加了用于并行处理的
- PostgreSQL 9.4
- 添加了
--analyze-in-stages选项(提交 c92c3d50)
- 添加了
- PostgreSQL 9.3
- 支持多个
-t/--table参数(提交 f3af5344)
- 支持多个
- PostgreSQL 9.2
- 添加了
--maintenance-db选项(提交 68281e00)
- 添加了
- PostgreSQL 9.0
- 添加了
--analyze-only选项(提交 3ccb97b2)
- 添加了
- PostgreSQL 8.4
- PostgreSQL 8.3
- 添加了 Ctrl-C 中断处理程序(提交 6e09df9d)
- PostgreSQL 7.4
- 从 shell 脚本转换为 C 程序(提交 f374a9da)
- PostgreSQL 7.3
- 添加了对包含空格的标识符的支持(提交 5804a7ce)
- PostgreSQL 7.0
- 添加(提交 240e4c98)
示例
$ vacuumdb --all --analyze-in-stages vacuumdb: processing database "contentdb": Generating minimal optimizer statistics (1 target) vacuumdb: processing database "postgres": Generating minimal optimizer statistics (1 target) vacuumdb: processing database "template1": Generating minimal optimizer statistics (1 target) vacuumdb: processing database "contentdb": Generating medium optimizer statistics (10 targets) vacuumdb: processing database "postgres": Generating medium optimizer statistics (10 targets) vacuumdb: processing database "template1": Generating medium optimizer statistics (10 targets) vacuumdb: processing database "contentdb": Generating default (full) optimizer statistics vacuumdb: processing database "postgres": Generating default (full) optimizer statistics vacuumdb: processing database "template1": Generating default (full) optimizer statistics
参考资料
- PostgreSQL 文档: vacuumdb
