reindexdb — PostgreSQLデータベースのインデックスを再作成する
reindexdb
[connection-option
...] [option
...]
[
--schema
| -S
schema
]
...
[
--table
| -t
table
]
...
[
--index
| -i
index
]
... [dbname
]
reindexdb
[connection-option
...] [option
...] --all
| -a
reindexdb
[connection-option
...] [option
...] --system
| -s
[dbname
]
reindexdbは、PostgreSQLデータベース内のインデックスを再作成するユーティリティです。
reindexdbは、SQLコマンドREINDEXのラッパです。 このユーティリティを使用しても他の方法でサーバにアクセスしても、データベースインデックスの再作成には実質的な違いはありません。
reindexdbは以下のコマンドライン引数を受け付けます。
-a
--all
すべてのデータベースのインデックスを再作成します。
--concurrently
CONCURRENTLY
オプションを使います。
REINDEXを参照してください。このオプションの注意がすべて詳しく説明されています。
[-d] dbname
[--dbname=]dbname
インデックス再作成を行うデータベースの名前を指定します。
これが指定されず、かつ、-a
(または--all
)も使用されていない場合、環境変数PGDATABASE
からデータベース名が決まります。
これも設定されていない場合は、接続時に指定したユーザ名が使用されます。
-e
--echo
reindexdbが生成しサーバに送信するコマンドを表示します。
-i index
--index=index
index
のみを再作成します。
複数の-i
スイッチを記述することで、複数のインデックスを再作成することができます。
-q
--quiet
進行メッセージを表示しません。
-s
--system
データベースのシステムカタログのインデックスを再作成します。
-S schema
--schema=schema
schema
のみのインデックスを再作成します。
複数の-S
スイッチを指定することで、複数のスキーマのインデックスを再作成できます。
-t table
--table=table
table
のインデックスのみを再作成します。
複数の-t
を記述することで、複数のテーブルのインデックスを再作成することができます。
-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
どのデータベースを再インデックス付けしなければならないかを見つけ出すために接続するデータベースの名前を指定します。
指定されなければpostgres
データベースが使用され、もし存在しなければtemplate1
が使用されます。
PGDATABASE
PGHOST
PGPORT
PGUSER
デフォルトの接続パラメータです。
PG_COLOR
診断メッセージで色を使うかどうかを指定します。
可能な値はalways
、auto
、never
です。
また、このユーティリティは、他のほとんどのPostgreSQLユーティリティと同様、libpqでサポートされる環境変数を使用します(33.14を参照してください)。
問題が発生した場合、考えられる原因とエラーメッセージについての説明はREINDEXとpsqlを参照してください。 データベースサーバは、指定したホストで稼働している必要があります。 また、libpqフロントエンドライブラリのデフォルトの設定や環境変数が適用されることに注意してください。
reindexdbの実行中にはPostgreSQLサーバに何度も接続しなければならないことがありますが、この場合その度にパスワードが必要です。
そのような場合は~/.pgpass
ファイルを用意しておくと便利です。
詳細は33.15を参照してください。
データベースtest
のインデックスを再作成します。
$
reindexdb test
abcd
というデータベース内のテーブルfoo
のインデックスとインデックスbar
を再作成します。
$
reindexdb --table=foo --index=bar abcd