pg_restore: [archiver] 文件头中不受支持的版本 (1.13)

Ran*_*sia 3 postgresql pg-restore postgres-9.4

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"
Run Code Online (Sandbox Code Playgroud)

pg_restore: [archiver] 文件头中不受支持的版本 (1.13)

Lau*_*lbe 5

此错误意味着您pg_restore在客户端使用的是旧的和过时的版本(因此是 PostgreSQL)。转储是由安装的最新版本的 PostgreSQL 创建的,因此您pg_restore不知道如何处理它。

归档版本 1.13 是由2018 年 2 月提交 3d2aed664ee8271fd6c721ed0aa10168cda112ea引入的。自 10.3、9.6.8、9.5.12、9.4.12 和 9.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3 版发布以来,它已经可用。

你应该升级你的 PostgreSQL 安装,特别是因为这个版本和这个补丁包含安全相关的错误修复。

  • 查看问题中的文件路径,我认为这是因为包含这些工具的过时 pgAdmin 3,而不是本地 Postgres 安装 (2认同)

Pan*_*nde 5

无需升级到最新的 Postgres 版本。

我们可以按如下方式从任何 Postgres 版本备份和恢复到任何版本。

在本地/开发机器中使用 pg_dump 创建一个纯 SQL 格式的备份,如下所示

pg_dump -U postgres -W -F p test > test.sql
Run Code Online (Sandbox Code Playgroud)

然后使用 psql 在远程机器上恢复转储

psql -U postgres -W -d test -f test.sql
Run Code Online (Sandbox Code Playgroud)

它适用于 Windows 和 Linux 环境。

请注意,如果您在远程计算机上恢复时看到错误消息,例如“错误:无法识别的配置参数“default_table_access_method””。您可以简单地忽略此消息,因为 Postgres 12 中引入了“default_table_access_method”选项,同时在 sql 文件中添加了备份。