↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 命令行工具

命令行工具

版本比较

客户端和服务端程序、命令选项、环境变量及操作示例。

当前查看 PostgreSQL 18。

共 37 个条目,PostgreSQL 18 收录 35 个。

  • clusterdb 客户端程序

    描述 clusterdb 是一个用于重新聚簇 PostgreSQL 数据库中各表的工具。它会找出此前已经聚簇过的表,并按照上次使用的同一索引再次对其进行聚簇。从未聚簇过的表不会受到影响。 clusterdb 是 SQL 命令 CLUSTER 的一个包装器。使用该工具聚簇数据库,与使用其他访问服务器的方法聚簇数据库,并没有实质区别。 选项 clusterdb 接受下列命令行参数: -a --all 聚簇所有数据库。 [ -d ] dbname [ --dbname= ] dbname 当未使用 …

  • createdb 客户端程序

    描述 createdb 创建一个新的 PostgreSQL 数据库。 通常,执行此命令的数据库用户会成为新数据库的所有者。不过,如果执行用户具有相应的权限,也可以通过 -O 选项指定不同的所有者。 createdb 是 SQL 命令 CREATE DATABASE 的一个包装器。通过该工具创建数据库,与通过其他访问服务器的方法创建数据库在实际效果上没有区别。 选项 createdb 接受下列命令行参数: dbname 指定要创建的数据库名称。该名称必须在此数据库集簇中的所有 PostgreSQ…

  • createuser 客户端程序

    描述 createuser 创建一个新的 PostgreSQL 用户(更准确地说,是一个角色)。只有超级用户以及具有 CREATEROLE 权限的用户才能创建新用户,因此调用 createuser 的用户必须能够以超级用户或具有 CREATEROLE 权限的用户身份连接。 如果要创建一个具有 SUPERUSER 、 REPLICATION 或 BYPASSRLS 权限的角色,则必须以超级用户身份连接,而不能仅具有 CREATEROLE 权限。超级用户意味着能够绕过数据库中的所有访问权限检查,因…

  • dropdb 客户端程序

    描述 dropdb 删除一个现有的 PostgreSQL 数据库。执行此命令的用户必须是数据库超级用户或该数据库的拥有者。 dropdb 是 SQL 命令 DROP DATABASE 的一个包装器。通过此工具删除数据库与通过其他访问服务器的方法删除数据库,在效果上没有区别。 选项 dropdb 接受下列命令行参数: dbname 指定要移除的数据库名称。 -e --echo 回显 dropdb 生成并发送给服务器的命令。 -f --force 在删除目标数据库之前,尝试终止所有到该数据库的现有…

  • dropuser 客户端程序

    描述 dropuser 删除一个现有的 PostgreSQL 用户。超级用户可以使用此命令删除任何角色;否则,只能删除非超级用户角色,而且只有拥有 CREATEROLE 权限并已被授予目标角色上的 ADMIN OPTION 的用户才能这样做。 dropuser 是 SQL 命令 DROP ROLE 的包装器。通过此工具删除用户与通过其他访问服务器的方法删除用户,在效果上并无区别。 选项 dropuser 接受下列命令行参数: username 指定要移除的 PostgreSQL 用户名。如果命…

  • ecpg 客户端程序

    描述 ecpg 是供 C 程序使用的嵌入式 SQL 预处理器。它会把嵌入了 SQL 语句的 C 程序转换成普通 C 代码,方法是将 SQL 调用替换为特殊的函数调用。生成的输出文件随后可以由任何 C 编译器工具链处理。 ecpg 会将命令行中给出的每个输入文件转换成对应的 C 输出文件。若输入文件名没有任何扩展名,则假定其扩展名为 .pgc 。随后会把该文件的扩展名替换为 .c ,以构造输出文件名。不过,也可以用 -o 选项覆盖输出文件名。 如果输入文件名只是 - , ecpg 就会从标准输入…

  • pg_amcheck 客户端程序

    描述 pg_amcheck 支持针对一个或多个数据库运行 amcheck 的损坏检查函数,并提供选项来选择要检查哪些模式、表和索引,执行哪些检查,以及是否并行执行这些检查;如果并行执行,还可指定要建立并使用的并行连接数。 当前仅支持普通表关系、TOAST 表关系、物化视图、序列以及 B-树索引。其他关系类型会被静默跳过。 如果指定了 dbname ,它应是要检查的单个数据库的名称,并且不应再出现其他数据库选择选项。否则,如果存在任何数据库选择选项,就会检查所有匹配的数据库。如果不存在这类选项,…

  • pg_basebackup 客户端程序

    pg_basebackup — 获取 PostgreSQL 集簇的基础备份

  • pg_combinebackup 客户端程序

    描述 pg_combinebackup 用于从 增量备份 及其所依赖的更早备份中重建一个合成的完整备份。 请在命令行上按照从旧到新的顺序指定所有必需的备份。也就是说,第一个备份目录应当是完整备份的路径,最后一个应当是您希望恢复的最终增量备份的路径。重建后的备份将写入由 -o 选项指定的输出目录。 pg_combinebackup 会尝试验证您指定的这些备份是否构成一条合法的备份链,并且能否据此重建出正确的完整备份。但它并不是为帮助您跟踪哪些备份依赖于哪些其他备份而设计的。如果您删除了增量备份所…

  • pg_config 客户端程序

    描述 pg_config 工具打印当前已安装的 PostgreSQL 版本的配置参数。例如,希望与 PostgreSQL 对接的软件包可以使用它,以便找到所需的头文件和库。 选项 要使用 pg_config ,请提供下列一个或多个选项: --bindir 打印用户可执行文件所在的位置。例如,可用它来查找 psql 程序。通常这也是 pg_config 程序所在的位置。 --docdir 打印文档文件所在的位置。 --htmldir 打印 HTML 文档文件所在的位置。 --includedir…

  • pg_dump 客户端程序

    pg_dump — 将 PostgreSQL 数据库导出为 SQL 脚本或其他格式

  • pg_dumpall 客户端程序

    描述 pg_dumpall 是一个实用程序,用于写出( “ 转储 ” )一个集簇中的所有 PostgreSQL 数据库到一个脚本文件中。该脚本文件包含 SQL 命令,可作为 psql 的输入来恢复这些数据库。它通过对集簇中的每个数据库调用 pg_dump 来实现这一点。 pg_dumpall 还会转储所有数据库共有的全局对象,即数据库角色、表空间以及配置参数的权限授予。( pg_dump 不会保存这些对象。) 由于 pg_dumpall 会读取所有数据库中的表,因此通常必须以数据库超级用户身份…

  • pg_isready 客户端程序

    描述 pg_isready 是一个用于检查 PostgreSQL 数据库服务器连接状态的工具。其退出状态指示连接检查的结果。 选项 -d dbname --dbname= dbname 指定要连接的数据库名称。 dbname 也可以是 连接字符串 。如果是这样,连接字符串中的参数将覆盖任何冲突的命令行选项。 -h hostname --host= hostname 指定服务器所在机器的主机名。如果值以斜杠开头,则被用作 Unix 域套接字的目录。 -p port --port= port 指定…

  • pg_receivewal 客户端程序

    描述 pg_receivewal 用于从正在运行的 PostgreSQL 数据库集簇流式接收预写式日志。预写式日志通过流复制协议传输,并写入本地目录中的文件。该目录可作为使用时间点恢复执行恢复时的归档位置(见 第 25.3 节 )。 pg_receivewal 会在服务器生成预写式日志的同时实时流式接收,而不像 archive_command 和 archive_library 那样等待 WAL 段完成。因此,使用 pg_receivewal 时无需设置 archive_timeout 。 与…

  • pg_recvlogical 客户端程序

    描述 pg_recvlogical 用于控制逻辑解码复制槽,并从这类复制槽流式传输数据。 它会创建复制模式连接,因此除受到与 pg_receivewal 相同的约束外,还要满足逻辑复制的相关约束(见 第 47 章 )。 pg_recvlogical 没有与逻辑解码 SQL 接口中 peek 和 get 模式等价的功能。它会在接收数据期间惰性地为这些数据发送重放确认,并在正常退出时发送确认。若要在不消费数据的情况下检查某个槽上的待处理数据,请使用 pg_logical_slot_peek_cha…

  • pg_restore 客户端程序

    pg_restore — 从由 pg_dump 创建的归档文件恢复 PostgreSQL 数据库

  • pg_verifybackup 客户端程序

    描述 pg_verifybackup 用于依据服务器在备份时生成的 backup_manifest ,检查使用 pg_basebackup 获取的数据库集簇备份的完整性。备份既可以采用“普通文件”格式,也可以采用“tar”格式;其中也包括使用 pg_basebackup 支持的任意算法压缩的 tar 格式备份。不过,目前仅支持对普通文件格式备份执行 WAL 验证。因此,如果备份采用 tar 格式存储,应使用 -n, --no-parse-wal 选项。 需要注意, pg_verifybacku…

  • pgbench 客户端程序

    描述 pgbench 是一个用于对 PostgreSQL 执行基准测试的简单程序。它会反复执行同一组 SQL 命令,也可在多个并发数据库会话中运行,然后计算平均事务速率(每秒事务数)。默认情况下, pgbench 测试的是一个大体上基于 TPC-B 的场景,每个事务包含五条 SELECT 、 UPDATE 和 INSERT 命令。不过,通过编写自己的事务脚本文件,也很容易测试其他场景。 典型的 pgbench 输出如下: transaction type: <builtin: TPC-B (s…

  • psql 客户端程序

    psql — PostgreSQL 的交互式终端

  • reindexdb 客户端程序

    描述 reindexdb 是用于重建 PostgreSQL 数据库中索引的工具。 reindexdb 是 SQL 命令 REINDEX 的一个包装器。通过该工具重建索引与通过其他方法访问服务器来重建索引,在效果上没有区别。 选项 reindexdb 接受下列命令行参数: -a --all 重建所有数据库的索引。 --concurrently 使用 CONCURRENTLY 选项。参见 REINDEX ,其中详细解释了该选项的所有注意事项。 [ -d ] dbname [ --dbname= ]…

  • vacuumdb 客户端程序

    描述 vacuumdb 是用于清理 PostgreSQL 数据库的工具。 vacuumdb 还会生成供 PostgreSQL 查询优化器使用的内部统计信息。 vacuumdb 是 SQL 命令 VACUUM 的包装器。通过该工具或通过访问服务器的其他方式来清理和分析数据库,在效果上没有区别。 选项 vacuumdb 接受下列命令行参数: -a --all 清理所有数据库。 --buffer-usage-limit size 为一次给定的 vacuumdb 调用指定 缓冲区访问策略(Buffer…

  • initdb 服务端程序

    描述 initdb 创建一个新的 PostgreSQL 数据库集簇 。 创建数据库集簇包括创建用于存放集簇数据的 目录 ,生成共享系统目录表(属于整个集簇而不是某个特定数据库的表),以及创建 postgres 、 template1 和 template0 数据库。 postgres 数据库是一个默认数据库,供用户、工具程序和第三方应用程序使用。 template1 和 template0 用作后续 CREATE DATABASE 命令复制的源数据库。 template0 不应被修改,但可以向…

  • pg_archivecleanup 服务端程序

    描述 pg_archivecleanup 设计为在服务器作为备库运行时用作 archive_cleanup_command ,以清理 WAL 文件归档(见 第 26.2 节 )。 pg_archivecleanup 也可作为独立程序使用,以清理 WAL 文件归档。 要将备库配置为使用 pg_archivecleanup ,请将以下内容写入其 postgresql.conf 配置文件: archive_cleanup_command = 'pg_archivecleanup archiveloc…

  • pg_checksums 服务端程序

    描述 pg_checksums 用于在 PostgreSQL 数据库集簇中检查、启用或禁用数据校验和。运行 pg_checksums 之前,必须先将服务器干净关闭。验证校验和时,如果没有校验和错误,则退出状态为零;如果检测到至少一个校验和失败,则退出状态为非零。启用或禁用校验和时,如果操作失败,则退出状态为非零。 在验证校验和时,集簇中的每个文件都会被扫描。启用校验和时,校验和发生变化的每个关系文件块都会被原地重写。禁用校验和只会更新文件 pg_control 。 选项 提供以下命令行选项: …

  • pg_controldata 服务端程序

    描述 pg_controldata 会打印在 initdb 期间初始化的信息,例如系统目录版本。它还会显示有关预写式日志和检查点处理的信息。这些信息是整个集簇范围内的,不针对任何单个数据库。 该工具只能由初始化该集簇的用户运行,因为它需要对数据目录具有读取权限。可以在命令行中指定数据目录,也可以使用环境变量 PGDATA 。该工具支持 -V 和 --version 选项,用于输出 pg_controldata 的版本并退出。它还支持 -? 和 --help 选项,用于输出可用参数。

  • pg_createsubscriber 服务端程序

    描述 pg_createsubscriber 从物理备库创建新的逻辑副本。指定数据库中的所有表都会包含在 逻辑复制 配置中。每个数据库都会创建一对发布和订阅对象。该工具必须在目标服务器上运行。 成功运行后,目标服务器的状态类似于一个全新的逻辑复制配置。逻辑复制配置与 pg_createsubscriber 之间的主要区别在于数据同步的完成方式。 pg_createsubscriber 不会复制初始表数据。它只执行同步阶段,以确保每个表都达到同步状态。 pg_createsubscriber 主…

  • pg_ctl 服务端程序

    描述 pg_ctl 是一个实用工具,用于初始化 PostgreSQL 数据库集簇,启动、停止或重启 PostgreSQL 数据库服务器( postgres ),或者显示正在运行的服务器的状态。虽然服务器也可以手工启动,但 pg_ctl 将重定向日志输出、正确地与终端和进程组脱离等任务封装了起来。它还提供了便于实施受控关闭的选项。 init 或 initdb 模式会创建一个新的 PostgreSQL 数据库集簇,也就是由单个服务器实例管理的一组数据库。该模式会调用 initdb 命令。详见 in…

  • pg_resetwal 服务端程序

    描述 pg_resetwal 会清除预写式日志(WAL),并可选择性地重置存储在 pg_control 文件中的某些其他控制信息。如果这些文件已经损坏,有时就需要使用此功能。只有当服务器因这类损坏而无法启动时,才应将其作为最后手段使用。 某些选项,如 --wal-segsize (见下文),也可用于在不重新运行 initdb 的情况下修改数据库集簇的某些全局设置。若不使用下文提到的危险模式,则可在其他方面完好的数据库集簇上安全执行此操作。 如果在某个数据目录上使用 pg_resetwal 时,…

  • pg_rewind 服务端程序

    描述 pg_rewind 是一个工具,用于在同一 PostgreSQL 集簇的两份副本时间线发生分叉后,将其中一份重新同步到另一份。典型场景是故障切换后,让旧主库重新上线,作为跟随新主库的备库。 成功完成回卷后,目标数据目录的状态相当于源数据目录的一份基础备份。与重新获取一份基础备份或使用 rsync 之类的工具不同, pg_rewind 不需要比较或复制集簇中未发生变化的关系块。它只复制现有关系文件中发生变化的块;其余所有文件,包括新的关系文件、配置文件以及 WAL 段,都会整体复制。因此,…

  • pg_test_fsync 服务端程序

    描述 pg_test_fsync 旨在让你较为合理地了解,在你的具体系统上哪一种 wal_sync_method 最快,并且在识别出 I/O 问题时提供诊断信息。不过, pg_test_fsync 显示出的差异未必会对实际数据库吞吐量产生显著影响,特别是因为许多数据库服务器的速度瓶颈并不在其预写式日志上。 pg_test_fsync 会为每种 wal_sync_method 报告以微秒计的平均文件同步操作时间,这也可用于为优化 commit_delay 的取值提供参考。 选项 pg_test_…

  • pg_test_timing 服务端程序

    描述 pg_test_timing 是一个用于测量系统计时开销的工具,并确认系统时间不会倒退。收集计时数据较慢的系统,可能会给出不够精确的 EXPLAIN ANALYZE 结果。 选项 pg_test_timing 接受下列命令行选项: -d duration --duration= duration 指定测试持续时间,以秒为单位。持续时间越长,精度会略有提高,也更可能发现系统时钟倒退的问题。默认测试持续时间为 3 秒。 -V --version 打印 pg_test_timing 版本并退出…

  • pg_upgrade 服务端程序

    描述 pg_upgrade (以前称为 pg_migrator )允许将存储在 PostgreSQL 数据文件中的数据升级到更新的 PostgreSQL 主版本,而无需执行主版本升级通常所需的数据转储/恢复,例如从 12.14 升级到 13.10,或从 14.9 升级到 15.5。次版本升级不需要使用它,例如从 12.7 升级到 12.8 或从 14.1 升级到 14.5。 PostgreSQL 主版本会定期增加新特性,这些特性常常会改变系统表的布局,但内部数据存储格式很少改变。 pg_upg…

  • pg_verify_checksums 服务端程序 PG 18 未收录

    所选版本未收录此条目。

  • pg_waldump 服务端程序

    描述 pg_waldump 显示预写式日志(WAL),主要用于调试或教学。 该工具只能由安装服务器的用户运行,因为它要求对数据目录具有只读访问权限。 选项 以下命令行选项控制输出的位置和格式: startseg 从指定的 WAL 段文件开始读取。这会隐式决定搜索文件时所使用的路径以及要使用的时间线。 endseg 读取完指定的 WAL 段文件后停止。 -b --bkp-details 输出有关备份块的详细信息。 -B block --block= block 只显示修改给定块的记录。还必须通过…

  • pg_walsummary 服务端程序

    描述 pg_walsummary 用于打印 WAL 汇总文件的内容。这些二进制文件位于数据目录下的 pg_wal/summaries 子目录中,可使用本工具将其转换为文本。通常并无此必要,因为 WAL 汇总文件主要是为了支持 增量备份 而存在的,但在调试时可能会很有用。 WAL 汇总文件按表空间 OID、关系 OID 以及关系分支(fork)建立索引。对于每个关系分支,它都存储该文件所汇总范围内被 WAL 修改的块列表。它还可以存储一个 “ 界限块 ” :如果该关系分支在相关 WAL 范围内被…

  • postgres 服务端程序

    描述 postgres 是 PostgreSQL 数据库服务器。客户端应用要访问数据库时,会(通过网络或本地)连接到一个正在运行的 postgres 实例。该 postgres 实例随后会启动一个独立的服务器进程来处理该连接。 一个 postgres 实例始终只管理一个数据库集簇的数据。数据库集簇是一组存储在同一文件系统位置( “ 数据区域 ” )中的数据库。只要使用不同的数据区域和不同的通信端口(见下文),一个系统上就可以同时运行多个 postgres 实例。当 postgres 启动时,它…

  • postmaster 服务端程序 PG 18 未收录

    所选版本未收录此条目。

已收录首次收录接口或属性变化不再收录

版本方格表示采样构建中的收录情况,不代表实际引入时间。点击方格可查看对应版本的定义和来源。

PostgreSQL 18 的变化 · 导出 JSON

阅读说明

选项和示例属于所选程序构建。客户端与服务端版本可能不同;跨版本操作应核对该版兼容性说明。