★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

clusterdb

clusterdbPostgreSQLデータベースをクラスタ化する

概要

clusterdb [connection-option...] [ --verbose | -v ] [ --table | -t table ] ... [dbname]

clusterdb [connection-option...] [ --verbose | -v ] --all | -a

説明

clusterdbは、PostgreSQLデータベース内のテーブルを再クラスタ化するユーティリティです。 既にクラスタ化されているテーブルを検索し、前回と同じインデックスを使用して再度クラスタ化します。 一度もクラスタ化されていないテーブルは処理されません。

clusterdbは、SQLコマンドCLUSTERのラッパです。 クラスタ化を行うのに、このユーティリティを使用しても、これ以外のサーバへのアクセス方法を使用しても、特別な違いはありません。

オプション

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

-a
--all

全てのデータベースをクラスタ化します。

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

クラスタ化するデータベースの名前を指定します。 データベース名が指定されておらず、-a(または--all)も使用されていない場合、データベース名は環境変数PGDATABASEから読み取られます。 この変数も設定されていない場合は、接続のために指定されたユーザ名が使用されます。

-e
--echo

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

-q
--quiet

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

-t table
--table=table

tableのみをクラスタ化します。 複数の-tスイッチを記述することで複数のテーブルをクラスタ化することができます。

-v
--verbose

処理の間、詳細な情報を出力します。

-V
--version

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

-?
--help

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

clusterdbは、さらに、下記のコマンドライン引数を接続パラメータとして受け付けます。

-h host
--host=host

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

-p port
--port=port

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

-U username
--username=username

接続するためのユーザ名です。

-w
--no-password

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

-W
--password

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

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

--maintenance-db=dbname

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

環境

PGDATABASE
PGHOST
PGPORT
PGUSER

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

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

診断

問題が発生した場合、考えられる原因とエラーメッセージについてはCLUSTERpsqlを参照してください。 データベースサーバは対象ホスト上で稼働していなければなりません。 また、libpqフロントエンドライブラリの、あらゆるデフォルトの設定や環境変数が適用されます。

データベースtestをクラスタ化します。

$ clusterdb test

xyzzyというデータベース内のテーブルの1つfooをクラスタ化します。

$ clusterdb --table=foo xyzzy

関連項目

CLUSTER