重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题:
PostgreSQL关闭数据库服务的三种模式
[打印本页]
作者:
jiawang
时间:
2025-7-17 09:01
标题:
PostgreSQL关闭数据库服务的三种模式
PostgreSQL 关闭数据库服务支持三种模式,其在行为、适用场景及底层实现上存在显著差异:
一、智能关闭模式(Smart Shutdown)
信号机制:向主进程发送 SIGTERM 信号13;
关闭行为:
阻止新客户端连接,但允许现有会话继续工作直至主动断开;
若数据库处于恢复或流复制状态,需等待所有常规会话终止后才停止相关操作13;
适用场景:需优雅关闭且容忍等待时间的场景,类似 Oracle 的 shutdown normal19;
命令示例:
pg_ctl stop -m smart
二、快速关闭模式(Fast Shutdown)
信号机制:向主进程发送 SIGINT 信号,子进程接收 SIGTERM23;
关闭行为:
立即拒绝新连接,强制中断活跃事务并回滚;
终止所有客户端连接后关闭数据库37;
适用场景:需快速终止服务但允许事务回滚的场景,类似 Oracle 的 shutdown immediate913;
命令示例(此为默认模式):
pg_ctl stop -m fast
# 或简写为
pg_ctl stop
三、立即关闭模式(Immediate Shutdown)
信号机制:向子进程发送 SIGQUIT 信号,若 5 秒未终止则发送 SIGKILL37;
关闭行为:
直接终止所有进程,跳过关库流程;
重启时需通过 WAL 日志恢复数据一致性38;
适用场景:数据库异常或紧急停机场景,类似 Oracle 的 shutdown abort913;
命令示例:
pg_ctl stop -m immediate
综合对比与注意事项
模式 数据安全性 停机速度 恢复需求 推荐场景
智能关闭 高 慢 无需恢复 计划维护、低负载时段
快速关闭 中 中 无需恢复 常规停机、需快速终止
立即关闭 低 极快 需 WAL 日志恢复 紧急故障、不可控中断
关键建议:生产环境优先选用 fast 模式避免长时阻塞,仅在极端情况下使用 immediate 模式以减少数据风险28。
欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2