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 参 见
译 者
Postgresql 中 文 网 站 何 伟 平 <laser [AT] pgsqldb.org>
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh