★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

vacuumdb

名前

vacuumdb -- PostgreSQL データベースの不要領域の回収と解析

概要

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 データベースの不要領域の掃除 (クリーニング) を行うユーティリティです。 また、vacuumdbPostgreSQL 問い合わせオプティマイザで使用される内部的な統計情報も生成します。

vacuumdb は、SQLコマンド VACUUM のラッパーです。 これ以外の方法でサーバにアクセスしてデータベースの掃除を行っても特別な違いはありません。

オプション

vacuumdb では、下記のコマンドライン引数を指定できます。

-a
--all

すべてのデータベースの掃除を行ないます。

[-d] dbname
[--dbname] dbname

不要領域の掃除または解析の対象となるデータベース名を指定します。 データベース名が指定されておらず、-a (または --all) も使用されていない場合、データベース名は環境変数 PGDATABASE から読み取られます。 この変数も設定されていない場合は、接続のために指定されたユーザ名が使用されます。

-e
--echo

vacuumdb が生成し、サーバに送るコマンドをエコー表示します。

-f
--full

"完全な (full)" 掃除を行ないます。

-q
--quiet

応答を表示させません。

-t table [ (column [,...]) ]
--table table [ (column [,...]) ]

table のみの掃除または解析を行ないます。 列名は --analyze オプションがある場合にのみ設定できます。

ティップ: 掃除する列を指定する場合は、シェルから括弧をエスケープさせる必要があるでしょう。 (後述の例を参照して下さい。)

-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 サーバに何度も接続しなければならない場合があり、その度にパスワードが必要になります。 そのような場合には $HOME/.pgpass ファイルを用意しておくと便利です。 より詳細は項27.11を参照してください。

test というデータベースを掃除するには、下記のコマンドを実行します。

$ vacuumdb test

bigdb という名前のデータベースの掃除とオブティマイザ用の解析を行なう場合には、下記のコマンドを実行します。

$ vacuumdb --analyze bigdb

xyzzy という名前のデータベースの foo という 1 つのテーブルだけの掃除と、そのテーブルの bar という 1 つの列にだけ対してオブティマイザ用の解析を行なう場合には、下記のコマンドを実行します。

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

関連項目

VACUUM