在 CentOS 上备份 PostgreSQL 常见、推荐的方式主要有以下几种,按使用频率从高到低说明:
pg_dump(最常用,逻辑备份)pg_dump -U username dbname > dbname.sql
示例:
pg_dump -U postgres mydb > /backup/mydb_$(date +%F).sql
如果提示输入密码,可配置
~/.pgpass
pg_dumpall -U postgres > all_db.sql
pg_dump -U postgres mydb | gzip > mydb.sql.gz
pg_dump -U postgres -Fc mydb > mydb.dump
恢复时:
pg_restore -U postgres -d mydb mydb.dump
pg_basebackup(物理备份,适合大库)适合:
pg_basebackup -U postgres -D /backup/pgdata -Ft -z -P
参数说明:
-D 备份目录-Ft tar 格式-z 压缩-P 显示进度crontab -e
添加:
0 2 * * * /usr/bin/pg_dump -U postgres mydb | gzip > /backup/mydb_$(date +\%F).sql.gz
✅ 确保备份用户有权限
✅ 定期检查备份文件是否可用
✅ 备份文件不要和数据库在同一块磁盘
✅ 生产环境建议:
pg_dump + WAL 归档pg_basebackuppsql -U postgres dbname < dbname.sql
pg_restore -U postgres -d dbname mydb.dump
如果你愿意,可以告诉我:
我可以帮你设计一套完整备份方案。