PostgreSQL 备份完整指南
PostgreSQL 最常用、最稳定的备份方式有 3 种,覆盖所有场景(单表 / 单库 / 全量 / 热备),我直接给你最实用、可直接复制的命令。
一、最常用:逻辑备份(pg_dump)
适合:小 / 中型数据库、单库备份、迁移数据
优点:简单、跨版本兼容、可恢复到任意 PG 版本
缺点:大数据量恢复较慢
1. 备份单个数据库(最常用)
pg_dump -h 主机 -p 端口 -U 用户名 -d 库名 -f 备份文件.sql
最简实战命令(本地默认端口):pg_dump -U postgres -d mydb -f mydb_backup.sql2. 压缩备份(节省空间)
pg_dump -U postgres -d mydb | gzip > mydb_backup.sql.gz3. 只备份单张表
pg_dump -U postgres -d mydb -t 表名 -f table_backup.sql4. 只备份结构(不备份数据)
pg_dump -U postgres -d mydb -s -f schema_only.sql
二、整集群备份(pg_dumpall)
适合:备份所有数据库 + 角色 + 用户 + 全局配置
pg_dumpall -U postgres -f all_db_backup.sql
三、物理热备份(pg_basebackup)
适合:大型数据库、生产环境、热备份、快速恢复
优点:速度极快、支持增量备份、不锁库
必须开启 WAL 归档才能用
基础热备份命令
pg_basebackup -D /backup/pg_data -U postgres -Fp -Xs -Pv
四、对应恢复命令
1. 恢复 pg_dump 备份(sql 文件)
psql -U postgres -d 新库名 -f 备份文件.sql2. 恢复压缩备份
gunzip -c mydb_backup.sql.gz | psql -U postgres -d mydb3. 恢复 pg_dumpall 全量备份
psql -U postgres -f all_db_backup.sql
五、生产环境推荐备份策略
- 每日:pg_dump 逻辑备份(保留 7 天)
- 每周:pg_basebackup 物理热备份
- 开启 WAL 归档:支持时间点恢复
总结
- 小型项目 → 用 pg_dump 最简单
- 多库 / 全局信息 → 用 pg_dumpall
- 生产大数据 → 用 pg_basebackup 热备
- 所有命令都无需停库,直接运行
- 需要我根据你的数据库大小 / 版本 / 操作系统,给你生成一键备份脚本吗?