無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

vacuumdb

名前

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

概要

vacuumdb [ connection-option ...] [ option ...] [ --table | -t table [( column [,...] )] ] ... [ dbname ]

vacuumdb [ connection-option ...] [ option ...] --all | -a

説明

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

vacuumdb は、SQLの VACUUM コマンドのラッパです。 このユーティリティを使っても、これ以外の方法でサーバにアクセスしてバキュームや解析を行っても特に違いは生じません。

オプション

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

-a
--all

全てのデータベースに対してバキュームを行います。

[ -d ] dbname
[ --dbname= ] dbname

不要領域のクリーンアップ、または、解析を行うデータベース名を指定します。 データベース名が指定されておらず、 -a (または --all )も指定されていない場合、データベース名は PGDATABASE 環境変数から読み取られます。 この変数も設定されていない場合は、接続時に指定したユーザ名が使用されます。

-e
--echo

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

-f
--full

"完全な(full)" クリーンアップを行います。

-F
--freeze

積極的にタプルを "凍結" します。

-q
--quiet

進行メッセージを表示しません。

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

table のみをクリーンアップ/解析します。 列名は --analyze --analyze-only オプションがある場合にのみ設定できます。 複数の -t スイッチを記述することで複数のテーブルをバキュームすることができます。

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

-v
--verbose

処理中に詳細な情報を表示します。

-V
--version

vacuumdb のバージョンを表示し、終了します。

-z
--analyze

オプティマイザが使用する、データベースの統計情報も算出します。

-Z
--analyze-only

オプティマイザにより使用される統計情報の計算のみを行います(バキュームを行いません)。

-?
--help

vacuumdb のコマンドライン引数の使用方法を表示し、終了します。

vacuumdb には、以下に記す接続パラメータ用のコマンドライン引数も指定することもできます。

-h host
--host= host

サーバが稼働しているマシンのホスト名を指定します。 ホスト名がスラッシュから始まる場合、Unixドメインソケット用のディレクトリとして使用されます。

-p port
--port= port

サーバが接続を監視するTCPポートもしくはUnixドメインソケットファイルの拡張子を指定します。

-U username
--username= username

接続するユーザ名を指定します。

-w
--no-password

パスワードの入力を促しません。 サーバがパスワード認証を必要とし、かつ、 .pgpass ファイルなどの他の方法が利用できない場合、接続試行は失敗します。 バッチジョブやパスワードを入力するユーザが存在しない場合にこのオプションは有用かもしれません。

-W
--password

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

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

--maintenance-db= dbname

どのデータベースをバキュームしなければならないかを見つけ出すために接続するデータベースの名前を指定します。 指定されなければ postgres データベースが使用され、もし存在しなければ template1 が使用されます。

環境

PGDATABASE
PGHOST
PGPORT
PGUSER

デフォルトの接続パラメータです。

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

診断

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

注釈

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

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


$ 

vacuumdb test

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


$ 

vacuumdb --analyze bigdb

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


$ 

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

関連項目

VACUUM

powered by SEO.CUG.NET