我从外部服务器导出了一个postgresql数据库,并试图将其导入我的本地服务器,但是出现了这个错误:
unrecognized configuration parameter "idle_in_transaction_session_timeout"
Run Code Online (Sandbox Code Playgroud)
这种错误是否意味着两台服务器使用不同版本的postgresql?我调查了一下,外部服务器正在运行:
version
PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
Run Code Online (Sandbox Code Playgroud)
我的服务器正在运行:
version
PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit
Run Code Online (Sandbox Code Playgroud)
几乎是一回事.是否有一个站点,您可以在其中查看每个版本的所有有效配置参数?有没有办法同步这样的两个数据库,所以这样的不兼容性会自动修补?
cju*_*gel 44
根据Postgresql 9.6发行说明, 该idle_in_transaction_session_timeout参数是在9.6版本中引入的.
E.2.3.1.10.服务器配置
如果会话处于空闲状态状态太长时间,则允许会话自动终止(Vik Fearing)
此行为由新配置参数idle_in_transaction_session_timeout控制.防止被遗忘的交易持有锁或防止真空清理时间过长可能很有用.
由于您在服务器上使用的是9.5版,因此无法识别该参数.
您可能使用Postgresql客户端的9.6版本从源9.5服务器导出数据,并且该参数是在转储文件中引入的.如果是这种情况,我建议使用9.5客户端版本导出和导入数据.
接受的答案是要走的路,但如果由于某种原因您无法升级版本,这里有一个解决方法。
pg_dump -F c -Z 9 dbname > file.zipzcat file.zip | grep -vw "idle_in_transaction_session_timeout" | psql -d newdb请注意,使用 psql 而不是 pg_import 有一些缺点。例如,不能同时使用-j 导入。
| 归档时间: |
|
| 查看次数: |
28960 次 |
| 最近记录: |