VACUUMDB(1)

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

SYNOPSIS

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データベースの不要領域のクリーンアップを行うユーティリティです。 また、vacuumdbはPostgreSQLの問い合わせオプティマイザが使用する内部的な統計情報も生成します。

vacuumdbは、SQLのVACUUM [vacuum(l)]コマンドのラッパです。 このユーティリティを使っても、これ以外の方法でサーバにアクセスしてバキューム（データベースのクリーンアップ）を行っても特に違いは生じません。

オプション

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オプションがある場合にのみ設定できます。

    Tip: クリーンアップする列を指定する場合は、シェルで括弧をエスケープする必要があるでしょう （後述の例を参照してください）。

-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
    デフォルトの接続パラメータです。

また、このユーティリティは、他のほとんどのPostgreSQLユーティリティと同様、libpqでサポートされる環境変数を使用します（in the documentationを参照してください）。

診断

問題が発生した場合、考えられる原因とエラーメッセージについての説明はVACUUM [vacuum(l)] と psql(1)を参照してください。 データベースサーバは、指定したホストで稼働している必要があります。 また、libpqフロントエンドライブラリのデフォルトの設定や環境変数が適応されることに注意してください。

注釈

vacuumdbの実行中にはPostgreSQLサーバに何度も接続しなければならないことがありますが、この場合その度にパスワードが必要です。 そのような場合は~/.pgpassファイルを用意しておくと便利です。 詳細はin the documentationを参照してください。

例

testというデータベースをクリーンアップするには、下記のコマンドを実行します。

$ vacuumdb test

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

$ vacuumdb --analyze bigdb

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

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

関連項目
VACUUM [vacuum(l)]