Postgresql osm2pgsql已停止工作

Postgresql osm2pgsql已停止工作,postgresql,openstreetmap,postgis,Postgresql,Openstreetmap,Postgis,我想用osm2pgsql导入osm planet-131113.osm.pbf。 但当它处理关系时,窗口抛出并说osm2pgsql已停止工作,然后进程被终止。问题是什么 我的硬件是: Cpu:英特尔至强E5-2620 内存:24GB 维修:supermico x9dr3-f-o 硬盘:希捷2tb梭鱼 我的操作系统: windows server 2008 R2 以及带有postgis2.1捆绑包的Postgresql9.3 Postgresql配置: effective-chache-size

我想用osm2pgsql导入osm planet-131113.osm.pbf。 但当它处理关系时,窗口抛出并说osm2pgsql已停止工作,然后进程被终止。问题是什么

我的硬件是:

Cpu:英特尔至强E5-2620

内存:24GB

维修:supermico x9dr3-f-o

硬盘:希捷2tb梭鱼

我的操作系统:

windows server 2008 R2

以及带有postgis2.1捆绑包的Postgresql9.3

Postgresql配置:

 effective-chache-size=28GB
 shared_buffers 2GB
 maintenance_work_mem = 2GB
 work-mem=512MB
 checkpoint_segments = 100
 chekpoint_completion-target=0.9
 autovacuum = off
 fsync=off
 synchronous-commit=off
 full-page-writes=off
和osm2pgsql命令: F:\OSM\x64>osm2pgsql-d OSMPlanet-s-s default.style-C 16000-U postgres-r pbf-k-v-number进程12 planet-131113.OSM.pbf osm2pgsql SVN版本af61cae663 64位id空间

发行说明:“Dominik Perpeet构建的Windows版本 .com/osm2pgsql/index.html'

警告:osm2pgsql编译时未使用fork,仅使用一个进程

使用投影SRS 900913球形墨卡托

设置表:planet_osm_point

注意:表planet_osm_point不存在,正在跳过

注意:表planet_osm_point_tmp不存在,正在跳过

设置表:planet_osm_线

注意:表planet_osm_行不存在,正在跳过

注意:表格planet_osm_line_tmp不存在,正在跳过

设置表:planet_osm_多边形

注意:表格planet_osm_多边形不存在,正在跳过

注意:表planet\u osm\u polygon\u tmp不存在,正在跳过

设置表:planet_osm_道路

注意:表planet_osm_roads不存在,正在跳过

注意:表planet_osm_roads_tmp不存在,正在跳过

为稀疏节点缓存分配内存

节点缓存:缓存=16000MB,最大块=2048001*zd,分配方式=8192

Mid:pgsql,规模=100缓存=16000

设置表:planet_osm_节点

注意:表planet_osm_节点不存在,正在跳过

设置表:planet_osm_方式

注意:表planet_osm_ways不存在,正在跳过

设置表:planet_osm_rels

注意:表planet_osm_rels不存在,正在跳过

正在读取文件:planet-131113.osm.pbf

处理:节点208451K 142.6k/s路径204149K 0.84k/s关系95360 5.64/s

postgresql日志:

2013-12-09 00:46:19 PST错误:与打开的事务进行客户端连接时出现意外EOF

2013-12-09 00:46:19太平洋标准时间上下文:复制行星节点,第1行

2013-12-09 00:46:19太平洋标准时间声明:从STDIN复制planet_osm_节点

2013-12-09 00:46:19 PST错误:与打开的事务进行客户端连接时出现意外EOF

2013-12-09 00:46:19太平洋标准时间上下文:复制planet_osm_rels,第1行

2013-12-09 00:46:19太平洋标准时间声明:从STDIN复制行星轨道

2013-12-09 00:46:19 PST日志:无法向客户端发送数据:无法建立连接,因为目标计算机主动拒绝连接

2013-12-09 00:46:19太平洋标准时间声明:从STDIN复制行星轨道

2013-12-09 00:46:19 PST日志:无法向客户端发送数据:无法建立连接,因为目标计算机主动拒绝连接

2013-12-09 00:46:19太平洋标准时间声明:从STDIN复制planet_osm_节点

2013-12-09 00:46:19 PST日志:无法向客户端发送数据:无法建立连接,因为目标计算机主动拒绝连接

2013-12-09 00:46:19太平洋标准时间声明:从STDIN复制行星轨道

2013-12-09 00:46:19太平洋标准时间致命:与客户端的连接丢失

2013-12-09 00:46:19太平洋标准时间致命:与客户端的连接丢失

2013-12-09 00:46:19太平洋标准时间致命:与客户端的连接丢失

2013-12-09 00:46:19太平洋标准时间致命:与客户端的连接丢失

2013-12-09 00:48:53 PST日志:收到快速关机请求

2013-12-09 00:48:53 PST日志:中止任何活动事务

2013-12-09 00:48:53太平洋标准时间日志:关闭


2013-12-09 00:48:53 PST日志:数据库系统已关闭

请检查您的PostgreSQL日志,查看它是否在客户端死亡之前报告任何错误。然后检查osm2pgsql在运行时的内存使用情况。如果1和2中没有任何东西可以控制,那么它可能是一个bug,但是首先检查错误和内存不足问题。谢谢你的回答。。我查了一下Postgresql日志,发现了这个。2013-12-09 00:46:19太平洋标准时间致命:与客户端的连接丢失。问题是什么?客户端osm2pgsql在未关闭连接的情况下死亡。好的-如果没有其他问题,那么我们知道问题出在osm2pgsql中。对此我应该怎么做?好的,按照我的建议,首先检查内存使用情况。然后,查看是否有可以使用osm2pgsql设置的详细或调试选项。我知道有一种方法可以减少内存的使用。