↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5
历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.

vacuumdb

vacuumdb — 清理并分析一个 Postgres 数据库

大纲

vacuumdb [ --analyze | -z ] [ --verbose | -v ] [ dbname ]
vacuumdb [ -h host ] [ -p
   port ]
    [ --table 'table [ (
   column [,...] ) ]' ]
    [ dbname ]
  

输入

vacuumdb 接受下列命令行参数:

dbname

指定要清理或分析的数据库名。dbname 默认为环境变量 USER 的值。

--analyze
-z

为优化器的使用计算数据库的统计信息。

--verbose
-v

在处理过程中输出详细信息。

--table table [ (column [,...]) ]
-t table [ (column [,...]) ]

只清理或分析 table。列名只能在配合 --analyze 选项时指定。

vacuumdb 还接受下列用于连接参数的命令行参数:

-h host

指定 postmaster 所在机器的主机名。默认使用本地 Unix 域套接字而不是 IP 连接。

-p port

指定 postmaster 正在监听连接的 Internet TCP/IP 端口或本地 Unix 域套接字文件扩展名。端口号默认为 5432,或环境变量 PGPORT 的值(如果设置了的话)。

-u

使用口令认证。提示输入 username 和 password。

输出

vacuumdb 在指定的数据库上执行一条 VACUUM 命令,因此没有显式的外部输出。

ERROR: Can't vacuum columns, only tables. You can 'vacuum analyze' columns. vacuumdb: database vacuum failed on dbname.

非分析模式要求清理完整的表或数据库。只有在分析特定表时才能指定单个列。

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'?

vacuumdb 无法连接到指定主机和端口上的 postmaster 进程。如果看到这条消息,请确保 postmaster 在正确的主机上运行,并且你指定了正确的端口。如果你的站点使用认证系统,请确保你已获得所需的认证凭据。

Connection to database 'dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow'

你在关系 pg_shadow 中没有有效条目,将不被允许访问 Postgres。请联系你的 Postgres 管理员。

注意

vacuumdb 内部执行一条 VACUUM SQL 语句。如果你在运行 vacuumdb 时遇到问题,请确保你能够(例如用 psql)在该数据库上执行 VACUUM。

描述

vacuumdb 是一个用于清理 Postgres 数据库的工具。vacuumdb 还会生成供 Postgres 查询优化器使用的内部统计信息。

注意

更多细节参见VACUUM。

用法

要清理一个与用户同名的数据库:

    % vacuumdb
   

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

    % vacuumdb --analyze bigdb
   

要为优化器分析数据库 xyzzy 中表 foo 的单个列 bar:

    % vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
   

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.