Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

clusterdb

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。這可以是 連接字符串。如果是這樣,則連接字符串參數將覆蓋任何衝突的命令行選項。此外,連接到其他數據庫時將重用除數據庫名稱本身以外的其他連接字符串參數。

環境

PGDATABASE
PGHOST
PGPORT
PGUSER

默认连接参数

PG_COLOR

指定在诊断消息中是否使用颜色。可能的值为 alwaysautonever

除了 libpq 支持的环境变量(参见 第 32.15 节)之外,此实用程序(就像大多数其他的 PostgreSQL 实用程序)也会使用该环境变量。

诊断

如果遇到问题,请参阅 CLUSTERpsql,以了解潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。同样,libpq 前端库所使用的所有默认连接设置和环境变量也会生效。

示例

要对数据库 test 进行集群

$ clusterdb test

要在名为 xyzzy 的数据库中对单个表 foo 进行集群

$ clusterdb --table=foo xyzzy

另请参见

CLUSTER