clusterdb

Name

clusterdb -- 对一个PostgreSQL数据库进行建簇

Synopsis

clusterdb [connection-options...] [--table | -t table ] [dbname]
clusterdb [connection-options...] [--all | -a]

描述

clusterdb 是一个用于对某个 PostgreSQL 数据库中的表进行重新建簇的工具。它寻找以前建过簇的表,然后在上次用过 的同一个索引上再次建簇。将不会动那些从未建簇的表。

clusterdb 是个 shell 脚本, 通过 PostgreSQL 交互界面 psql 封装了后端命令 CLUSTER。 使用这两种方法对数据库建簇实际上没有任何区别。脚本必须能够找到 psql,并且数据库服务器必须在目标主机上运行。 同样,任何 psqllibpq前端库可以用的缺省设置和环境变量 都一样会得到使用。

clusterdb 可能需要和 PostgreSQL 连接好几次,每次都要你输入一个口令。在这种情况下, 写一个 $HOME/.pgpass 文件会方便些。

选项

clusterdb 接受下列命令行参数:

-a
--all

对所有数据库建簇。

-a
--all

对所有数据库建簇。

[-d] dbname
[--dbname] dbname

声明要建簇的数据库名字。如果没有声明这个并且没有使用 -a(或者 --all), 那么数据库名从环境变量 PGDATABASE 中读取。 如果那个也没有设置,那么使用用于连接的用户名。

-e
--echo

回显 clusterdb 生成并发送给服务器的命令。

-q
--quiet

不要显示响应。

-t table
--table table

只对表 table 建簇。

clusterdb 还接受下列命令行参数 获取连接参数:

-h host
--host host

声明服务器运行所在的机器的主机名。如果主机名以斜杠开头, 那么就用作 Unix 域套接字的目录。

-p port
--port port

声明服务器监听的网际网 TCP/IP 端口或者本地 Unix 域套接字文件扩展。

-U username
--username username

进行连接的用户名

-W
--password

强制提示口令。

诊断

CLUSTER

运行正常。

clusterdb: Cluster failed.

出错了。clusterdb 只是一个封装脚本。 参阅 CLUSTERpsql 获取错误信息以及潜在问题的详细讨论。 请注意这个信息可能会对被建簇的每个表都出现一次。

环境

PGDATABASE
PGHOST
PGPORT
PGUSER

缺省连接参数。

例子

对数据库 test 建簇:

$ clusterdb test

对一个叫做 xyzzy 的数据库里的表 foo 建簇:

$ clusterdb --table foo xyzzy

又见

CLUSTER