关于PostgreSQL突然无法启动的排查过程及解决方法
今天我的数据同步脚本报错了

检查PostgreSQL服务发现无法启动

于是便有了这篇记录,算是日志吧,把我的排查过程、解决思路记录一下
1、检查端口
检查服务端口是否被占用,在命令提示符中执行
netstat -ano | findstr :5432

输出结果显示该端口并未被占用(没有LISTENING状态),所以并不是端口被占用导致的PostgreSQL无法启动
2、检查日志
在PostgrSQL安装目录/data/log下查看最新日志

并没有任何报错
3、卸载系统补丁更新
突然想到启动电脑时系统有更新,猜想可能是系统补丁造成的,于是决定暂时将该补丁卸载(毕竟昨天还好好的)

卸载后重启电脑发现该问题依旧存在,继续排查
4、检查磁盘空间
确保系统盘和数据目录所在磁盘有足够空间(至少预留1GB以上)

5、检查目录权限
PostgreSQL服务账户(如 NETWORK SERVICE)需要对数据目录有完全控制权限。
右键数据目录(/data)→ 属性 → 安全

该账户已经拥有完全控制
6、检查数据目录是否损坏
在命令提示符输入
# 进入PostgreSQL的bin目录 cd "D:\Program Files\PostgreSQL\17\bin" # 尝试恢复 pg_ctl start -D "D:\Program Files\PostgreSQL\17\data" -w

根据错误信息,PostgreSQL 启动失败的原因是缺少 SSL 证书文件(server.crt)
回忆:之前领导要求使用外网同步,于是我启用了PostgreSQL的SSL认证,后面改成内网同步,但是没有取消SSL
在postgresql.conf文件中禁用SSL

重启服务

总结
到此这篇关于关于PostgreSQL突然无法启动的排查过程及解决方法的文章就介绍到这了,更多相关PostgreSQL突然无法启动解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
PostgreSQL数据库timestamp数据类型精度进位问题解析
PostgreSQL是一款功能强大的开源关系型数据库管理系统,起源于1986年的POSTGRES项目,它支持多种数据类型,包括数值类型、字符串类型、日期时间类型等,本文介绍PostgreSQL数据库timestamp数据类型精度进位问题,感兴趣的朋友一起看看吧2024-11-11


最新评论