vacuumdb

Name

vacuumdb -- 收集垃圾并且分析一个PostgreSQL 数据库

Synopsis

vacuumdb [connection-options...] [--full | -f] [--verbose | -v] [--analyze | -z] [--table | -t 'table [( column [,...] )]' ] [dbname]
vacuumdb [connection-options...] [--all | -a] [--full | -f] [--verbose | -v] [--analyze | -z]

输入

vacuumdb 接受下列命令行参数:

[-d] dbname
[--dbname] dbname

声明要被清理或分析的数据库名称。

-a
--all

清理所有数据库。

-e
--echo

回显 vacuumdb 生成的查询并且把它发送到服务器。

-f
--full

执行"完全"清理.

-q
--quiet

不显示响应。

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

只是清理或分析 table。 字段名称只是在与 --analyze 选项联合使用时才需要声明。

技巧: 如果你声明了要清理的列,你可能不得不在 shell 上逃逸圆括弧。

-v
--verbose

在处理过程中打印详细信息。

-z
--analyze

计算用于优化器的该数据库的统计值。

vacuumdb 还接受下面的命令行参数用于联接参数:

-h host
--host host

声明运行服务器 的机器的主机名. 如果主机名以斜扛开头,则它被用做到 Unix 域套接字的路径.

-p port
--port port

声明服务器 在侦听联接的TCP/IP 端口号或一个本地的Unix主控套接字文件句柄.

-U username
--username username

进行联接的用户名。

-W
--password

强制口令输入提示。

输出

VACUUM

一切正常。

vacuumdb: Vacuum failed.

出差错了。vacuumdb 只是一个脚本的封装。参阅 VACUUMpsql 获取关于错误信息和可能问题的详细描述。

描述

vacuumdb 是一个用于整理 PostgreSQL 数据库的工具。 vacuumdb 还将会生成用于 PostgreSQL 查询优化器的内部统计数据。

vacuumdb 是一个 shell 脚本,通过 PostgreSQL交互终端 psql封装了 VACUUM。 因此,用那种方法清理数据库都没什么特别的。这意味着 psql 必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何 psqllibpq 前端库可获得的缺省设置和 环境变量都将生效。

用法

整理数据库 test

$ vacuumdb test

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

$ vacuumdb --analyze bigdb

为清理数据库xyzzy里表 foo, 并且为优化器分析列 bar

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