Tip

vacuumdb

vacuumdb —垃圾收集和分析 PostgreSQL 数据库

Synopsis

vacuumdb [ connection-option ...] [ option ...] [ --table | -t table [( column [,...] )] ] ... [ dbname ]

vacuumdb [ connection-option ...] [ option ...] --all | -a

Description

vacuumdb 是用于清理 PostgreSQL 数据库的 Util。 vacuumdb 还将生成 PostgreSQL 查询优化器使用的内部统计信息。

vacuumdb 是 SQL 命令VACUUM的包装。通过此 Util 和其他访问服务器的方法对数据库进行清理和分析之间没有有效的区别。

Options

vacuumdb 接受以下命令行参数:

vacuumdb 将打开* njobs *与数据库的连接,因此请确保max_connections设置足够高以容纳所有连接。

请注意,如果并行处理某些系统目录,则将此模式与-f(FULL)选项一起使用可能会导致死锁失败。

Tip

如果指定列,则可能必须从 Shell 转义括号。 (请参见下面的示例.)

此选项对于分析从还原的转储或pg_upgrade新填充的数据库很有用。此选项将尝试尽快创建一些统计信息,以使数据库可用,然后在后续阶段中生成完整的统计信息。

vacuumdb 还接受以下命令行参数作为连接参数:

此选项从不是必需的,因为如果服务器要求密码验证,vacuumdb 会自动提示 Importing 密码。但是,vacuumdb 会浪费连接尝试,因为发现服务器需要密码。在某些情况下,值得 Importing-W以避免额外的连接尝试。

Environment

与大多数其他 PostgreSQLUtil 一样,该 Util 也使用 libpq 支持的环境变量(请参见Section 33.14)。

Diagnostics

万一遇到困难,请参见VACUUMpsql以获取有关潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。同样,libpq 前端库使用的任何默认连接设置和环境变量都将适用。

Notes

vacuumdb 可能需要多次连接到 PostgreSQL 服务器,每次都要求 Importing 密码。在这种情况下,拥有~/.pgpass文件很方便。有关更多信息,请参见Section 33.15

Examples

清理数据库test

$ vacuumdb test

要为优化器清理和分析名为bigdb的数据库:

$ vacuumdb --analyze bigdb

要在名为xyzzy的数据库中清除单个表foo,并为优化程序分析表的单个列bar

$ vacuumdb --analyze --verbose --table='foo(bar)' xyzzy

See Also

VACUUM

上一章 首页 下一章