vacuumlo — 從 PostgreSQL 資料庫中移除孤立的大物件
vacuumlo
[選項
...] 資料庫名
...
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=主機
資料庫伺服器的主機。
-p 埠
--port=埠
資料庫伺服器的埠。
-U 使用者名稱
--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>
如果您在文件中看到任何不正確、與您對該功能的實際經驗不符或需要進一步澄清的內容,請使用 此表格 來報告文件問題。