你说的“PostgreSQL 如何恢复 CentOS”一般有两种常见理解,我先分别说明,再给你可操作的恢复步骤。你可以对照自己的场景选择。
系统重装或崩溃,需要 在新 CentOS 系统中恢复 PostgreSQL 数据
OS 正常,但数据库需要恢复(逻辑恢复 or 物理恢复)
有
pg_dump或物理备份
这是最常用、也最容易出问题的情况。
/var/lib/pgsql/14/data)# 查看旧版本(如果能看到)
rpm -qa | grep postgresql
安装(以 PostgreSQL 14 为例):
dnf install -y postgresql14-server postgresql14-contrib
systemctl stop postgresql-14
mv /var/lib/pgsql/14/data /var/lib/pgsql/14/data.bak
假设旧数据在 /old/var/lib/pgsql/14/data:
cp -a /old/var/lib/pgsql/14/data /var/lib/pgsql/14/
chown -R postgres:postgres /var/lib/pgsql/14/data
⚠️ 权限非常重要,否则一定启动失败
systemctl start postgresql-14
systemctl enable postgresql-14
su - postgres
psql
\l
psql -U postgres -d newdb < backup.sql
或:
pg_restore -U postgres -d newdb backup.dump
如果你有:
pg_basebackup恢复流程:
recovery.conf 或 postgresql.auto.conf⚠️ 这种情况建议单独说明你的备份方式。
FATAL: data directory "/var/lib/pgsql/14/data" has wrong ownership
✅ 修复:
chown -R postgres:postgres /var/lib/pgsql/14/data
database files are incompatible with server
✅ 必须安装 相同主版本
你可以直接告诉我:
我可以直接给你针对你环境的精确恢复命令。