reindexdb
Name
reindexdb -- 重建PostgreSQL数据库索引
Synopsis
reindexdb
[_connection-option_
...] [ --table
| -t
_table_
] ... [ --index
| -i
_index_
] ... [_dbname_
]
reindexdb
[_connection-option_
...] --all
| -a
reindexdb
[_connection-option_
...] --system
| -s
[_dbname_
]
描述
reindexdb是一个重建数据库索引的工具。
reindexdb是 SQL 命令REINDEX的包装。 因此,用哪种方法重建索引都一样。
选项
reindexdb accepts the following command-line arguments: reindexdb接受下列命令行参数:
-a``--all
对所有数据库重建索引。
[-d]
_dbname_
[--dbname=]``_dbname_
指定要重建索引的数据库的名字。如果没有指定并且也没有使用-a
(或--all
),那么数据库名从环境变量PGDATABASE
中读取。如果没有设置环境变量,那么就使用连接使用的用户名。
-e
--echo
回显reindexdb生成并发送给数据库的命令。
-i
_index_
--index=``_index_
仅对_index_
索引进行重建。 可以通过写多个-i
选项重建多个索引。
-q
--quiet
不显示进程信息。
-s
--system
对数据库的系统表重建索引。
-t
_table_
--table=``_table_
仅对_table_
表重建索引。 可以通过写多个-t
选项给多个表重建索引。
-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
缺省连接参数
这个功用,类似大多数其他PostgreSQL实用工具, 也使用由libpq支持的环境变量(参阅Section 31.14)。
诊断
如果遇到麻烦,参阅REINDEX和psql 获取潜在问题和错误信息的论述。数据库服务器必须在目标主机上运行。同样, 任何libpq前端库可获得的缺省设置和环境变量都将生效。
注意
reindexdb可能需要多次连接PostgreSQL 服务器,且每次都询问密码。此时使用~/.pgpass
文件将会很方便。 参见Section 31.15获取更多信息。
例子
重建数据库test
中的所有索引:
<samp class="literal">$</samp> <kbd class="literal">reindexdb test</kbd>
重建数据库abcd
中名为foo
的表上的bar
索引:
<samp class="literal">$</samp> <kbd class="literal">reindexdb --table foo --index bar abcd</kbd>