pgadmin3中的pg_restore错误-Postgresql


8

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

我正在尝试在安装了postgresql 9.0和pgadmin3 1.8的另一个system2上还原它,但是iam收到了错误

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

两个系统的配置

system1 win7-64bit PostgreSQL 9.0.13-1-64位pgadmin 1.8

system2 win7-32​​位PostgreSQL 9.0.13-1-32位pgadmin 1.8

Answers:


6

lock_timeout 是PostgreSQL 9.3中出现的新参数

根据发行说明

添加配置变量lock_timeout以限制会话等待获取任何一个锁的时间(ZoltánBöszörményi)

这表明pgadmin使用的是PostgreSQL 9.3 pg_dump命令而不是9.0。

仅在迁移到9.3时才建议这样做。由于目标服务器是9.0,因此最好使用pg_dump9.0服务器已安装的二进制文件。

外部二进制文件的路径可以在pgAdmin首选项中设置。要解决此问题,您可以将其设置为9.0安装的bin目录,然后尝试再次备份。

除此之外,作为一次性解决方案,如果转储文件为纯文本格式,则可以对其进行编辑,删除有问题的行SET lock_timeout = 0;,希望它是由版本不匹配引起的唯一问题。


1
奇怪的是,即使使用9.3源数据库和目标数据库,我也会遇到相同的错误...
Cerin 2014年

我从heroku备份数据库并在新的本地9.3 db上还原时遇到此错误。有关系吗?
justingordon 2014年

1
我无法在备份的所有文件中获取此参数,但仍会向我报告相同的错误。我在9.3 postgresql上转储了,我尝试在9.2 postgresql上恢复。我认为有一些选项可以自动创建此lock_timeout参数吗?
g.annunziata 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.