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コマンドのラッパです。 このユーティリティを使っても、これ以外の方法でサーバにアクセスしてバキューム(データベースのクリーンアップ)を行っても特に違いは生じません。
vacuumdbでは、下記のコマンドライン引数を指定できます。
-a--all全てのデータベースに対してバキュームを行います。
[-d] dbname[--dbname] dbname不要領域のクリーンアップ、または、解析を行うデータベース名を指定します。
データベース名が指定されておらず、-a(または--all)も指定されていない場合、データベース名はPGDATABASE環境変数から読み取られます。
この変数も設定されていない場合は、接続時に指定したユーザ名が使用されます。
-e--echovacuumdbが生成し、サーバに送るコマンドをエコー表示します。
-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強制的にパスワードのプロンプトを表示します。
問題が発生した場合、考えられる原因とエラーメッセージについての説明はVACUUM と psqlを参照してください。 データベースサーバは、指定したホストで稼働している必要があります。 また、libpqフロントエンドライブラリのデフォルトの設定や環境変数が適応されることに注意してください。
vacuumdbの実行中にはPostgreSQLサーバに何度も接続しなければならないことがありますが、この場合その度にパスワードが必要です。 そのような場合は~/.pgpassファイルを用意しておくと便利です。 詳細は項28.12を参照してください。