PostgreSQL clusterdb

2021-09-13 15:26 更新

clusterdb — 聚簇一個(gè)PostgreSQL數(shù)據(jù)庫(kù)

大綱

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

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

描述

clusterdb是一個(gè)工具,它用來對(duì)一個(gè)PostgreSQL數(shù)據(jù)庫(kù)中的表進(jìn)行重新聚簇。它會(huì)尋找之前已經(jīng)被聚簇過的表,并且再次在最后使用過的同一個(gè)索引上對(duì)它們重新聚簇。沒有被聚簇過的表將不會(huì)被影響。

clusterdb是 SQL 命令CLUSTER的一個(gè)包裝器。在通過這個(gè)工具和其他方法訪問服務(wù)器來聚簇?cái)?shù)據(jù)庫(kù)之間沒有實(shí)質(zhì)性的區(qū)別。

選項(xiàng)

clusterdb接受下列命令行參數(shù):

-a
--all

聚簇所有數(shù)據(jù)庫(kù)。

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

當(dāng)不使用-a/--all時(shí),指定要被聚簇的數(shù)據(jù)庫(kù)名稱。 如果數(shù)據(jù)庫(kù)名稱未指定,則從環(huán)境變量PGDATABASE中讀取數(shù)據(jù)庫(kù)名稱。 如果該環(huán)境變量也沒有被設(shè)置,則使用為連接指定的用戶名作數(shù)據(jù)庫(kù)名。 dbname可以是connection string。 如果是這樣,連接時(shí)的字符串參數(shù)將覆蓋所有沖突的命令行選項(xiàng)。

-e
--echo

回顯clusterdb生成并發(fā)送給服務(wù)器的命令。

-q
--quiet

不顯示進(jìn)度消息。

-t table
--table=table

只聚簇table。可以通過寫多個(gè)-t開關(guān)來聚簇多個(gè)表。

-v
--verbose

在處理期間打印詳細(xì)信息。

-V
--version

打印clusterdb版本并退出。

-?
--help

顯示關(guān)于clusterdb命令行參數(shù)的幫助并退出。

clusterdb也接受下列命令行參數(shù)用于連接參數(shù):

-h host
--host=host

指定運(yùn)行服務(wù)器的機(jī)器的主機(jī)名。如果該值以一個(gè)斜線開始,它被用作 Unix 域套接字的目錄。

-p port
--port=port

指定服務(wù)器正在監(jiān)聽連接的 TCP 端口或本地 Unix 域套接字文件擴(kuò)展。

-U username
--username=username

要作為哪個(gè)用戶連接。

-w
--no-password

從不發(fā)出一個(gè)口令提示。如果服務(wù)器要求口令認(rèn)證并且沒有其他方式提供口令(例如一個(gè).pgpass文件),那兒連接嘗試將失敗。這個(gè)選項(xiàng)對(duì)于批處理任務(wù)和腳本有用,因?yàn)樵谄渲袥]有一個(gè)用戶來輸入口令。

-W
--password

強(qiáng)制clusterdb在連接到一個(gè)數(shù)據(jù)庫(kù)之前提示要求一個(gè)口令。

這個(gè)選項(xiàng)不是必不可少的,因?yàn)槿绻?wù)器要求口令認(rèn)證,clusterdb將自動(dòng)提示要求一個(gè)口令。但是,clusterdb將浪費(fèi)一次連接嘗試來發(fā)現(xiàn)服務(wù)器想要一個(gè)口令。在某些情況下值得用-W來避免額外的連接嘗試。

--maintenance-db=dbname

當(dāng)使用-a/--all時(shí),指定要連接到的數(shù)據(jù)庫(kù)名稱來發(fā)現(xiàn)哪些其他數(shù)據(jù)庫(kù)應(yīng)該被聚簇。 如果沒有指定,將使用postgres數(shù)據(jù)庫(kù)。而如果它也不存在,將使用template1。 這可以是connection string。如果是這樣,連接時(shí)的字符串參數(shù)將覆蓋所有沖突的命令行選項(xiàng)。 另外,連接到其他數(shù)據(jù)庫(kù)時(shí),除了數(shù)據(jù)庫(kù)名字本身其他的連接時(shí)字符串參數(shù)將被重新使用。

環(huán)境

PGDATABASE
PGHOST
PGPORT
PGUSER

默認(rèn)連接參數(shù)

PG_COLOR

規(guī)定在診斷消息中是否使用顏色。可選的值為always,auto,never

和大部分其他PostgreSQL工具相似,這個(gè)工具也使用libpq(見第 33.14 節(jié))支持的環(huán)境變量。

診斷

在有困難時(shí),可以在CLUSTERpsql中找潛在問題和錯(cuò)誤消息的討論。數(shù)據(jù)庫(kù)服務(wù)器必須運(yùn)行在目標(biāo)主機(jī)上。同樣,任何 libpq前端庫(kù)使用的默認(rèn)連接設(shè)置和環(huán)境變量都將適用于此。

例子

要聚簇?cái)?shù)據(jù)庫(kù)test

$ clusterdb test

要聚簇在數(shù)據(jù)庫(kù)xyzzy中的一個(gè)表foo

$ clusterdb --table foo xyzzy

參見

CLUSTER


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)