今天我的数据同步脚本报错了
检查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
重启服务