PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

clusterdb

clusterdb — 聚集一个 PostgreSQL 数据库

Synopsis

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。它可以是一个 连接字符串。如果是这样,连接字符串参数将覆盖与之冲突的命令行选项。此外,在连接到其他数据库时,除数据库名本身之外的连接字符串参数也会被重新使用。

环境

PGDATABASE
PGHOST
PGPORT
PGUSER

默认连接参数

PG_COLOR

指定是否在诊断消息中使用颜色。可能的值是 always、auto 和 never。

与大多数其他 PostgreSQL 工具一样,此工具也使用 libpq 支持的环境变量(参见 Section 32.15)。

诊断

如果遇到问题,请参见 CLUSTER 和 psql 中对潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。此外,libpq 前端库使用的任何默认连接设置和环境变量也将生效。

示例

聚集数据库 test:

$ clusterdb test

聚集名为 xyzzy 的数据库中的单个表 foo:

$ clusterdb --table=foo xyzzy

另请参阅

CLUSTER