SuperAPI AI 工具集

postgres-impl-backup-restore

数据与分析

查看项目

更新于 10-15 22:18

技能介绍

用途:指导 PostgreSQL 备份策略设计与恢复操作,回答逻辑备份还是物理备份、导出格式如何选、如何做时间点恢复,以及 v17 增量备份如何配置。

主要能力:区分两类备份。逻辑备份(pg_dump、pg_dumpall)是单库的 SQL 或归档快照,可跨大版本与 CPU 架构迁移,支持按表恢复,但大库恢复慢;物理备份(pg_basebackup 加归档 WAL)是全集群二进制副本,恢复快,可恢复到保留期内任意时刻,但受同一大版本限制。通常两者都要:物理备份加 WAL 归档用于灾难恢复与 PITR,定期逻辑转储用于跨版本迁移和误删表恢复。

格式选择:-Fp 纯文本可读但无法并行或选择性恢复;-Fc 自定义格式为压缩单文件,支持并行恢复与子集恢复;-Fd 目录格式每表一文件,支持 --jobs 并行导出与恢复;-Ft 为遗留格式。核心规则是不要把纯文本格式当作唯一备份。

必要用法:并行导出用 pg_dump -Fd -j 8 -d mydb -f mydb_dumpdir;并行恢复用 pg_restore -j 8 -d newdb mydb.dump;集群全局对象用 pg_dumpall --globals-only -f globals.sql,恢复时先导入全局再导入各库;物理备份用 pg_basebackup -D /backup/base -F plain -X stream -P。PITR 需 wal_level >= replica、archive_mode = on、archive_command 校验不覆盖且真实成功,并先有基础备份;恢复目录中需创建 recovery.signal,配置 restore_command 与 recovery_target_time 后启动。v17 增量备份需 summarize_wal = on,先做全量基线,再用 pg_basebackup --incremental=上一个 backup_manifest -D /bk/incrN,恢复前用 pg_combinebackup 按从旧到新顺序合并,增量单独不可用。

适用场景:备份策略选型、执行上述命令、配置 WAL 归档与 PITR、配置 v17 增量备份、排查恢复慢或恢复后角色与表空间缺失。

限制:不适用于流复制备库、逻辑复制、VACUUM 与事务 ID 回卷、连接认证问题;物理备份不可跨大版本恢复;PITR 只能恢复到基础备份结束之后;v17 增量备份仅限 v17 及以上。具体选项与完整恢复流程见其参考资料。