温馨提示×

centos怎么备份postgresql

小樊
40
2026-09-03 08:27:52
栏目: 云计算

CentOS 上备份 PostgreSQL 常见、推荐的方式主要有以下几种,按使用频率从高到低说明:


一、使用 pg_dump(最常用,逻辑备份)

1️⃣ 备份单个数据库

pg_dump -U username dbname > dbname.sql

示例:

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

如果提示输入密码,可配置 ~/.pgpass


2️⃣ 备份所有数据库

pg_dumpall -U postgres > all_db.sql

3️⃣ 压缩备份(节省空间)

pg_dump -U postgres mydb | gzip > mydb.sql.gz

4️⃣ 使用自定义格式(推荐)

pg_dump -U postgres -Fc mydb > mydb.dump

恢复时:

pg_restore -U postgres -d mydb mydb.dump

二、使用 pg_basebackup(物理备份,适合大库)

适合:

  • 数据库很大
  • 需要 PITR(时间点恢复)
pg_basebackup -U postgres -D /backup/pgdata -Ft -z -P

参数说明:

  • -D 备份目录
  • -Ft tar 格式
  • -z 压缩
  • -P 显示进度

三、CentOS 定时自动备份(crontab)

示例:每天凌晨 2 点备份

crontab -e

添加:

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

四、备份注意事项(很重要)

✅ 确保备份用户有权限
✅ 定期检查备份文件是否可用
✅ 备份文件不要和数据库在同一块磁盘
✅ 生产环境建议:

  • pg_dump + WAL 归档
  • pg_basebackup

五、恢复示例

恢复 SQL 备份

psql -U postgres dbname < dbname.sql

恢复 dump 文件

pg_restore -U postgres -d dbname mydb.dump

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

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

我可以帮你设计一套完整备份方案

0