?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
vacuumdb [connection-option...] [--full | -f] [--freeze | -F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] [--table | -t table [( column [,...] )] ] [dbname]
vacuumdb [connection-option...] [--full | -f] [--freeze | -F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] [--all | -a]
vacuumdb是一個(gè)用于整理PostgreSQL數(shù)據(jù)庫(kù)的工具。 vacuumdb還將會(huì)生成用于PostgreSQL查詢優(yōu)化器的 內(nèi)部統(tǒng)計(jì)數(shù)據(jù)。
vacuumdb是SQL命令VACUUM的封裝。 通過該實(shí)用程序和通過其他方法訪問數(shù)據(jù)庫(kù),清空和分析數(shù)據(jù)庫(kù)之間沒有有效的區(qū)別
vacuumdb接受下列命令行參數(shù):
清理所有數(shù)據(jù)庫(kù)
聲明要被清理或分析的數(shù)據(jù)庫(kù)名稱。 如果沒有聲明這個(gè)參數(shù)并且沒有使用-a (或者 --all),那么從將環(huán)境變量PGDATABASE里讀取數(shù)據(jù)庫(kù)名。 如果那個(gè)也沒有設(shè)置,則使用連接的用戶名。
回顯vacuumdb生成并發(fā)送給服務(wù)器的命令。
執(zhí)行"完全"清理。
Aggressively "freeze" tuples.
不顯示進(jìn)度消息。
只是清理或分析table。 字段名稱只是在與--analyze或--analyze-only選項(xiàng)聯(lián)合使用時(shí)才需要聲明。
Tip: 如果你聲明了要清理的字段,你可能不得不在shell上逃逸圓括弧(見下面的例子)。
在處理過程中打印詳細(xì)信息
打印vacuumdb版本并退出。
也計(jì)算用于優(yōu)化器的該數(shù)據(jù)庫(kù)的統(tǒng)計(jì)值。
僅計(jì)算優(yōu)化器要用的統(tǒng)計(jì)(無(wú)清空)。
顯示關(guān)于vacuumdb命令行參數(shù)的信息并退出。
vacuumdb還接受下列命令行參數(shù)作為連接參數(shù):
指定運(yùn)行服務(wù)器的主機(jī)名。如果數(shù)值以斜杠開頭,則被用作到Unix域套接字的路徑。
指定服務(wù)器正在偵聽的TCP端口或本地Unix域套接字文件的擴(kuò)展(描述符)
連接的用戶名
從不提示密碼。如果服務(wù)器請(qǐng)求密碼身份認(rèn)證并且一個(gè)密碼不能通過其他方式(如.pgpass 文件)來(lái)獲得,該鏈接嘗試就會(huì)失敗。該選項(xiàng)在沒有用戶可以輸入密碼時(shí)對(duì)批量作業(yè)和腳本中是有效的。
強(qiáng)制vacuumdb在連接到數(shù)據(jù)庫(kù)之前提示密碼。
該選項(xiàng)從來(lái)不是至關(guān)重要的,因?yàn)槿舴?wù)器請(qǐng)求密碼身份認(rèn)證vacuumdb 將會(huì)自動(dòng)提示一個(gè)密碼。然而,vacuumdb將浪費(fèi)一個(gè)連接嘗試發(fā)現(xiàn) 服務(wù)器需要一個(gè)密碼。在一些情況下,值得輸入-W來(lái)避免額外的連接嘗試。
缺省連接參數(shù)
該實(shí)用程序,跟大部分其他PostgreSQL實(shí)用程序一樣,也是用libpq 支持的環(huán)境變量。(請(qǐng)參閱Section 31.13。)
如果出差錯(cuò)了。參閱VACUUM 和psql獲取關(guān)于錯(cuò)誤信息和可能問題的詳細(xì)描述。 數(shù)據(jù)庫(kù)服務(wù)器必須在目標(biāo)主機(jī)上運(yùn)行。同樣, 任何libpq前端庫(kù)可獲得的缺省設(shè)置和環(huán)境變量都將生效。
vacuumdb可能需要與PostgreSQL服務(wù)器連接若干次, 每次都詢問口令。在這種情況下,設(shè)立一個(gè)~/.pgpass是比較方便的。 參閱Section 31.14獲取更多信息。
整理數(shù)據(jù)庫(kù)test:
$ vacuumdb test
為優(yōu)化器清理和分析一個(gè)名為bigdb的數(shù)據(jù)庫(kù):
$ vacuumdb --analyze bigdb
清理數(shù)據(jù)庫(kù)xyzzy中名為foo的表, 并且為優(yōu)化器分析列bar:
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy