Provided by: manpages-zh_1.5-1_all bug

NAME

       postmaster - PostgreSQL多用户数据库服务器

SYNOPSIS

       postmaster [ -A   0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-
       level ] [ -D datadir ] [ -F ] [ -h hostname ] [ -i ] [ -k directory ] [
       -l  ]  [ -N max-connections ] [ -o extra-options ] [ -p port ] [ -S ] [
       --name=value ] [ -n | -s ]

DESCRIPTION述
       postmaster         是          PostgreSQL          多用户数据库服务器。
       一个客户端为了访问一个数据库,它(通过网络或本地)联接到一个运行着的
       postmaster。 然后该  postmaster  启动一个独立的服务器进程("postgres")
       以操作联接。 postmaster 还控制服务器进程之间的通讯。

        缺省时postmaster在前台启动并且向标准错误系统输出打印日志信息。
       在实际应用里,postmaster应该作为后台进程启动,也许该在启动时。

        一个postmaster总是管理来自同一个数据库集群的数据。
       一个数据库集群是一套在同一个文件系统位置存放数据的数据库。           当
       postmaster         启动时,它需要知道数据库集群文件("数据区")的位置。
       这个参数是通过传递           -D          命令行选项或者          PGDATA
       环境变量实现的,没有缺省值。   一个系统上同时可以运行几个    postmaster
       进程,               只要他们使用不同的数据区和不同的端口号(见下文)。
       一个数据区是用 initdb(1) 创建的。

OPTIONS项
       postmaster    接受下列命令行参数。     关于这些选项的更详细的讨论请参考
       Section                         16.4                         ``Run-time
       Configuration''。你也可以通过设置一个配置文件来减少敲击这些选项。

       -A 0|1                   打开运行时断言检查,是检测编程错误的调试帮助。
              只有在编译时打开了它,你才能使用它。如果编译时打开了,缺省是打开。

       -B nbuffers
               为服务器进程分配和管理的共享内存缓冲区数量。此值缺省为       64
              个缓冲区,每个缓冲区是 8k 字节。

       -c name=value
               设置一个命名的运行时参数。参考    Section    16.4    ``Run-time
              Configuration''                                 获取列表和描述。
              大多数其他命令行选项实际上都是这样的参数赋值的短形式。        -c
              可以出现多次用以设置多个参数。

       -d debug-level
               设置调试级别。数值越高,写到服务器日志的调试输出越多。
              数值范围是 1 到 5。

       -D datadir
               声明数据目录的文件系统路径。参阅上文的讨论。

       -F       关闭  fsync 调用,提高性能,但是要冒系统崩溃时数据毁坏的风险。
              这个选项对应于在             postgresql.conf              中设置
              fsync=false。在使用之前阅读详细文档!

              --fsync=true 有着这个选项的反面效果。

       -h hostname
               声明 postmaster 侦听着等待来自前端应用联接的 TCP 主机名或地址。
              它缺省侦听所有配置了的地址(包括 localhost)。

       -i             这个选项打开        TCP/IP        (网际域套接字)通讯。
              没有这个选项,只能进行本地  Unix 域套接字通讯。 这个选项等效于在
              postgresql.conf 中设置 tcpip_socket=true。

              --tcpip-socket=false 是这个选项的相反的作用。

       -k directory
              指定 postmaster 侦听等待来自前端应用联接的 Unix 域套接字的位置。
              缺省通常是 /tmp,但是可以在编译的时候修改。

       -l          这个选项打开用     SSL     进行的安全通讯。同样还需要    -i
              选项。要使用这个选项,编译时你必须打开了 SSL 选项。

       -N max-connections
               设置postmaster允许启动的服务器服务器的最大数目。缺省配置时,该值为
              32,
              如果你的系统能支持更多进程,该值最大可以设置为你的系统所能支持的极限。
              时修改(参阅      src/include/config.h)。      (请注意      -B
              选项要求至少是两倍  -N。参阅  Section  16.5  ``Managing   Kernel
              Resources'' 获取有关大客户量的系统资源需求的信息。)

       -o extra-options
               在  extra-options   里声明的  postgres   选项都传递给所有由这个
              postmaster  启动的服务进程。  参阅  postgres(1)   获取可能选项。
              如果选项字串包含任何空白,整个字串必须引起来。

       -p port
              指定    postmaster    侦听着等待客户端应用连接的互联网    TCP/IP
              端口或一个本地         Unix         域套接字文件扩展(描述符)。
              缺省的端口号是环境变量  PGPORT  的值。如果没有设置 PGPORT 缺省是
              PostgreSQL            编译时建立的值(通常是            5432)。
              如果你声明了一个非缺省端口,那么所有前端应用(包括
              psql)都必须用命令行选项或者 PGPORT 声明同一个端口。

       -S           指明      postmaster      进程将以安静模式启动。也就是说,
              它将与用户的(控制)tty             脱离并且启动其自身的进程组。
              并且它把标准输出和标准错误重定向到 /dev/null。

               使用这个开关会将日志输出都丢弃,可能不是你希望的,
              因为这样令错误查找非常困难。参阅下文获取一个在后台启动
              postmaster 的更好的方法。

              --silent-mode=false 的作用和这个选项的效果正好相反。

       --name=value
               设置一个命名的运行时参数;其缩写形式是 -c。

        有两个额外的命令行选项可以用于调试导致服务器异常退出。
       用于这种状况的一般策略是通知所有其它服务器必须退出,
       然后重新初始化共享内存和信号灯。这是因为一个出错的服务器在退出前可能已-
       破坏了一些共享的状态。        这些选项控制这种环境下的       postmaster
       的性质,而且没有哪个选项是为普通操作准备的。

        这些特殊选项是:

       -n     postmaster        将不会重新初始化共享数据结构。        一个有-
              验的系统程序员这时就可以使用调试器检查共享内存和信号灯状态。

       -s     postmaster                                 将通过发送信号SIGSTOP
              停止所有其他服务器进程,但不会导致它们退出。
              这样就允许系统程序员手工从所有服务器进程收集倾倒的核心(core
              dumps)。

ENVIRONMENT境
       PGCLIENTENCODING
               客户端使用的确缺省字符编码。(客户端可以独立地覆盖这个。)这个值也可以在配置文件里设置。

       PGDATA  缺省数据目录位置

       PGDATESTYLE
               运行时参数datestyle的缺省值。(不再建议使用环境变量)

       PGPORT  缺省端口(最好在配置文件中设置)

       TZ      服务器时区

           其它环境变量可以用于指定可选地数据存储位置。参阅  Section 18.5
              ``Managing Databases'' 获取更多信息。

DIAGNOSTICS断
        一个提到了 semget 或者 shmget 的错误信息可能意味着你需要配置你的内核,
       提供足够的共享内存和信号灯。更多讨论,参阅   Section   16.5  ``Managing
       Kernel Resouces'' 。

              Tip:   提示:    你也可以通过降低   shared_buffers   的参数以减少
              PostgreSQL的共享内存的消耗,
              或者降低max_connections的参数减少PostgreSQL的信号灯的消耗,
              以此可以推迟重新配置内核。

        如果是一个说另外一个                                        postmaster
       正在运行的错误信息,那你应该确保没有其他的                   postmaster
       进程正在运行。判断这个情况的最简单的办法是使用命令

       $ ps ax | grep postmaster

       或

       $ ps -ef | grep postmaster

        具体使用哪种取决于你的系统。如果确信没有冲突的              postmaster
       在运行,那么你可以删除消息里提到的锁文件然后再次运行。

        一个说无法绑定端口的错误信息可能表明该端口已颈称渌       PostgreSQL
       进程使用。
       如果你终止postmaster后又马上用同一个端口运行它,你也有可能得到这个错误信息;
       这时,你必须多等几秒,等操作系统关闭了该端口后再试。
       最后,如果你使用了一个操作系统认为是保留的端口,也可能导致这个错误信息。
       例如,我的  Unix  版本认为低于 1024 的端口号是"可信任的",因而只有 Unix
       超级用户可以使用它们。

NOTES意
        如果有可能褂     SIGKILL杀死      postmaster。      这样会阻止
       postmaster在退出前释放它持有的系统资源(例如共享内存和信号灯)。

        要正常结束  postmaster,可以使用信号  SIGTERM,SIGINT,  或  SIGQUIT。
       第一个信号将等待所有的客户端退出后才退出。
       第二个将强制断开所有客户端,而第三个将不停止立刻退出,
       导致在重起时的恢复运行。

        工具命令 pg_ctl(1)  可以用于安全而有效地启停 postmaster。

       选项      --       在FreeBSD或者       OpenBSD上无法运行。       应该用
       -c。这在受影响的系统里是个臭虫;         如果这个毛病没有修补好,将来的
       PostgreSQL 版本将提供一个绕开的办法。

EXAMPLES子
        用缺省值在后台启动postmaster,键入:

       $ nohup postmaster >logfile 2>&1 </dev/null &

        以指定的端口启动 postmaster:

       $ postmaster -p 1234

        这条命令将在端口 1234 启动  postmaster。  为了用psql与这个  postmaster
       联接, 你应该这么运行 psql run it as

       $ psql -p 1234

        或者设置环境变量 PGPORT:

       $ export PGPORT=1234
       $ psql

        命名的运行时参数可以用下列的风格之一设置:

       $ postmaster -c sort_mem=1234
       $ postmaster --sort-mem=1234

        两种形式都覆盖那些现有的在  postgresql.conf  里面的  sort_mem 的设置。
       请注意在参数名里的下划线在命令行上可以写成下划线,也可以写成划线。

              Tip:     提示:       除了用于短期的实验以外,更好的习惯是编挤旁
              postgresql.conf 里面的设置, 而不是倚赖命令行开关设置参数。

SEE ALSO见
       initdb(1), pg_ctl(1)

者
       Postgresql  <laser@pgsqldb.org>