Ubuntu上PostgreSQL常见备份策略如下:
-
逻辑备份
- pg_dump:导出数据库结构和数据为SQL文件,支持自定义格式(
-F c)和压缩(-F c+-Z),适合全量或部分备份。 - pg_dumpall:备份整个数据库集群(含用户、权限等全局对象),仅支持SQL格式。
-
物理备份
- pg_basebackup:创建数据库集群的二进制副本,支持归档日志(
-X s)和流复制,适合全量备份及增量备份基础。
-
增量备份
- 基于WAL日志:通过配置
archive_mode=on和archive_command归档WAL文件,结合基础备份实现增量恢复。 - 工具组合:使用
pg_basebackup+pg_receivewal或pg_dump+pg_receivewal实现增量数据捕获。
-
自动化与调度
- Cron定时任务:通过脚本定期执行备份命令(如每日全量+每小时增量),并清理过期备份。
- 工具集成:使用Barman、pgBackRest等工具实现自动化备份、监控及恢复测试。
-
存储与验证
- 本地/云存储:备份文件可存放在本地目录或云存储(如S3),需定期校验完整性(如
pg_restore --list)。 - 恢复测试:定期模拟恢复流程,确保备份可用(如从WAL日志恢复到指定时间点)。
策略选择建议:
- 小型数据库:全量备份(
pg_dump)+ 定期清理(如保留7天)。 - 大型/高更新数据库:物理备份(
pg_basebackup)+ WAL归档+增量备份,搭配自动化工具。 - 关键业务:启用PITR(时间点恢复),确保可恢复到任意时间点。
参考来源: