2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

clusterdb

clusterdb — 對 PostgreSQL 資料庫進行聚簇

概要

clusterdb [連線選項...] [選項...] [ --table | -t ] ... [ 資料庫名 | -a | --all ]

描述

clusterdb 是一個用於重新聚簇 PostgreSQL 資料庫中表的工具。它會查詢已聚簇的表,並使用上次使用的相同索引重新聚簇它們。從未聚簇過的表不受影響。

clusterdb 是 SQL 命令 CLUSTER 的封裝。透過此工具與透過其他方法訪問伺服器進行資料庫聚簇之間沒有實際區別。

選項

clusterdb 接受以下命令列引數:

-a
--all

聚簇所有資料庫。

[-d] 資料庫名
[--dbname=]資料庫名

指定要聚簇的資料庫名稱,當未使用 -a/--all 時。如果未指定,資料庫名稱將從環境變數 PGDATABASE 讀取。如果該變數未設定,則使用連線指定的使用者名稱。 資料庫名 可以是 連線字串。如果是,則連線字串引數將覆蓋任何衝突的命令列選項。

-e
--echo

回顯 clusterdb 生成併發送到伺服器的命令。

-q
--quiet

不顯示進度訊息。

-t table
--table=table

僅聚簇 。透過多次使用 -t 開關可以聚簇多個表。

-v
--verbose

在處理過程中顯示詳細資訊。

-V
--version

列印 clusterdb 版本並退出。

-?
--help

顯示有關 clusterdb 命令列引數的幫助資訊並退出。

clusterdb 還接受以下用於連線引數的命令列引數:

-h 主機
--host=主機

指定伺服器執行所在計算機的主機名。如果值以斜槓開頭,則用作 Unix 域套接字目錄。

-p
--port=

指定伺服器正在監聽連線的 TCP 埠或本地 Unix 域套接字副檔名。

-U 使用者名稱
--username=使用者名稱

要連線的使用者。:

-w
--no-password

絕不發出密碼提示。如果伺服器需要密碼身份驗證且密碼不可用(例如透過 .pgpass 檔案),則連線嘗試將失敗。此選項在沒有使用者在場輸入密碼的批處理作業和指令碼中很有用。

-W
--password

強制 clusterdb 在連線到資料庫之前提示輸入密碼。

此選項永遠不是必需的,因為如果伺服器要求密碼認證,clusterdb 會自動提示輸入密碼。但是,clusterdb 會嘗試連線一次,以發現伺服器需要密碼。在某些情況下,鍵入 -W 來避免額外的連線嘗試是值得的。

--maintenance-db=資料庫名

當使用 -a/--all 時,連線到此資料庫以收集要聚簇的資料庫列表。如果未指定,將使用 postgres 資料庫,如果該資料庫不存在,將使用 template1。這可以是一個 連線字串。如果是,則連線字串引數將覆蓋任何衝突的命令列選項。此外,除資料庫名稱本身以外的連線字串引數將在連線到其他資料庫時重複使用。

環境變數

PGDATABASE
PGHOST
PGPORT
PGUSER

預設連線引數

PG_COLOR

指定是否在診斷訊息中使用顏色。可能的值為 alwaysautonever

此實用程式以及大多數其他 PostgreSQL 實用程式也使用 libpq 支援的環境變數(請參閱 第 32.15 節)。

診斷

如果遇到困難,請參閱 CLUSTERpsql 以瞭解潛在問題和錯誤訊息的討論。目標主機上的資料庫伺服器必須正在執行。此外,libpq 前端庫使用的任何預設連線設定和環境變數都將適用。

示例

聚簇資料庫 test

$ clusterdb test

聚簇名為 xyzzy 的資料庫中的單個表 foo

$ clusterdb --table=foo xyzzy

另請參閱

CLUSTER

提交更正

如果您在文件中發現任何不正確之處、與您對特定功能的體驗不符之處,或需要進一步澄清之處,請使用 此表單 報告文件問題。