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

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

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

3.6. 关闭服务器 #

根据你的需要,在工作结束时关闭数据库服务器有几种方式。其区别在于 你向服务器进程发送什么信号。

SIGTERM

收到 SIGTERM 后,postmaster 不再接受 新连接,但让现有的后端正常结束其工作。只有在所有后端都因客户端 请求而终止之后,它才会关闭。这是智能关闭。

SIGINT

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

SIGQUIT

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

重要

最好不要用 SIGKILL 来关闭 postmaster。 这会阻止 postmaster 释放共享内存和信号量,之后你可能不得不手工 完成。

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

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

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

提交更正

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