postgres

Name

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

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 的方法(只是概念上的,因为 postmasterpostgres 实际上是一样的程序); 我们不能这样直接调用它.第一种形式以交互模式直接调用该服务器. 这种用法的主要用途是给 initdb 做初始化时用.

当从 shell 上以交互模式调用时,用户可以输入查询并且结果会打印在 屏幕上,不过格式对开发人员更有用,对用户却差好多. 不过请记住,运行一个单用户后端并不适合于调试该服务器, 因为没有实际的进程间通讯和锁动作发生.

当运行一个单用户后端时,会话用户名会自动设置为当前有效 Unix 用户名.如果该用户不存在则服务器不会启动.

选项

如果 postgres 是由一个 postmaster 启动的,那么它继承后者的所有选项集.另外 postgres 相关的选项可以用 -o 开关从 postmaster 传递.

你可以通过设置一个配置文件来避免键入这些选项. 参阅管理员手册获取细节. 有些(安全的)选项还可以从联接过来的客户端设置, 这样就获得了一种应用无关的方法. 比如,如果设置了 PGOPTIONS 环境变量, 那么基于 libpq 的客户端就都把那个字串传递给服务器, 会解释成 postgres 命令行选项.

通用用途

选项 -A-B-c-d-D, 和 -Fpostmaster 里的有相同的含义.

-e

把缺省日期风格设置为 “European”,也就是说用 “日子在月份前面”规则(而不是月份在日子前面) 解释模糊的日期输入,并且在一些日期输出格式里日子在月份前面打印. 参阅PostgreSQL 用户手册获取更多细节.

-o file-name

把所有调试和错误输出输出到 OutputFile。 如果后端是由 postmaster运行的, 错误信息仍然发送给前端,也发送给 OutputFile, 但是调试输出发送给该 postmaster 的控制 tty(因为只有一个文件描述符可以发送给实际的文件)。

-P

扫描/更新系统记录时忽略系统索引.对系统表/索引使用 REINDEX 时需要这个选项.

-s

在每条查询结束时打印时间信息和其他统计信息。 这个开关对测试性能和调节缓冲区数量有好处。

-S sort-mem

声明内部排序和散列在求助于临时磁盘文件之前可以使用的内存数量。 该值是以 KB (千字节)为单位的,缺省是 512 KB。 注意对于复杂查询,可能有好几个并行的排序和/或散列, 而在它们把数据放到临时文件前,每个都会允许使用最多 sort-mem KB的内存。

单用户模式的选项

database

声明要访问的数据库的名字.如果忽略掉则缺省为用户名.

-E

回显所有查询。

-N

关闭把新行作为查询分隔符。

半内部选项

还有几个其他的选项可以声明,主要用于调试用途。 这些东西在这里列出只是给 PostgreSQL 系统开发人员使用的。 我们强烈反对使用这些选项。 另外这些选项的任何一项都可能在未来版本中消失而不加说明。

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

禁止某种扫描和连接方法的使用: si 分别关闭顺序和索引扫描,而 nm,和 h 分别关闭嵌套循环,融合(merge)和散列连接。

注意: 顺序扫描和嵌套循环都不可能完全被关闭。 -fs-fn 选项仅仅是在存在其他方法时阻 碍优化器使用这些方法罢了。

-i

避免查询执行,而只是显示规划树。

-L

关闭锁系统。

-O

允许修改系统表的结构.这个参数用于 initdb

-p database

告诉后端服务器它是由一个 postmaster 启动的并对缓冲区管理和文件描述符等做出不同的假设。

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

打印与每个主要系统模块相关的查询记时统计。 它不能和 -s选项一块使用。

-v protocol

声明这次会话使用的前/后端协议的版本数。

-W seconds

一旦看见这个选项,进程就睡眠标出的秒数. 这样就给开发者一些时间把调试器附着在该后端进程上.

又见

, ,