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

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 6.5 已于 2004 年 6 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

postgres

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

大纲

postgres [ dbname ]
postgres [ -B nBuffers ] [ -C ] [ -D DataDir ] [ -E ] [ -F ]
   [ -O ] [ -Q ] [ -S SortSize ] [ -d [ DebugLevel ] ] [ -e ]
   [ -o ] [ OutputFile ] [ -s ] [ -v protocol ] [ dbname ]
  

输入

postgres 接受下列命令行参数:

dbname

可选参数 dbname 指定要访问的数据库的名称。 dbname 默认为环境变量 USER 的值。

-B nBuffers

如果后端运行在 postmaster 之下, nBuffers 就是 postmaster 为它启动的后端服务器进程分配的共享内存缓冲区数量。如果后端独立运行,此选项指定要分配的缓冲区数量。该值默认为 64 个缓冲区,每个缓冲区 8k 字节(或者 config.h 中 BLCKSZ 设置的值)。

-C

不显示服务器版本号。

-D DataDir

指定用作数据库目录树根的目录。如果未给出 -D,默认的数据目录名是环境变量 PGDATA 的值。如果未设置 PGDATA,则使用的目录是 $POSTGRESHOME/data。如果两个环境变量都未设置且未指定此命令行选项,则使用编译时设置的默认目录。

-E

回显所有查询。

-F

禁用每个事务之后的自动 fsync() 调用。此选项提升性能,但事务进行中发生的操作系统崩溃可能导致最近输入的数据丢失。没有 fsync() 调用时,数据由操作系统缓冲,晚些时候才写入磁盘。

-O

越过限制,使系统表结构可以被修改。这些表通常是表名以 "pg_" 开头的表。

-Q

指定"安静"模式。

-S SortSize

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

-d [ DebugLevel ]

可选参数 DebugLevel 决定后端服务器将产生的调试输出量。如果 DebugLevel 为一,postmaster 会跟踪所有连接流量,仅此而已。对于二级及更高级别, 后端进程会打开调试, postmaster 显示更多信息,包括后端环境和进程流量。注意,如果没有为后端服务器指定发送其调试输出的文件,这些输出将出现在其父 postmaster 的控制终端上。

-e

此选项控制日期在进出数据库时如何被解释。如果给出了 -e 选项,传给前端进程和从前端进程传来的日期将被假定为"欧洲"格式(DD-MM-YYYY),否则日期被假定为"美国"格式(MM-DD-YYYY)。后端接受多种格式的日期,对输入日期而言此开关主要影响有歧义情形的解释。更多信息见 数据类型。

-o OutputFile

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

-s

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

-v protocol

指定此特定会话要使用的前端/后端协议的编号。

还有几个可以指定的其他选项,主要用于调试目的。这里列出它们仅供 Postgres 系统开发者使用。强烈不鼓励使用这些选项中的任何一个。而且,这些选项中的任何一个都可能在任何时候消失或改变。

这些特殊用途的选项是:

-A n|r|b|Q\fIn\fP|X\fIn\fP

此选项产生极大量的输出。

-L

关闭锁定系统。

-N

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

-f [ s | i | m | n | h ]

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

注意

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

-i

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

-p dbname

向后端服务器表明它是由 postmaster 启动的,并对缓冲池管理、文件描述符等做出不同的假定。-p 之后的开关仅限于那些被认为"安全"的。

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

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

输出

直接执行后端服务器时你可能看到的错误消息近乎无穷多,其中最常见的可能是:

semget: No space left on device

如果看到这条消息,你应当运行 ipcclean 命令。做完之后再尝试启动 postmaster。如果仍然不行,你多半需要按照安装说明中的描述为共享内存和信号量配置内核。如果你的内核共享内存和/或信号量限制特别小,可能需要重新配置内核以增大其共享内存或信号量参数。

提示

通过减小 -B 以降低 Postgres 的共享内存消耗,你或许可以推迟重新配置内核。

描述

Postgres 后端服务器可以直接从用户 shell 执行。这只应在 DBA 调试时进行,而不应在这组数据库的其他 Postgres 后端正由 postmaster 管理时进行。

这里解释的一些开关可以通过连接请求的"数据库选项"字段传给后端,这样就能为特定后端设置它们而不必费力重启 postmaster。这对调试相关的开关特别方便。

可选参数 dbname 指定要访问的数据库的名称。 dbname 默认为环境变量 USER 的值。

注意

处理共享内存问题的有用工具包括 ipcs(1)、 ipcrm(1) 和 ipcclean(1)。 另见 postmaster 。

提交更正

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