You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL集群重启报属主UID不存在、GID占用故障解决

PostgreSQL集群属主异常导致启动失败的修复方案

问题表现

  • 执行集群重启操作时,系统返回报错提示集群所属的用户ID不存在
  • 尝试创建对应UID的postgres用户时,系统提示GID 109已被占用,同时该用户需要归属的GID 116用户组不存在
  • 手动尝试创建匹配的用户、用户组并修正权限后,集群依然无法正常启动

排查阶段操作记录

执行集群列表查询命令,确认集群处于停机状态:

root@localhost:~# pg_lsclusters
12  main    5432 down   /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12 main.log

执行集群重启命令,触发属主不存在报错:

root@localhost:~# pg_ctlcluster 12 main restart
Error: The cluster is owned by user id 109 which does not exist

尝试创建UID为109的postgres用户,触发GID占用报错:

root@localhost:~# sudo adduser -UID 109 postgres
adduser: The GID 109 is already in use.

最终修复步骤(测试环境/已完备备份场景适用)

注意:该操作会清除原集群数据目录下的所有数据,无有效备份的生产环境谨慎使用

  1. 再次确认异常集群的基础信息:
root@localhost:~# pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 down   postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
  1. 停止对应集群的系统服务:
root@localhost:~# sudo systemctl stop postgresql@12-main
  1. 删除原有异常集群:
root@localhost:~# sudo pg_dropcluster --stop 12 main
  1. 重新创建同名集群并直接启动:
root@localhost:~# sudo pg_createcluster --start 12 main

执行完成后查看集群状态,返回如下信息即代表服务恢复正常:

Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log

内容的提问来源于stack exchange,提问作者Pfinnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:16:06