You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何匹配pg_restore版本与dump文件?解决版本1.15不兼容问题

关于pg_restore报错"unsupported version (1.15)"的问题解答

问题描述

运行pg_restore时遇到如下错误:

pg_restore: error: unsupported version (1.15) in file header

当前Docker容器使用postgres:14.10镜像,版本信息如下:

root@c33fdb601eab:/# postgres --version
postgres (PostgreSQL) 14.10 (Debian 14.10-1.pgdg120+1)
root@c33fdb601eab:/# pg_restore --version
pg_restore (PostgreSQL) 14.10 (Debian 14.10-1.pgdg120+1)

疑问:

  • 版本1.15是什么意思?它是否代表*.sql dump文件的版本?
  • 如果是,如何确定使用哪个pg_restore版本来恢复该文件?

解答

1. 版本1.15的含义

这个1.15是pg_dump生成的自定义/归档格式备份文件的内部版本号,并非普通SQL文本备份的版本——只有用pg_dump -Fc(自定义格式)或-Ft(tar格式)生成的二进制备份文件才会携带该头部版本标识,纯SQL文本格式备份不会出现这类报错。

2. 内部版本号与PostgreSQL版本的对应关系

PostgreSQL的每个大版本会对应特定的pg_dump内部版本号,1.15对应的是PostgreSQL 15版本生成的自定义格式备份。

3. 匹配pg_restore版本的方法

  • 核心规则:低版本的pg_restore无法兼容恢复高版本生成的自定义/归档格式备份,必须使用≥备份生成版本的pg_restore工具。
  • 具体解决方式:
    • 直接使用PostgreSQL 15版本的pg_restore(可拉取postgres:15系列镜像运行);
    • 若无法升级工具,可要求备份方用pg_dump -Fp(纯文本格式)重新生成备份,SQL文本格式可跨版本恢复(需注意不同版本间的SQL语法兼容性)。

内容的提问来源于stack exchange,提问作者Dušan Maďar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:24:53