Manpages

NAME

postgres - 以 单 用 户 模 式 运 行 一 个 PostgreSQL服 务 器

SYNOPSIS

postgres [ -A 0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-level ] [ --describe-config ] [ -D datadir ] [ -e ] [ -E ] [ -f s | i | t | n | m | h ] [ -F ] [ -N ] [ -o filename ] [ -O ] [ -P ] [ -s | -t pa | pl | ex ] [ -S sort-mem ] [ -W seconds ] [ --name=value ] database

postgres [ -A 0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-level ] [ -D datadir ] [ -e ] [ -f s | i | t | n | m | h ] [ -F ] [ -o filename ] [ -O ] [ -p database ] [ -P ] [ -s | -t pa | pl | ex ] [ -S sort-mem ] [ -v protocol ] [ -W seconds ] [ --name=value ]

DESCRIPTION 描 述

可 执 行 程 序 postgres 是 真 正 处 理 查 询 的 PostgreSQL 服 务 器 进 程 。 通 常 它 是 不 会 被 直 接 调 用 的 ; 而 是 启 动 一 个 postmaster 多 用 户 服 务 器 。 上 面 的 第 二 种 形 式 就 是 postmaster(1) 调 用 postgres 的 方 法 ( 只 是 概 念 上 的 , 因 为 postmaster 和 postgres 实 际 上 是 一 样 的 程 序 ) ; 我 们 不 能 这 样 直 接 调 用 它 。 第 一 种 形 式 以 交 互 单 用 户 模 式 直 接 调 用 该 服 务 器 。 这 种 用 法 的 主 要 用 途 是 在 initdb 做 初 始 化 时 用 。 有 时 候 它 被 用 做 调 试 灾 难 性 恢 复 。 当 从 shell 上 以 交 互 模 式 调 用 时 , 用 户 可 以 输 入 查 询 并 且 结 果 会 打 印 在 屏 幕 上 , 不 过 格 式 对 开 发 人 员 更 有 用 , 对 用 户 却 差 好 多 。 不 过 请 记 住 , 运 行 一 个 单 用 户 服 务 器 并 不 适 合 于 调 试 该 服 务 器 , 因 为 没 有 实 际 的 进 程 间 通 讯 和 锁 动 作 发 生 。 当 运 行 一 个 单 用 户 服 务 器 时 , 将 把 会 话 用 户 设 置 为 ID 为 1 的 用 户 。 该 用 户 不 必 实 际 存 在 , 因 此 一 个 独 立 运 行 的 服 务 器 可 以 用 于 对 某 些 意 外 损 坏 的 系 统 表 中 进 行 手 工 恢 复 。 在 独 立 运 行 模 式 下 , 系 统 隐 含 地 赋 予 ID 为 1 的 用 户 超 级 用 户 权 限 。

OPTIONS 选 项

如 果 postgres 是 由 一 个 postmaster(1) 启 动 的 , 那 么 它 继 承 后 者 的 所 有 选 项 集 。 另 外 postgres 相 关 的 选 项 可 以 用 -o 开 关 从 postmaster(1) 传 递 。 你 可 以 通 过 设 置 一 个 配 置 文 件 来 避 免 键 入 这 些 选 项 。 参 阅 Section 16.4获 取 细 节 。 有 些 ( 安 全 的 ) 选 项 还 可 以 从 联 接 过 来 的 客 户 端 设 置 , 这 样 就 获 得 了 一 种 应 用 无 关 的 方 法 。 比 如 , 如 果 设 置 了 PGOPTIONS 环 境 变 量 , 那 么 基 于 libpq 的 客 户 端 就 都 把 那 个 字 串 传 递 给 服 务 器 , 会 解 释 成 postgres 命 令 行 选 项 。

GENERAL PURPOSE 通 用 用 途 选 项 -A, -B, -c, -d, -D, -F, 和 --namepostmaster(1) 里 的 有 相 同 的 含 义 。 只 是 -d 0 避 免 postmaster(1) 的 调 试 级 别 传 播 到 postgres。

-e 把 缺 省 日 期 风 格 设 置 为

"European", 也 就 是 说 用 "DMY"规 则 解 释 日 期 输

入 , 并 且 在 一 些 日 期 输 出 格 式 里 日 子 在 月 份 前 面 打 印 。 参 阅 Section 8.5 ’’Date/Time Types’’ 获 取 更 多 细 节 。

-o filename 把 所 有 服 务 器 日 志 输 出 到 filename。 如 果 服 务 器 是 由 postmaster运 行 的 , 则 忽 略 这 个 选 项 , 并 且 使 用 从 postmaster 继 承 过 来 的 stderr。

-P 扫 描

/更 新 系 统 记 录 时 忽 略 系 统 表 。 对 系 统 表 /索 引 使 用 REINDEX 时 需 要

这 个 选 项 。

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

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

OPTIONS FOR STAND-ALONE MODE 单 用 户 模 式 的 选 项
database
声 明 要 访 问 的 数 据 库 的 名 字 。 如 果 忽 略 掉 则 缺 省 为 用 户 名 。

-E 回 显 所 有 命 令 。

-N 禁 止 把 新 行 作 为 语 句 分 隔 符 。

SEMI-INTERNAL OPTIONS 半 内 部 选 项 还 有 几 个 其 他 的 选 项 可 以 声 明 , 主 要 用 于 调 试 用 途 。 这 些 东 西 在 这 里 列 出 只 是 给 PostgreSQL 系 统 开 发 人 员 使 用 的 。 我 们 强 烈 反 对 使 用 这 些 选 项 。 另 外 这 些 选 项 的 任 何 一 项 都 可 能 在 未 来 版 本 中 消 失 而 不 加 说 明 。
-f { s | i | m | n | h }
禁 止 某 种 扫 描 和 连 接 方 法 的 使 用 : s 和 i 分 别 关 闭 顺 序 和 索 引 扫 描 , 而 n, m, 和 h 分 别 关 闭 嵌 套 循 环 , 融 合 ( merge) 和 散 列 连 接 。

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

-O 允 许 修 改 系 统 表 的 结 构 。 这 个 参 数 用 于

initdb

-p database 告 诉 服 务 器 服 务 器 它 是 由 一 个 postmaster 启 动 的 并 声 明 要 使 用 的 数 据 库 等 。
-t pa[rser] | pl[anner] | e[xecutor]
打 印 与 每 个 主 要 系 统 模 块 相 关 的 查 询 记 时 统 计 。 它 不 能 和 -s选 项 一 块 使 用 。
-v
protocol 声 明 这 次 会 话 使 用 的 前 /服 务 器 协 议 的 版 本 数 。
-W
seconds 一 旦 看 见 这 个 选 项 , 进 程 就 睡 眠 标 出 的 秒 数 。 这 样 就 给 开 发 者 一 些 时 间 把 调 试 器 附 着 在 该 服 务 器 进 程 上 。
--describe-config
这 个 选 项 以 tab 分 隔 的 COPY 格 式 , 倒 出 服 务 器 内 部 配 置 变 量 , 描 述 和 缺 省 之 。 设 计 它 主 要 是 给 管 理 工 具 使 用 。

ENVIRONMENT 环 境

PGDATA 缺 省 数 据 目 录 位 置 对 于 其 它 的 在 单 用 户 模 式 里 有 一 点 点 影 响 的 环 境 变 量 , 请 参 阅

postmaster(1).

NOTES 注 意

要 停 止 运 行 一 个 查 询 , 使 用 SIGINT 给 正 在 运 行 该 命 令 的 postgres 进 程 发 信 号 。 要 告 诉 postgres 重 新 读 取 配 置 文 件 , 使 用 一 个 SIGHUP 信 号 。 通 常 我 们 最 好 给 postmaster 发 送 SIGHUP; postmaster 将 随 后 SIGHUP 他 的 每 个 子 进 程 。 但 是 有 时 候 我 们 可 能 想 只 让 一 个 postgres 进 程 重 装 载 配 置 文 件 。

postmaster 使 用 SIGTERM 告 诉 postgres进 程 正 常 退 出 , 而 SIGQUIT 是 不 经 过 正 常 清 理 的 退 出 。 这 些 信 号 不 应 该 由 用 户 使 用 。 给 一 个 postgres 进 程 发 送 SIGKILL 也 是 不 明 智 的 : postmaster 将 把 这 个 信 号 解 释 成 一 次 在 postgres 里 的 崩 溃 , 并 且 会 强 制 所 有 他 的 子 postgres 进 程 像 在 一 个 标 准 的 崩 溃 - 恢 复 过 程 里 一 样 退 出 。

USAGE 用 法

用 下 面 这 样 的 命 令 启 动 一 个 独 立 的 服 务 器

postgres -D /usr/local/pgsql/data other-options my_database 用 -D 给 服 务 器 提 供 正 确 的 数 据 库 目 录 的 路 径 , 或 者 确 保 环 境 变 量 PGDATA 已 经 正 确 设 置 。 同 时 还 要 声 名 你 象 用 的 特 定 数 据 库 名 字 。 通 常 , 独 立 运 行 的 服 务 器 把 换 行 符 当 做 命 令 输 入 完 成 字 符 ; 它 还 不 懂 分 号 的 作 用 , 因 为 那 些 东 西 是 在 psql(1) 里 的 。 要 想 把 一 行 分 成 多 行 写 , 你 必 需 在 除 最 后 一 个 换 行 符 以 外 的 每 个 换 行 符 前 面 敲 一 个 反 斜 杠 。 但 是 如 果 你 使 用 -N 命 令 行 开 关 , 那 么 换 行 符 就 不 会 中 止 命 令 输 入 。 服 务 器 将 从 标 准 输 入 读 取 数 据 , 直 到 碰 到 文 件 结 尾 ( EOF) , 然 后 把 输 入 当 做 一 个 单 个 的 命 令 字 串 处 理 。 这 个 时 候 反 斜 杠 -换 行 符 就 不 再 当 做 特 殊 情 况 处 理 。 要 退 出 会 话 , 键 入 EOF (通 常 是 Control+D)。 如 果 你 已 经 使 用 了 -N, 需 要 用 两 个 连 续 的 EOF来 退 出 。 请 注 意 独 立 运 行 的 服 务 器 不 会 提 供 复 杂 的 行 编 辑 功 能 ( 比 如 , 没 有 命 令 行 历 史 ) 。

SEE ALSO 参 见

initdb(1), ipcclean(1), postmaster(1)

译 者

Postgresql 中 文 网 站 何 伟 平 <laser [AT] pgsqldb.org>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh