我试图从Amazon RDS转储Postgres数据库,我最近更新到10.1。为此,我从enterprisedb.com(http://get.enterprisedb.com/postgresql/postgresql-10.1-1-linux-x64-binaries.tar.gz)下载pg_dump
10.1但是当我尝试使用它时,我收到以下错误:
pg_dump: server version: 10.1; pg_dump version: 10.1
pg_dump: aborting because of server version mismatch
之前的工作正常,当RDS版本为9.6且我使用pg_dump
9.6(从同一位置下载)时。
我尝试了较新版本的pg_dump(10.2和10.3)但得到了同样的错误(这是有道理的,因为那些新版本实际上并不匹配RDS版本。)
我还检查了我的服务器上没有安装其他pg_dump
(Ubuntu 15.04 - 我知道我应该更新......等待18.04),找到一个并删除它,但得到同样的错误。
这可能是什么问题?
答案 0 :(得分:7)
首先,pg_dump与旧版本的服务器完美配合。在这种情况下,您将看到如下行:
-- Dumped from database version 9.6.6
-- Dumped by pg_dump version 10.1
另外,pg_dump版本,比方说,10.0应该适用于10中的服务器版本10.1及更高版本。* branch - 所以次要版本不应该是问题。在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.)
*/
在您的情况下,问题可能是由以下方面之一引起的:
无论如何,您提供的错误消息说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
答案 1 :(得分:0)
尝试检查权限 - 路径是什么