vacuumlo — 從 PostgreSQL 資料庫移除孤立的大型物件
vacuumlo
[選項
...] dbname
...
vacuumlo 是一個簡單的工具程式,可以從 PostgreSQL 資料庫中移除任何「孤立」的大型物件。如果大型物件 (LO) 的 OID 沒有出現在資料庫的任何 oid
或 lo
資料欄位中,則該 LO 會被視為孤立。
如果您使用此工具,您可能也會對 lo 模組中的 lo_manage
觸發程序感興趣。lo_manage
對於嘗試從一開始就避免建立孤立的 LO 很有用。
將處理命令列中指定的所有資料庫。
vacuumlo 接受下列命令列引數
-l limit
--limit=limit
每次交易移除不超過 limit
個大型物件(預設為 1000)。由於伺服器會為每個移除的 LO 取得一個鎖定,因此在一次交易中移除太多 LO 會有超過 max_locks_per_transaction 的風險。如果您希望在單一交易中完成所有移除,請將限制設為零。
-n
--dry-run
不要移除任何東西,只要顯示將會執行的動作。
-v
--verbose
寫入大量進度訊息。
-V
--version
印出 vacuumlo 版本並結束。
-?
--help
顯示關於 vacuumlo 命令列引數的說明,並結束。
vacuumlo 也接受下列連接參數的命令列引數
-h host
--host=host
資料庫伺服器的主機。
-p port
--port=port
資料庫伺服器的連接埠。
-U username
--username=username
要連接的使用者名稱。
-w
--no-password
永不發出密碼提示。如果伺服器需要密碼驗證,且密碼無法透過其他方式取得,例如 .pgpass
檔案,則連接嘗試將會失敗。此選項在批次作業和沒有使用者可輸入密碼的指令碼中很有用。
-W
--password
強制 vacuumlo 在連接到資料庫之前提示輸入密碼。
此選項並非必要,因為如果伺服器要求密碼驗證,vacuumlo 將會自動提示輸入密碼。但是,vacuumlo 將會浪費一次連接嘗試來找出伺服器是否需要密碼。在某些情況下,值得輸入 -W
以避免額外的連接嘗試。
PGHOST
PGPORT
PGUSER
預設連接參數。
此工具程式(如大多數其他 PostgreSQL 工具程式)也使用 libpq 支援的環境變數(請參閱第 32.15 節)。
環境變數 PG_COLOR
指定是否要在診斷訊息中使用顏色。可能的值為 always
、auto
和 never
。
vacuumlo 的運作方式如下:首先,vacuumlo 會建立一個暫存表格,其中包含所選資料庫中所有大型物件的 OID。然後,它會掃描資料庫中所有類型為 oid
或 lo
的欄位,並從暫存表格中移除相符的項目。(注意:只會考量具有這些名稱的類型;特別是,不會考量它們之上的網域。)暫存表格中剩餘的項目會識別孤立的 LO。這些會被移除。
Peter Mount <peter@retep.org.uk>
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用此表單來回報文件問題。