在 Debian 上备份 PostgreSQL 常见、可靠的方式主要有以下几种,按推荐程度从大到小说明。
pg_dump(最常用,单库备份)适合:备份某一个数据库
pg_dump -U username dbname > dbname.sql
示例:
pg_dump -U postgres mydb > mydb_$(date +%F).sql
pg_dump -U postgres -Fc mydb > mydb.dump
恢复时:
pg_restore -U postgres -d mydb mydb.dump
pg_dump -h localhost -p 5432 -U postgres mydb > mydb.sql
pg_dumpall(备份所有库 + 用户角色)适合:整机数据库迁移、全量备份
pg_dumpall -U postgres > all_db.sql
恢复:
psql -U postgres -f all_db.sql
⚠️ 注意:pg_dumpall 不支持 -Fc 格式
tar 直接备份数据目录(物理备份)适合:大库、快速恢复(需停库或配合 WAL)
systemctl stop postgresql
tar czf pgdata.tar.gz /var/lib/postgresql/15/main
systemctl start postgresql
⚠️ 版本必须一致,否则可能无法启动
pg_basebackup(官方物理备份,推荐生产用)pg_basebackup -U postgres -D /backup/pgdata -Ft -z -P
恢复:
0 2 * * * pg_dump -U postgres mydb | gzip > /backup/mydb_$(date +\%F).sql.gz
SUPERUSER 或对应库权限chmod 600)rsync / 云存储如果你愿意,可以告诉我:
我可以给你一套最合适的备份方案。