重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 561|回复: 0
打印 上一主题 下一主题

PostgreSQL关闭数据库服务的三种模式

[复制链接]
跳转到指定楼层
楼主
发表于 2025-7-17 09:01:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 00:16 , Processed in 0.241008 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表