pg_restore:[归档程序]文件头中的版本(1.13)不受支持

3
C:\Program Files (x86)\pgAdmin III\1.22\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "randd" --role "postgres" --no-password  --verbose "C:\Users\ranjeet\Desktop\RandDbackup19-3final.backup"

pg_restore: [存档程序] 文件头中的版本(1.13)不受支持


2
看起来转储是使用更高版本的PostgreSQL进行的。 - Laurenz Albe
如果您使用postgresql-9.5.15-1并尝试在postgresql-9.5.4-1中进行还原,则会出现此错误,因此了解到可以在相同的9.5版本中实现这一点是很好的。 - Cerveser
2个回答

6

不必升级到最新的Postgres版本。

我们可以按照以下步骤从任何Postgres版本备份并恢复到任何版本。

在本地/开发机器上使用pg_dump以纯SQL格式创建备份,如下所示:

pg_dump -U postgres -W -F p test > test.sql

接着使用psql命令在远程机器上恢复备份数据

psql -U postgres -W -d test -f test.sql

它可以在 Windows 和 Linux 环境下正常工作。

请注意,如果在远程机器上恢复时出现错误消息,例如“ERROR: unrecognized configuration parameter "default_table_access_method"”。您可以忽略此消息,因为“default_table_access_method”选项是在 Postgres 12 中引入的,在备份添加到 SQL 文件中。


5
这个错误意味着您在客户端使用一个旧的、过时的版本的pg_restore(因此是PostgreSQL)。该转储文件是由比已安装版本更新的PostgreSQL版本创建的,因此您的pg_restore不知道如何处理它。
档案版本1.13是由commit 3d2aed664ee8271fd6c721ed0aa10168cda112ea在2018年2月引入的。自10.3、9.6.8、9.5.12、9.4.17和9.3.22发布以来一直可用。
您应该升级您的PostgreSQL安装,特别是因为这个版本和这个补丁包含安全相关的错误修复。

2
从问题中的文件路径来看,我认为这是由于过时的pgAdmin 3包含了这些工具,而不是本地Postgres安装引起的。 - user330315
1
是的,那很可能是原因,升级pgAdmin可能会有所帮助。 - Laurenz Albe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接