在 CentOS 上“恢复 PostgreSQL”通常有几种含义,下面按常见场景给你说明,你可以对号入座。
systemctl status postgresql
systemctl start postgresql
systemctl enable postgresql # 开机自启
journalctl -u postgresql
# 或
cat /var/lib/pgsql/data/log/*.log
常见问题:
postgres)postgresql.conf)pg_dump 备份恢复如果你有 .sql 备份:
su - postgres
psql dbname < backup.sql
或新建数据库再恢复:
createdb newdb
psql newdb < backup.sql
pg_dump 的自定义格式恢复pg_restore -d dbname backup.dump
适用于:
systemctl stop postgresql
rm -rf /var/lib/pgsql/data
cp -r /backup/pgdata /var/lib/pgsql/data
chown -R postgres:postgres /var/lib/pgsql/data
systemctl start postgresql
⚠️ 物理恢复必须 PostgreSQL 大版本一致
基本无法恢复,除非:
如果有 WAL:
restore_command = 'cp /archive/%f %p'
recovery_target_time = '2025-01-01 10:00:00'
yum remove postgresql*
yum install postgresql-server postgresql-contrib
postgresql-setup initdb
systemctl start postgresql
我可以给你更精确的命令。