clusterdb
clusterdb — 对 PostgreSQL 数据库进行聚簇
大纲
clusterdb [connection-options...] [--table | -t table ] [dbname]clusterdb [connection-options...] [[--all] | [-a]]
描述
clusterdb 是一个对 PostgreSQL 数据库中的表重新聚簇的工具。它找到之前已经聚簇过的表,并按照最后使用的同一索引再次对它们聚簇。从未聚簇过的表不会被触及。
clusterdb 是后端命令CLUSTER的一个 shell 脚本包装,它经由 PostgreSQL 的交互式终端psql调用。用这种方法或其他方法聚簇数据库没有实质差别。脚本必须能找到 psql,并且目标主机上必须有一个正在运行的数据库服务器。此外, psql 和 libpq 前端库可用的任何默认设置和环境变量都适用。
clusterdb 可能需要连接
PostgreSQL 服务器多次,每次都要询问口令。这种情况下有一个
$HOME/.pgpass 文件会很方便。
选项
clusterdb 接受下列命令行参数:
-a--all聚簇所有数据库。
[-d]dbname[--dbname=]dbname指定要聚簇的数据库名。如果未指定并且没有使用
-a(或--all),则从环境变量PGDATABASE读取数据库名。如果该环境变量也未设置,则使用为该连接指定的用户名作为数据库名。-e--echo回显clusterdb生成并发送到服务器的命令。
-q--quiet不显示响应。
-ttable--tabletable只对
table聚簇。
clusterdb 还接受下列用于连接参数的命令行参数:
-hhost--hosthost指定服务器正在运行的主机名。如果 host 以斜杠开头,它被用作 Unix 域套接字的目录。
-pport--portport指定服务器正在监听连接的 Internet TCP/IP 端口或本地 Unix 域套接字文件扩展名。
-Uusername--usernameusername连接时使用的用户名
-W--password强制提示输入密码。
诊断
环境
PGDATABASEPGHOSTPGPORTPGUSER默认连接参数。
示例
要聚簇数据库test:
$clusterdb test
要聚簇名为xyzzy的数据库中的单个表foo:
$clusterdb --table foo xyzzy