使用DBeaver备份恢复PostgreSQL时遇pg_restore错误求助
PostgreSQL备份恢复错误
pg_restore: error: did not find magic string in file header排查方案 备份格式与恢复工具不匹配:你在DBeaver中如果选择的是纯SQL脚本备份(导出为
.sql文本文件),但恢复时用了pg_restore工具(该工具仅支持PostgreSQL自定义/归档格式的二进制备份文件,比如.dump/.backup),就会触发这个错误。检查备份设置:DBeaver备份向导里要区分“SQL导出”和“PostgreSQL原生备份(调用pg_dump)”两种模式,后者才会生成pg_restore可识别的文件。备份文件损坏/不完整:备份过程中如果中断(比如DBeaver意外关闭、网络中断),会导致文件缺失PostgreSQL备份文件特有的头部魔法标识
PGDMP。可以直接打开备份文件验证:二进制备份文件开头是PGDMP(二进制编码,文本编辑器打开可能显示乱码但开头能看到该字符串),SQL脚本则以CREATE等SQL语句开头。恢复操作选错模式:如果备份是SQL脚本,恢复时应该用
psql命令(psql -d 目标数据库名 -f 备份文件.sql)或DBeaver的“SQL导入”功能,而不是调用pg_restore的恢复模式。版本不兼容:备份使用的
pg_dump版本与恢复使用的pg_restore版本差距过大(比如高版本备份低版本恢复),会导致格式识别失败。执行pg_dump --version和pg_restore --version检查版本是否一致。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

