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

修改Postgres 10数据目录后集群无法开机自启问题求助

解决Ubuntu开机后PostgreSQL 10集群自动停止的问题

看起来你已经完成了数据目录迁移的大部分操作,但开机后集群自动停止,大概率是几个常见问题导致的,咱们一步步排查解决:

第一步:先排查最可能的低级错误——配置文件路径写错了

你提到修改postgresql.conf时设置了data_directory = '/mnt/volume-nyc1-01/postgresql/9.5/main',但你操作的是PostgreSQL 10集群啊!原来的10版本数据目录应该是/var/lib/postgresql/10/main,rsync之后对应的路径应该是/mnt/volume-nyc1-01/postgresql/10/main,你写成9.5版本的路径了,这绝对会导致Postgres找不到数据目录而启动失败!

先验证这个配置:

cat /etc/postgresql/10/main/postgresql.conf | grep data_directory

如果输出确实是9.5的路径,赶紧修改:

sudo nano /etc/postgresql/10/main/postgresql.conf

把data_directory改成:

data_directory = '/mnt/volume-nyc1-01/postgresql/10/main'

保存后先手动启动试试:

sudo systemctl start postgresql@10-main.service

如果能启动,那这个就是核心问题,接下来再处理开机自动启动的依赖问题。

第二步:解决挂载卷启动时机晚于Postgres的问题

即使路径正确,Ubuntu开机时Postgres服务可能在你的挂载卷/mnt/volume-nyc1-01完成挂载之前就启动了,导致找不到数据目录而失败。咱们需要修改Postgres的systemd服务配置,添加挂载依赖:

  1. 打开Postgres 10的systemd服务文件:
sudo nano /lib/systemd/system/postgresql@10-main.service
  1. 在[Unit]部分添加以下两行:
After=remote-fs.target
RequiresMountsFor=/mnt/volume-nyc1-01

这两行的作用是告诉systemd,必须等挂载文件系统就绪后再启动Postgres服务,并且强制要求/mnt/volume-nyc1-01已经挂载完成。

  1. 重新加载systemd配置:
sudo systemctl daemon-reload
  1. 重启服务并确保开机自启已开启:
sudo systemctl enable --now postgresql@10-main.service

第三步:验证目录权限和挂载选项

如果上面两步都没解决,再检查权限和挂载设置:

  1. 确认数据目录的归属和权限:
ls -ld /mnt/volume-nyc1-01/postgresql/10/main

输出应该显示drwx------ 2 postgres postgres ...,如果不是,修复权限:

sudo chown -R postgres:postgres /mnt/volume-nyc1-01/postgresql
sudo chmod -R 700 /mnt/volume-nyc1-01/postgresql/10/main
  1. 检查挂载卷的fstab配置,确保没有限制Postgres的选项:
cat /etc/fstab | grep /mnt/volume-nyc1-01

挂载选项应该是类似defaults的正常配置,避免noexec、nodev这类可能影响Postgres运行的选项。如果有不合适的选项,修改fstab后重新挂载:

sudo mount -o remount /mnt/volume-nyc1-01

第四步:查看日志找具体错误

如果还是不行,直接看Postgres的日志文件,里面会有明确的失败原因:

tail -n 50 /var/log/postgresql/postgresql-10-main.log

根据日志里的错误信息针对性解决即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:34:54