↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.

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 提供了更方便的接口。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.