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
指定是否在診斷訊息中使用顏色。可能的值為 always
、auto
和 never
。
此工具和大多數其他 PostgreSQL 工具一樣,也使用 libpq 支援的環境變數 (請參閱第 32.15 節)。
對 test
資料庫進行叢集
$
clusterdb test
對名為 xyzzy
的資料庫中的單個表格 foo
進行叢集
$
clusterdb --table=foo xyzzy
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用 此表單 回報文件問題。