支援的版本:目前 (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 [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

此工具和大多數其他 PostgreSQL 工具一樣,也使用 libpq 支援的環境變數 (請參閱第 32.15 節)。

診斷

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

範例

test 資料庫進行叢集

$ clusterdb test

對名為 xyzzy 的資料庫中的單個表格 foo 進行叢集

$ clusterdb --table=foo xyzzy

另請參閱

CLUSTER

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用 此表單 回報文件問題。