5

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

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

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

两个系统的配置:

system1 win7-64bit postgresql 9.0.13-1 - 64bit pgadmin 1.8

system2 win7-32​​bit postgresql 9.0.13-1 - 32bit pgadmin 1.8

4

2 回答 2

3

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

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

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

于 2015-07-09T15:47:07.737 回答
2

lock_timeout 是在 9.3 中引入的。这听起来像是 pgAdmin 的问题。值得将其报告为错误。

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

于 2013-11-22T04:49:13.040 回答