分享

mongodb存储空间问题

eiei244664 发表于 2013-10-17 21:37:04 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 10 9480
小弟最近在试用mongodb
在自己机器上安装完后,有一个多线程程序往它塞了10几万条数据进去。
但是今天,在通过命令行连接到mongodb后,显示连接成功,然后show dbs的时候 出现了错误,日志如下:
Fri Sep 28 09:02:11 [initandlisten] waiting for connections on port 60000
Fri Sep 28 09:02:11 [websvr] admin web console waiting for connections on port 61000
Fri Sep 28 11:27:35 [initandlisten] connection accepted from 127.0.0.1:51768 #1 (1 connection now open)
Fri Sep 28 11:27:39 [conn1] MapViewOfFileEx for D:/mongodb/noAuth/data/search_part.6 failed with errno:8 存储空间不足,无法处理此命令。 (file size is 536608768) in MemoryMappedFile::map
Fri Sep 28 11:27:40 [conn1]   Fatal Assertion 16166
然后db服务就停止了,再次去启动服务,都无法启动了。
我的机器是32位的机器,查看存放的数据的文件夹,总大小为2.6G
是不是需要给数据库分配空间增长策略啊?
请问各位大侠,这种情况怎么解决。。。
              
               
               

已有(10)人评论

跳转到指定楼层
eiei244664 发表于 2013-10-17 21:37:51

            自己顶一下,也修改一下。
我的机器是32位的机器,查看存放的数据的文件夹,总大小为2.06G
        
回复

使用道具 举报

eiei244664 发表于 2013-10-17 21:38:37

            自己在顶一下。
是不是因为32位的机器数据的文件不能大于2G啊?貌似在文档中有看到过,不过不确定。
        
回复

使用道具 举报

zoujian911 发表于 2013-10-17 21:39:12

            是的,文件到顶了不能再分配空间了
        
回复

使用道具 举报

visualzhou 发表于 2013-10-17 21:40:12

            官方文档说得非常清楚:
http://cn.docs.mongodb.org/manual/faq/fundamentals/
32 位版本 MongoDB 仅适合用于测试和评估目的,只能支持 2GB 以下的数据库。
这应该很容易Google到的.
        
回复

使用道具 举报

rucypli 发表于 2013-10-17 21:41:00

            恩 32位肯定有文件大小限制  64位也有限制 只是太大了
        
回复

使用道具 举报

strike2368168 发表于 2013-10-17 21:41:50

            32位系统的问题
        
回复

使用道具 举报

lester19872007 发表于 2013-10-17 21:42:28

            mongo 内部有预分配表空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制,mongo始终保持额外的空间和空余的数据文件,从而有效避免由于数据暴增而带来的磁盘压力过大的问题。
由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一下数据文件大小的2倍,每个数据文件最大2G,这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用。
但是由于mongo 在32位的操作系统中最多只能分配2G的空间,在64位环境中没有限制,所以建议如果是个人做研究用,就用32位是没有多大问题的,如果是生产环境 必须换到64位!
        
回复

使用道具 举报

ling1212111 发表于 2013-10-17 21:43:03

            引用 7 楼 lester19872007 的回复:mongo 内部有预分配表空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制,mongo始终保持额外的空间和空余的数据文件,从而有效避免由于数据暴增而带来的磁盘压力过大的问题。
由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一下数据文件大小的2倍,每个数据文件最大2G,这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据……

楼上说的很详细。
        
回复

使用道具 举报

junki 发表于 2013-10-17 21:43:33

            换64位吧,还有就是内存大一点
        
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条