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 里面的设置,
而不是倚赖命令行开关设置参数。 

原文地址:https://www.cnblogs.com/fanweisheng/p/11097553.html

时间: 2024-11-05 15:44:53

postmaster - PostgreSQL多用户数据库服务器的相关文章

PostgreSQL添加新服务器连接时,报错“Server doesn&#39;t listen ”,已解决。

PostgreSQL添加新的服务器连接时,报错: 解决方法: 第一步:修改配置文件中连接的服务器列表,添加服务器IP地址(图pg002.png) 配置文件地址:数据库右击属性,打开数据库的安装路径在data文件中找到配置文件pg_hba.conf. 如:D:\Program Files\PostgreSQL\9.4\data\pg_hba.conf 注:只要修改IP路径就可以了,‘/’后面的数字都为32. 第二步:修改配置文件后,启动服务器的服务: 启动服务完成,连接服务器,新服务器就可以正常的

数据库服务器的安装与配置 如何搭建数据库专用服务器

理论基础 数据库服务器是当今应用最为广泛的一种服务器类型,许多企业在信息化建设过程中都要购置数据库服务器.数据库服务器主要用于存储.查询.检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性.可靠性和稳定性等方面都有很高的要求. 1.基本概念 数据库服务器其实就是装有一台数据库的Server,应用于Internet或Intranet.一个数据库服务器是指运行在局域网中的一台或多台服务器计算机上的数据库管理系统软件,数据库服务器为客户应用提供服务,这些服务是查询.更新.事务管理.索引

检查mysql主从同步结构中的从数据库服务器的状态-脚本shell

检查mysql主从同步结构(一主一从)中的从数据库服务器的状态          (ip授权.从服务器和IO是否正常.从mysql进程是否正常) 主mysql: 192.168.1.10 从mysql: 192.168.1.20 [[email protected] ~]# vi check_slave.sh #!/bin/bash master=192.168.1.10 i=1 service mysqld status &>/dev/null while [ true ] do echo

用MyEclipse10.0远程连接Mysql数据库服务器

说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql-connector-java-3.1.14-bin.jar 这个是连接mysql数据库的驱动器. 下载地址: http://dev.mysql.com/downloads/connector/j/5.0.html 也可以到官方网站下载,网址如下:www.mysql.com 二.在Myeclipse

MySQL数据库服务器搭建及基本管理

1.安装MySQL数据库 从官网下载RPM包:http://dev.mysql.com/downloads/mysql/ 选择适用于当前系统的bundle集合包 [[email protected] 桌面]# tar -vxf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar -C /opt/mysql/ MySQL-shared-5.6.15-1.el6.x86_64.rpm   //共享库 MySQL-devel-5.6.15-1.el6.x86_64.rpm

简单说说THP——记一次数据库服务器阻塞的问题解决

背景:公司某个大型业务系统反馈最近数据库服务器总是宕机(此处描述不准确,后面解释),最后,客户.运维人员都觉得实在是忍无可忍了,项目经理打电话找到我问是否能帮忙诊断一下,刚好第二天要去现场沟通另外一个系统的测试需求,于是答应第二天顺便看一下.------------------------------------ 排查解决过程:第二天来到现场,正在沟通需求的时候,运维人员突然说,操作又开始卡了,于是连上服务器,先用top大概看了一下资源的使用情况,此时CPU已经基本上满载了,而且可以发现用户态的

MySQL数据库服务器 主从配置

A B 为两台 MySQL 服务器,均开启二进制日志,数据库版本 MySQL 5.5 一.服务器参数 [A 服务器 192.168.1.100] server-id = 1 binlog-do-db = test binlog-ignore-db = mysql replicate-do-db = test replicate-ignore-db = mysql sync-binlog = 1 [B 服务器 192.168.1.101] server-id = 2 binlog-do-db =

企业云桌面-06-安装数据库服务器Sql Server 2012 With SP1

作者:学 无 止 境 QQ交流群:454544014 注意: <企业云桌面>系列博文是<企业云桌面规划.部署与运维实践指南>的基础部分,因为书中内容涉及非常多,非常全面,所以基础部分将以博文的形式给读者展现,将在书中引用. <企业云桌面规划.部署与运维实践指南>将以某社保中心云桌面为中心,采用VMware Workstation Pro 12.5.2在1台物理机上模拟.读者按书中的步骤一步一步去做,就可以实现.     1. 基本设置 1.1. 服务器基本配置 编号 项

查看oracle数据库服务器的名字

原文:查看oracle数据库服务器的名字 windows 中 1. select name from v$database ; 直接运行就可以查看了, 2.查看tnsnames.ora 的连接,有个SID,SID就是服务名了 1.查看oracle的安装目录,方法是查看注册表:如:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME REG_SZ E:\ORACLE\ORA92 得到了oracle的安装目录一般来讲,如果服务器在安装时采用的是默认值那么这个值