在 CentOS 上备份 PostgreSQL 常见有几种方式,下面按常用程度给你说明,并附上示例命令。
pg_dump(最常用,逻辑备份)适用于 单库备份,支持跨版本恢复。
yum install -y postgresql
pg_dump -U 用户名 数据库名 > /backup/db_$(date +%F).sql
示例:
pg_dump -U postgres testdb > /backup/testdb_2026-01-21.sql
✅ 推荐加上 -Fc(自定义格式,可压缩、可恢复):
pg_dump -U postgres -Fc testdb > /backup/testdb_2026-01-21.dump
psql -U postgres -d testdb < /backup/testdb_2026-01-21.sql
或(自定义格式):
pg_restore -U postgres -d testdb /backup/testdb_2026-01-21.dump
适合 整实例备份
pg_dumpall -U postgres > /backup/all_databases_$(date +%F).sql
恢复:
psql -U postgres < /backup/all_databases_2026-01-21.sql
⚠️ 注意:不支持 -Fc 格式
pg_basebackup适合 大数据量 / 高可用 / 主从
pg_basebackup -U postgres -D /backup/pgdata -Ft -z -P
参数说明:
-D:备份目录-Ft:tar 格式-z:压缩-P:显示进度恢复时需要:
vi /backup/pg_backup.sh
内容示例:
#!/bin/bash
export PGPASSWORD="数据库密码"
pg_dump -U postgres testdb | gzip > /backup/testdb_$(date +%F).sql.gz
chmod +x /backup/pg_backup.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /backup/pg_backup.sh
CONNECT 和 SELECT 权限~/.pgpasspg_basebackup| 方式 | 适用场景 | 是否支持增量 |
|---|---|---|
| pg_dump | 单库、小库 | ❌ |
| pg_dumpall | 全实例 | ❌ |
| pg_basebackup | 生产环境 | ✅(配合 WAL) |
如果你愿意,可以告诉我:
我可以帮你 定制最合适的备份方案 ✅