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

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.4 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

16.6. 关闭服务器 #

关闭数据库服务器有几种方式。通过向postmaster进程 发送不同的信号来控制关闭的类型。

SIGTERM

收到 SIGTERM 后,服务器不再接受新连接, 但让现有会话正常结束其工作。只有在所有会话都正常终止之后,它 才会关闭。这是智能关闭。

SIGINT

服务器不再接受新连接,并向所有现有的服务器进程发送 SIGTERM,使它们中止当前事务并迅速退出。 然后它等待服务器进程退出,最终关闭。这是 快速关闭。

SIGQUIT

这是立即关闭,它会使postmaster 进程向所有子进程发送 SIGQUIT 并立即退出 (不做自身的妥善关闭)。子进程收到 SIGQUIT 后同样立即退出。这会导致 下次启动时进行恢复(通过重放 WAL 日志)。建议只在紧急情况下 使用。

重要

最好不要用 SIGKILL 来关闭服务器。这会 阻止服务器释放共享内存和信号量,之后可能必须手动完成。

postmaster 进程的 PID 可以用 ps 程序找到,也可以从数据目录中的 postmaster.pid 文件得到。例如,要做快速关闭:

$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`

pg_ctl 程序是一个 shell 脚本,为关闭服务器提供 了更方便的接口。

提交更正

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