他のバージョンの文書 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

reindexdb

reindexdbPostgreSQLデータベースのインデックスを再作成する

概要

reindexdb [connection-option...] [option...] [ -S | --schema schema ] ... [ -t | --table table ] ... [ -i | --index index ] ... [dbname]

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

reindexdb [connection-option...] [option...] -s | --system [dbname]

説明

reindexdbは、PostgreSQLデータベース内のインデックスを再作成するユーティリティです。

reindexdbは、SQLコマンドREINDEXのラッパです。 このユーティリティを使用しても他の方法でサーバにアクセスしても、データベースインデックスの再作成には実質的な違いはありません。

オプション

reindexdbは以下のコマンドライン引数を受け付けます。

-a
--all

すべてのデータベースのインデックスを再作成します。

--concurrently

CONCURRENTLYオプションを使います。 REINDEXを参照してください。このオプションの注意がすべて詳しく説明されています。

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

-a/--allが使用されていない場合に、インデックス再作成を行なうデータベースの名前を指定します。 これが指定されていなければ、環境変数PGDATABASEからデータベース名が決まります。 これも設定されていない場合は、接続時に指定したユーザ名が使用されます。 dbname接続文字列でも構いません。 その場合、接続文字列パラメータは衝突するコマンドラインオプションに優先します。

-e
--echo

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

-i index
--index=index

indexのみを再作成します。 複数の-iスイッチを記述することで、複数のインデックスを再作成することができます。

-j njobs
--jobs=njobs

njobs個のコマンドを同時に実行することで、reindexコマンドを並列で実行します。 このオプションは処理時間を短縮することもありますが、データベースサーバの負荷も増加します。

reindexdbはデータベースに対するnjobs個の接続を開くので、max_connectionsの設定は、これらの接続を許容するだけ十分に大きくしてください。

このオプションは--index--systemオプションと非互換であることに注意してください。

-q
--quiet

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

-s
--system

データベースのシステムカタログのみ、インデックスを再作成します。

-S schema
--schema=schema

schemaのみのインデックスを再作成します。 複数の-Sスイッチを指定することで、複数のスキーマのインデックスを再作成できます。

-t table
--table=table

tableのインデックスのみを再作成します。 複数の-tを記述することで、複数のテーブルのインデックスを再作成することができます。

--tablespace=tablespace

インデックスを再作成するテーブル空間を指定します。 (この名前は二重引用符で囲まれた識別子として処理されます。)

-v
--verbose

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

-V
--version

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

-?
--help

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

また、reindexdbは、接続パラメータとして以下のコマンドライン引数を受け付けます。

-h host
--host=host

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

-p port
--port=port

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

-U username
--username=username

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

-w
--no-password

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

-W
--password

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

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

--maintenance-db=dbname

-a/--allが使われている場合、どのデータベースを再インデックス付けしなければならないかを見つけ出すために接続するデータベースの名前を指定します。 指定されなければpostgresデータベースが使用され、もし存在しなければtemplate1が使用されます。 これは接続文字列でも構いません。 その場合、接続文字列パラメータは衝突するコマンドラインオプションに優先します。 また、データベース名自身以外の接続文字列パラメータは他のデータベースに接続する際に再利用されます。

環境

PGDATABASE
PGHOST
PGPORT
PGUSER

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

PG_COLOR

診断メッセージで色を使うかどうかを指定します。 可能な値はalwaysautoneverです。

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

診断

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

注釈

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

データベースtestのインデックスを再作成します。

$ reindexdb test

abcdというデータベース内のテーブルfooのインデックスとインデックスbarを再作成します。

$ reindexdb --table=foo --index=bar abcd

関連項目

REINDEX