vacuumdb

Name

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

Synopsis

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

描述

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

vacuumdb 是 SQL 命令 VACUUM 的封裝。 因此,用哪種方法清理資料庫都沒什麼特別的。

輸入

vacuumdb 接受下列命令行參數:

-a
--all

清理所有資料庫。

[-d] dbname
[--dbname] dbname

聲明要被清理或分析的資料庫名稱。 如果沒有聲明這個參數並且沒有使用 -a(或 --all), 那麼從環境變量 PGDATABASE 裡讀取資料庫名。 如果那個也沒有設置,則使用連接的用戶名。

-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 連接埠號或一個本地的 Unix 域套接字文件句柄。

-U username
--username username

進行連線的用戶名。

-W
--password

強制指令輸入提示。

環境

PGDATABASE
PGHOST
PGPORT
PGUSER

預設連接參數

診斷

如果出差錯了。參閱 VACUUMpsql 獲取關於錯誤訊息和可能問題的詳細描述。 資料庫伺服器必須在目標主機上執行。同時,前端庫 libpq 使用的任何預設連接設置和環境變量都適用。

注意

vacuumdb 可能需要與 PostgreSQL 伺服器連接若干次,每次都詢問指令。在這種情況下,設立一個 ~/.pgpass 是比較方便的。參閱 Section 27.12 獲取更多訊息。

例子

整理資料庫 test

$ vacuumdb test

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

$ vacuumdb --analyze bigdb

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

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

又見

VACUUM