pg_dump -Fc生成的PostgreSQL备份文件无法解压,求格式及解决方法
PostgreSQL自定义格式备份的正确处理方法
你用pg_dump -Fc生成的是PostgreSQL自定义归档格式备份文件,这不是普通的gzip或tar压缩包,所以常规解压命令(gzip -d、tar)完全不适用,这就是所有尝试失败的原因。
格式说明
-Fc是PostgreSQL pg_dump工具的专属参数,指定生成的备份文件采用PostgreSQL自定义格式:
- 该格式本身已内置压缩,无需额外用gzip等工具二次压缩
- 支持增量恢复、选择性恢复单个表/对象等高级操作
- 只能用PostgreSQL自带的
pg_restore工具处理,无法用通用解压工具打开
正确操作方法
1. 恢复备份到数据库
如果要将备份恢复到目标数据库,结合Docker执行pg_restore命令:
# 若目标数据库未创建,先执行创建命令 docker exec my-container createdb -U postgres target-database # 执行恢复操作 docker exec -i my-container pg_restore -U postgres -d target-database < my-db.gzip
替换target-database为你要恢复到的数据库名称。
2. 查看备份内容(无需恢复)
如果只是想查看备份包含的表、函数等对象,用pg_restore的-l参数列出内容:
docker exec -i my-container pg_restore -U postgres -l < my-db.gzip
额外提示
你给备份文件命名为.gzip容易造成误解,建议后续生成这类备份时使用.dump或.sqlc后缀,比如:
docker exec my-container pg_dump my-database -Fc -U postgres > my-db.dump
内容的提问来源于stack exchange,提问作者bolino
相关产品推荐
相关产品推荐

