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

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 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。