Postgresql 中文操作指南

reindexdb

reindexdb — 重新创建索引一个 PostgreSQL 数据库

Synopsis

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 ]

Description

reindexdb 是一个用于重建 PostgreSQL 数据库中索引的实用程序。

reindexdb 是 SQL 命令 REINDEX 的一个包装器。通过此实用程序或通过其他访问服务器的方法重新索引数据库在效果上没有区别。

Options

reindexdb 接受以下命令行参数:

  • -a_—​all_

    • Reindex all databases.

  • —​concurrently

    • 使用 CONCURRENTLY 选项。请参阅 REINDEX ,其中详细解释了此选项的所有警告。

  • [-d] _dbname[--dbname=]_dbname

    • 当没有使用 -a / —​all 时,指定要重新索引的数据库的名称。如果没有指定,则从环境变量 PGDATABASE 中读取数据库名称。如果未设置,则使用为连接指定的用户名。 dbname 可以是 connection string 。如果是这样,连接字符串参数将覆盖任何冲突的命令行选项。

  • -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 。这可以是 connection string 。如果是这样,连接字符串参数将覆盖所有冲突的命令行选项。此外,连接至其他数据库时会重新使用除数据库名称本身以外的连接字符串参数。

Environment

  • PGDATABASE_PGHOST_PGPORT__PGUSER

    • Default connection parameters

  • PG_COLOR

    • 指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

此实用程序与大多数其他 PostgreSQL 实用程序一样,还使用 libpq 支持的环境变量(请参阅 Section 34.15 )。

Diagnostics

遇到困难时,请参阅 REINDEXpsql ,以了解潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。此外,将应用由 libpq 前端库使用的所有默认连接设置和环境变量。

Notes

reindexdb 可能需要多次连接至 PostgreSQL 服务器,每次都要求提供密码。这种情况下,使用 ~/.pgpass 文件将会很方便。参阅 Section 34.16 了解更多信息。

Examples

要重新索引数据库 test

$ reindexdb test

要重新索引数据库 abcd 中的表格 foo 和索引 bar

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

See Also