clusterdb — 聚集一个 PostgreSQL 数据库
clusterdb [connection-option...] [option...]
[
--table | -t
table
]
... [
dbname | -a | --all
]
clusterdb 是一个用于重新聚集 PostgreSQL 数据库中各表的工具。它会找出之前被聚集过的表,并用上次所使用的同一索引再次聚集它们。从未被聚集过的表不受影响。
clusterdb 是 SQL 命令 CLUSTER 的一个包装程序。通过此工具聚集数据库与通过其他方法访问服务器聚集数据库没有实质区别。
clusterdb 接受下列命令行参数:
-a--all聚集所有数据库。
[-d] dbname[--dbname=]dbname 在未使用 -a/--all 的情况下,指定要聚集的数据库的名称。如果没有指定,将从环境变量 PGDATABASE 中读取数据库名。如果该变量也没有设置,则使用为连接指定的用户名。dbname 可以是一个 连接字符串。如果是这样,连接字符串参数将覆盖与之冲突的命令行选项。
-e--echo回显 clusterdb 生成并发送到服务器的命令。
-q--quiet不显示进度消息。
-t table--table=table 只聚集 table。可以通过书写多个 -t 开关来聚集多个表。
-v--verbose在处理过程中打印详细信息。
-V--version打印 clusterdb 的版本并退出。
-?--help显示关于 clusterdb 命令行参数的帮助,然后退出。
clusterdb 还接受下列用于连接参数的命令行参数:
-h host--host=host指定服务器所在机器的主机名。如果值以斜杠开头,它将被用作 Unix 域套接字的目录。
-p port--port=port指定服务器监听连接所用的 TCP 端口或本地 Unix 域套接字文件扩展名。
-U username--username=username用于连接的用户名。
-w--no-password 从不发出输入密码的提示。如果服务器要求密码认证,而密码无法通过其他方式(例如 .pgpass 文件)获得,则连接尝试将失败。此选项在没有用户在场输入密码的批处理作业和脚本中很有用。
-W--password强制 clusterdb 在连接数据库之前提示输入密码。
此选项从来都不是必需的,因为如果服务器要求密码认证,clusterdb 会自动提示输入密码。不过,clusterdb 会浪费一次连接尝试来发现服务器需要密码。在某些情况下,键入 -W 可以避免这次额外的连接尝试,这样做是值得的。
--maintenance-db=dbname 当使用 -a/--all 时,连接到该数据库以收集要聚集的数据库列表。如果未指定,将使用 postgres 数据库;如果该数据库不存在,则使用 template1。它可以是一个 连接字符串。如果是这样,连接字符串参数将覆盖与之冲突的命令行选项。此外,在连接到其他数据库时,除数据库名本身之外的连接字符串参数也会被重新使用。
PGDATABASEPGHOSTPGPORTPGUSER默认连接参数
PG_COLOR 指定是否在诊断消息中使用颜色。可能的值是 always、auto 和 never。
与大多数其他 PostgreSQL 工具一样,此工具也使用 libpq 支持的环境变量(参见 Section 32.15)。
聚集数据库 test:
$clusterdb test
聚集名为 xyzzy 的数据库中的单个表 foo:
$clusterdb --table=foo xyzzy