温馨提示×

怎样备份debian postgresql

小樊
44
2026-09-08 11:12:24
栏目: 云计算

在 Debian 上备份 PostgreSQL 常见、可靠的方式主要有以下几种,按推荐程度从大到小说明。


一、使用 pg_dump(最常用,单库备份)

适合:备份某一个数据库

1. 基本命令

pg_dump -U username dbname > dbname.sql

示例:

pg_dump -U postgres mydb > mydb_$(date +%F).sql

2. 使用自定义格式(推荐)

pg_dump -U postgres -Fc mydb > mydb.dump

恢复时:

pg_restore -U postgres -d mydb mydb.dump

3. 指定主机/端口

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)

1. 停止 PostgreSQL

systemctl stop postgresql

2. 备份目录

tar czf pgdata.tar.gz /var/lib/postgresql/15/main

3. 启动

systemctl start postgresql

⚠️ 版本必须一致,否则可能无法启动


四、使用 pg_basebackup(官方物理备份,推荐生产用)

pg_basebackup -U postgres -D /backup/pgdata -Ft -z -P

恢复:

  • 停止 PostgreSQL
  • 清空数据目录
  • 解压备份
  • 启动

五、自动定时备份(crontab 示例)

0 2 * * * pg_dump -U postgres mydb | gzip > /backup/mydb_$(date +\%F).sql.gz

六、备份注意事项

  • ✅ 备份用户需有 SUPERUSER 或对应库权限
  • ✅ 定期测试恢复
  • ✅ 备份文件权限要安全(chmod 600)
  • ✅ 可结合 rsync / 云存储

如果你愿意,可以告诉我:

  • PostgreSQL 版本
  • 数据库大小
  • 是否生产环境

我可以给你一套最合适的备份方案。

0 踩