在 Debian 上备份 PostgreSQL 常见、可靠的做法是使用官方工具 pg_dump / pg_dumpall,配合系统级方式作为补充。下面按「最常用 → 进阶」说明。
sudo -u postgres pg_dump dbname > dbname_$(date +%F).sql
或使用压缩:
sudo -u postgres pg_dump -Fc dbname > dbname_$(date +%F).dump
说明:
-Fc:自定义格式(压缩、可恢复)postgres:PostgreSQL 默认超级用户# 普通 SQL
sudo -u postgres psql dbname < dbname_2026-01-21.sql
# 自定义格式
sudo -u postgres pg_restore -d dbname dbname_2026-01-21.dump
适合整体迁移或灾备:
sudo -u postgres pg_dumpall > all_$(date +%F).sql
恢复:
sudo -u postgres psql < all_2026-01-21.sql
✅ 包含:
编辑定时任务:
sudo crontab -u postgres -e
示例(每天 2 点):
0 2 * * * pg_dump -Fc mydb > /var/backups/pg/mydb_$(date +\%F).dump
建议备份目录:
/var/backups/postgresql/
sudo systemctl stop postgresql
sudo tar czf /backup/pgdata.tar.gz /var/lib/postgresql/
sudo systemctl start postgresql
pg_basebackup示例:
pg_basebackup -D /backup/pgdata -Ft -z -P
chmod 600 dbname.dump
psql --version)| 场景 | 推荐方式 |
|---|---|
| 单库备份 | pg_dump |
| 多库 + 用户 | pg_dumpall |
| 生产环境 | pg_basebackup + WAL |
| 简单灾备 | pg_dump + cron |
如果你愿意,可以告诉我:
我可以给你一份可直接用的备份脚本。