PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# clusterdb

## 名称

clusterdb -- 群集一个PostgreSQL数据库

## 大纲

`clusterdb` [`connection-option`...] [`--verbose` | `-v`] [ `--table` | `-t` `table` ] ... [`dbname`]

`clusterdb` [`connection-option`...] [`--verbose` | `-v`] `--all` | `-a`

## 描述

clusterdb用于对数据库中的表进行重新群集。 它寻找以前群集过的表，然后在上次用过的同一个索引上再次群集。 它不会动那些从未群集的表。

clusterdb是对 SQL 命令CLUSTER的封装。 使用这两种方法对数据库群集实际上没有任何区别。

## 选项

clusterdb接受下列命令行参数：

`-a`
`--all`

  对所有数据库进行群集

`[-d] `dbname``
`[--dbname=]`dbname``

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

`-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``

  声明要连接的数据库名，以发现其他应该被群集的数据库。如果没有指定， 将使用`postgres`数据库，如果`postgres`不存在， 则使用`template1`。

## 环境变量

`PGDATABASE`
`PGHOST`
`PGPORT`
`PGUSER`

  缺省连接参数

这个功用，类似大多数其他PostgreSQL实用工具， 也使用由libpq支持的环境变量（参阅第 31.14 节）。

## 诊断

出现困难的时候，参阅CLUSTER和psql 获取有关可能的错误和错误消息的讨论。数据库服务器必须在目标主机上运行。同样， 任何缺省连接设置和libpq前端库使用的环境变量都将得以应用。

## 例子

对数据库`test`进行群集：

    $ clusterdb test

对`xyzzy`数据库里的`foo`表进行群集：

    $ clusterdb --table foo xyzzy

## 又见

CLUSTER

上一页 | 起始页 | 下一页
PostgreSQL 客户端应用程序 | 上一级 | createdb