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

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

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 / 7.1 / 7.0 / 6.5
历史版本PostgreSQL 7.1 已于 2006 年 4 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

postgres

postgres — 运行一个 PostgreSQL 单用户后端

大纲

postgres [-A [0] | [1] ] [-B nbuffers] [-c name=value] [-d debug-level] [-D datadir] [-e] [-E] [-f [s] | [i] | [t] | [n] | [m] | [h] ] [-F] [-i] [-L] [-N] [-o file-name] [-O] [-P] [[-s] | [-t [pa] | [pl] | [ex] ]] [-S sort-mem] [-W seconds] database
postgres [-A [0] | [1] ] [-B nbuffers] [-c name=value] [-d debug-level] [-D datadir] [-e] [-f [s] | [i] | [t] | [n] | [m] | [h] ] [-F] [-i] [-L] [-o file-name] [-O] [-p database] [-P] [[-s] | [-t [pa] | [pl] | [ex] ]] [-S sort-mem] [-v protocol-version] [-W seconds]

描述

postgres 可执行文件就是真正处理查询的 PostgreSQL 服务器进程。它通常不被直接调用;而是启动一个 postmaster 多用户服务器。

上面的第二种形式是 postmaster 调用 postgres 的方式(只是概念上如此,因为 postmaster 和 postgres 实际上是同一个程序);不应直接以这种方式调用它。第一种形式直接以交互模式启动服务器。这种模式的主要用途是由 initdb 进行引导。

从 shell 以交互模式调用时,用户可以输入查询,结果会打印到屏幕上,但其形式对开发者比对最终用户更有用。但要注意,运行单用户后端并不真正适合调试服务器,因为不会发生真实的进程间通信和锁定。

当运行独立后端时,会话用户名将自动设为当前有效的 Unix 用户名。如果该用户不存在,服务器将不会启动。

选项

当 postgres 由 postmaster 启动时,它会继承后者设置的所有选项。此外,postmaster 可以通过 -o 开关向它传递 postgres 特有的选项。

通过建立配置文件,你可以免于输入这些选项。详情见 管理员指南。某些(安全的)选项也可以由连接中的客户端以依赖于应用的方式设置。例如,如果设置了环境变量 PGOPTIONS,基于 libpq 的客户端会把该字符串传给服务器,服务器会把它解释为 postgres 的命令行选项。

通用选项

选项 -A、-B、 -c、-d、-D 和 -F 的含义与 postmaster 中相同。

-e

把默认日期风格设为“欧洲式”,即用“日在月前”(而不是月在日前)规则解释有歧义的日期输入,并且在某些日期输出格式中日在月之前打印。更多信息见 PostgreSQL 用户指南。

-o file-name

把所有调试和错误输出发送到 OutputFile。如果后端运行在 postmaster 之下,错误消息仍会发送到前端进程以及 OutputFile,但调试输出发送到 postmaster 的控制终端(因为只有一个文件描述符能发送到实际的文件)。

-P

在扫描/更新系统元组时忽略系统索引。对系统表/索引执行 REINDEX 命令要求使用此选项。

-s

在每个查询结束时打印时间信息和其他统计信息。 这对基准测试或调整缓冲区数量很有用。

-S sort-mem

指定内部排序和哈希在求助于临时磁盘文件之前可使用的内存量。取值以千字节为单位指定,默认为 512 千字节。注意,对于一个复杂查询,可能有多个排序和/或哈希并行运行,每一个在被允许开始把数据放入临时文件之前,都可以使用多达 sort-mem 千字节。

独立模式的选项

database

指定要访问的数据库名称。如果省略,则默认为用户名。

-E

回显所有查询。

-N

禁用换行符作为查询分隔符。

半内部选项

还有一些其他选项,主要供调试之用。这里列出这些选项,仅供PostgreSQL 系统开发者使用。强烈不建议使用这些选项中的任何一个。此外,这些选项中的任何一个都可能在未来的版本中不经通知而消失或改变。

-f { s | i | m | n | h }

禁止使用特定的扫描和连接方法:s 和 i 分别禁用顺序扫描和索引扫描,而 n、m 和 h 分别禁用嵌套循环、归并和哈希连接。

注意

顺序扫描和嵌套循环连接都无法被完全禁用;-fs和 -fn选项只是在优化器 有其他选择时,尽量不使用这些计划类型。

-i

阻止查询执行,但显示计划树。

-L

关闭锁定系统。

-O

允许修改系统表的结构。这由 initdb 使用。

-p database

表明此服务器是由 postmaster 启动的,并对缓冲池管理、文件描述符等做出不同的假定。

-t pa[rser] | pl[anner] | e[xecutor]

打印与各个主要系统模块相关的每个查询的时间统计信息。该选项不能与-s选项一起 使用。

-v protocol

指定该特定会话要使用的前端/后端协议 版本号。

-W seconds

一遇到此选项,进程就会休眠指定的秒数。这给开发者留出把调试器附加到后端进程的时间。

另请参阅

initdb, ipcclean, postmaster

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。