Posrgresql恢复.backup文件

前言

在 PostgreSQL 中,.backup 文件通常是由 pg_dump 工具生成的自定义格式(Custom Format) 逻辑备份文件。它不是纯文本 SQL,而是经过压缩的二进制归档,必须使用 pg_restore 进行恢复

文件生成

使用 pg_dump 命令,关键在于 -F c 参数指定自定义格式,并通过 -f 指定以 .backup 结尾的文件名。

xml 复制代码
1pg_dump -U <用户名> -h <主机> -p <端口> -F c -b -v -f "/path/to/your_database.backup" <数据库名>

关键参数说明:

  • -F c:输出为自定义格式(Custom),这是生成 .backup 文件的核心参数。该格式默认启用 zlib 压缩,且支持恢复时选择性还原对象。
  • -b:包含大对象(Blobs)。
  • -v:显示详细备份过程。
  • -f:指定输出文件路径和名称。注意: .backup 只是用户约定的扩展名,文件格式完全由 -F 参数决定,而非扩展名本身。

恢复 .backup 文件

.backup 文件不能 用 psql 直接导入,必须使用 pg_restore:

bash 复制代码
1# 恢复到已存在的数据库
2pg_restore -U <用户名> -d <目标数据库名> -v "/path/to/your_database.backup"
3
4# 恢复前清除目标库中已有对象
5pg_restore -U <用户名> -d <目标数据库名> -c -v "/path/to/your_database.backup"

注意事项:

  • 恢复前需提前创建好目标数据库(除非使用 -C 参数让 pg_restore 自动创建)。
  • 若需并行恢复以加快速度,可添加 -j <线程数> 参数(仅自定义格式和目录格式支持)。

docker容器恢复文件

把文件拷贝到容器内部

bash 复制代码
docker cp /root/luban_2026_1101_0400.backup 容器:/home

然后恢复

bash 复制代码
docker exec -it 66353b66c9f0 pg_restore   -U postgres   -d mydb   -c -v    /home/luban_2026_1101_0400.backup

然后输入postgressql密码

总结

可以使用该方法备份和恢复数据

相关推荐
云祺vinchin31 分钟前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
无奈何杨37 分钟前
风控决策系统决策流,策略模式,权重、顺序、投票、最坏
后端
Zenova EdgeOS1 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer1 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
Patrick_Wilson2 小时前
Go 为什么需要 defer?从函数怎么收尾说起
后端·go·编程语言
字节跳动开源2 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源
苏三说技术2 小时前
DeepSeek Harness入驻B站,评论区被干成了大型插件集市!
后端
橙序员小站2 小时前
我一句话让 AI 把公众号工作台搭完了:部署实测记录
后端
Patrick_Wilson3 小时前
从文本输出理解 Go 方法与接口
后端·go·编程语言