vacuumdb

Name

vacuumdb -- 收集垃圾並且分析一個PostgreSQL 資料庫

Synopsis

vacuumdb [connection-options...] [--full | -f] [--verbose | -v] [--analyze | -z] [--table | -t 'table [( column [,...] )]' ] [dbname]
vacuumdb [connection-options...] [--all | -a] [--full | -f] [--verbose | -v] [--analyze | -z]

輸入

vacuumdb 接受下列命令行參數:

[-d] dbname
[--dbname] dbname

宣告要被清理或分析的資料庫名稱。

-a
--all

清理所有資料庫。

-e
--echo

回顯 vacuumdb 生成的查詢並且把它發送到伺服器。

-f
--full

執行"完全"清理.

-q
--quiet

不顯示響應。

-t table [ (column [,...]) ]
--table table [ (column [,...]) ]

只是清理或分析 table。 欄位名稱只是在與 --analyze 選項聯合使用時才需要宣告。

技巧: 如果你宣告了要清理的列,你可能不得不在 shell 上逃逸圓括弧。

-v
--verbose

在處理過程中列印詳細資訊。

-z
--analyze

計算用於最佳化器的該資料庫的統計值。

vacuumdb 還接受下面的命令行參數用於連結參數:

-h host
--host host

宣告運行伺服器 的機器的主機名. 如果主機名以斜扛開頭,則它被用做到 Unix 域通訊端的路徑.

-p port
--port port

宣告伺服器 在偵聽連結的TCP/IP 連接埠號或一個本地的Unix主控通訊端文件句柄.

-U username
--username username

進行連結的使用者名。

-W
--password

強制密碼輸入提示。

輸出

VACUUM

一切正常。

vacuumdb: Vacuum failed.

出差錯了。vacuumdb 只是一個腳本的封裝。參閱 VACUUMpsql 獲取關於錯誤資訊和可能問題的詳細描述。

描述

vacuumdb 是一個用於整理 PostgreSQL 資料庫的工具。 vacuumdb 還將會生成用於 PostgreSQL 查詢最佳化器的內部統計資料。

vacuumdb 是一個 shell 腳本,通過 PostgreSQL交互終端 psql封裝了 VACUUM。 因此,用那種方法清理資料庫都沒什麼特別的。這意味著 psql 必須能被腳本找到並且有一個資料庫伺服器在目標主機上運行。同樣,任何 psqllibpq 前端庫可獲得的預設設定和 環境變數都將生效。

用法

整理資料庫 test

$ vacuumdb test

為最佳化器清理和分析一個名為 bigdb 的資料庫:

$ vacuumdb --analyze bigdb

為清理資料庫xyzzy裡表 foo, 並且為最佳化器分析列 bar

$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy