★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

vacuumlo

vacuumloPostgreSQLデータベースから孤児となったラージオブジェクトを削除する

概要

vacuumlo [option...] dbname...

説明

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

これを使用する場合にはまた、loモジュール内のlo_manageトリガに興味を持つかもしれません。 lo_manageは初期段階で孤児になったLOの生成を防止しようと試みます。

コマンドラインで指名された全てのデータベースに対して処理が行われます。

オプション

vacuumloは以下のコマンドライン引数を受け付けます。

-l limit
--limit=limit

1トランザクションに付き、limit個(デフォルトは1000)より多くのラージオブジェクトを削除しません。 サーバは削除されるLO毎に一つのロックを取得するため、多数のLOの削除を1トランザクションで行う場合、max_locks_per_transactionを超える恐れがあります。 もし1トランザクションで全ての削除を行いたい場合は、このlimit値を0に指定してください。

-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がサポートする環境変数(34.15参照)も使います。

環境変数PG_COLORは診断メッセージで色を使うかどうかを指定します。 可能な値はalwaysautoneverです。

注意

vacuumloは下記の手法で動作します。 まずvacuumloは選択されたデータベース内のラージオブジェクトのOIDをすべて含む一時テーブルを構築します。 そしてデータベース内でoid型またはlo型を型として持つ全列をスキャンし、一時テーブルから一致する項目を削除します。 (注意:これらの名前の型のみが対象となります。特に、これらの型を伴ったドメインなどはスキャン対象にはなりませんので注意が必要です。) 一時テーブルに残った項目を孤児LOと識別します。 これらが削除されます。

作者

Peter Mount