首先,pg_dump 与旧版本的服务器完美配合。在这种情况下,您将看到如下行:
-- Dumped from database version 9.6.6
-- Dumped by pg_dump version 10.1
此外,pg_dump 版本,比如 10.0 应该在 10.* 分支中与服务器版本 10.1 和更高版本一起使用——所以次要版本不应该是问题。请参阅 pg_dump 源代码中的此评论:https ://github.com/postgres/postgres/blob/REL_10_STABLE/src/bin/pg_dump/pg_dump.c#L668
/*
* We allow the server to be back to 8.0, and up to any minor release of
* our own major version. (See also version check in pg_dumpall.c.)
*/
在您的情况下,问题可能是由以下方面之一引起的:
- 您下载的不是官方 pg_dump,是从 Postgres 公司之一获取的,可以以某种方式对其进行修改(注意在 URL 中添加“-1”,因此您使用他们的 pg_dump 版本标记为“10.1-1”);
- 您正在使用经过修改的(由 AWS 工程师)Postgres 服务器;
- 最近,Postgres 项目中的版本控制模式已从 3 个版本更改为 2 个版本。这意味着,版本检测功能中可能存在一些错误,因为这些更改相对较新。
无论如何,您提供的错误消息说 10.1 和 10.1 不匹配——这根本不正常。肯定有一个错误,但不清楚在哪里。
我会尝试以下步骤。
1)使用官方(社区支持)pg_dump。在 Ubuntu 上,您只需使用官方软件包安装“postgresql-client-10”:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-client-10
2) 如果上一步没有帮助,请尝试联系 AWS 支持,要求他们仔细检查此问题。
3)最后,尝试使用安装在您的 Ubuntu 机器上的 vanilla Postgres 重现问题,如果问题仍然存在,则肯定需要将其报告为错误https://www.postgresql.org/docs/10/static/bug-reporting .html