★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.33. vacuumlo

vacuumloPostgreSQLデータベースから"孤児になった"ラージオブジェクトをすべて削除する、単純なユーティリティです。 データベース内でoidまたはloデータ型列内にまったく現れないOIDを持つすべてのLOを"孤児になった"ラージオブジェクト(LO)とみなします。

これを使用する場合にはまた、contrib/lo項F.14参照)内のlo_manageトリガに興味を持つかもしれません。 lo_manageは初期段階で孤児になったLOの生成を防止しようと試みます。

F.33.1. 使用方法

vacuumlo [options] database [database2 ... databaseN]
  

コマンドラインで指名されたすべてのデータベースに対して処理が行われます。 利用可能なオプションは以下の通りです。

-v

多くの進行メッセージを出力します。

-n

ラージオブジェクトの削除を行わず、単に何が行われるはずかを示します。

-U username

接続ユーザ名です。

-W

vacuumloは強制的にデータベースに接続する前にパスワード入力を促します。

サーバがパスワード認証を要求する場合vacuumloは自動的にパスワード入力を促しますので、これが重要になることはありません。 しかし、vacuumloは、サーバにパスワードが必要かどうかを判断するための接続試行を無駄に行います。 こうした余計な接続試行を防ぐために-Wの入力が有意となる場合もあります。

-h hostname

データベースサーバホスト名です。

-p port

データベースサーバポート番号です。

F.33.2. 手法

まず、データベース内のラージオブジェクトのOIDをすべて含む一時テーブルを構築します。

そしてデータベース内でoid型またはlo型を型として持つ全列をスキャンし、一時テーブルから一致する項目を削除します。

一時テーブルに残った項目を孤児LOと識別します。 これらが削除されます。

F.33.3. 作者

Peter Mount