我有一个文件db.backup
,我想恢复到 PostgreSQL 版本 11。
当我尝试通过 Azure Data Studio 安装时,出现错误:
恢复:pg_restore: [archiver] 文件头中不支持的版本 (1.13)
然后我发现运行pg_restore
我实际上可以读取文件:
pg_restore /..db.backup -U postgres > db-restore.sql
我可以看到该文件是人类可读的。但是我更愿意从备份中恢复数据库。
我怎样才能做到这一点?我尝试安装旧版本的 PostgreSQL 服务器,但我不知道如何安装旧版本的 PSQL(还)。这会有帮助吗?
是否有一些标志可以添加到恢复命令中以便恢复工作?
- 编辑
的输出pg_restore --version
,即那个版本pg_restore
给了我上面提到的错误信息:
pg_restore (PostgreSQL) 11.4 (Ubuntu 11.4-1.pgdg18.04+1)
作为CVE-2018-1058更改的一部分,pg_dump 存档格式的 1.13 版于 2018 年 2 月推出。提交消息中提到了版本提升,并针对该问题提供了特定警告:
那是 PostgreSQL 11 发布前六个月,所以支持 PostgreSQL 11 的安装不应该使用旧的 pg_restore。我不确定就它提供的软件堆栈而言,“Azure Data Studio”到底是什么,但它看起来有一个不适合您需求的过时版本的 pg_restore。