【问题标题】:pg_restore error from pgadmin3 - Postgresql来自 pgadmin3 的 pg_restore 错误 - Postgresql
【发布时间】:2013-10-02 10:17:18
【问题描述】:

我使用 pgadmin3 工具从 system1 备份了 Postgresql 数据库。创建的备份文件扩展名为“.backup”

我正在尝试在另一个安装了 postgresql 9.0 和 pgadmin3 1.8 的 system2 上恢复它 但我得到了错误:

无法执行查询:错误:无法识别的配置参数 "lock_timeout" 命令为:SET lock_timeout = 0;

两个系统的配置:

系统1 win7-64位 postgresql 9.0.13-1 - 64 位 pgadmin 1.8

系统2 win7-32​​位 PostgreSQL 9.0.13-1 - 32 位 pgadmin 1.8

【问题讨论】:

    标签: postgresql pg-restore


    【解决方案1】:

    默认情况下,pgAdmin 使用它自己的二进制文件,在这种情况下,它可能高于(或低于)您正在使用的 PostgreSQL 版本。如果您的数据库是本地的,您可以将 pgAdmin 配置为使用本地安装的 PostgreSQL 的二进制文件。如果您使用的数据库是远程数据库,您可以考虑在本地安装该版本的 PostgreSQL 副本,以便使用二进制文件。

    Preferences -> Browser -> Binary paths 中,将 PG bin path 设置为本地安装 PostgreSQL 的路径(或任何本地安装,只要因为它与数据库的版本相同)。

    如果您一次主要使用单个版本的 PostgreSQL,并且使用最新的 pgAdmin,则最好为 PG 二进制文件配置新位置。但是,如果您同时使用多个版本的 PostgreSQL,使用命令行可能会更好。就个人而言,在那种情况下,我仍然使用 pgAdmin 来启动恢复并让它出错,然后使用 gui 构建的命令行标志(您可以在日志文件中找到)复制并粘贴到我的终端程序中(您可能必须删除 --no-password 标志)。

    【讨论】:

    • 我和提问者有同样的问题。这个答案解决了这个问题。谢谢。
    【解决方案2】:

    lock_timeout 是 introduced in 9.3。这听起来像是 pgAdmin 的问题。值得将其报告为错误。

    作为一种解决方法,您可以尝试使用命令行客户端进行恢复(psql 用于文本备份,pg_restore 用于非文本逻辑备份)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 2019-01-21
      • 2018-08-28
      相关资源
      最近更新 更多