所以我有2个分区,每个有3个服务器。我的mongos正在运行,我的configuration服务器正在运行,并且还将testing数据添加到2个分区集群中的一个。 我无法获得该数据迁移到另一个群集…虽然看着日志即时看到[平衡器]没有可用的碎片采取块….和….. distrubted锁'平衡器/ Replica4 / 27017 :解锁…..在这两个群集的maxSize是在125不知道还有什么我应该看看解决问题..任何build议?
同时检查集合,我注意到它创build了数据库,但所有这些都被标记为(空)…在分片2上存在所有数据##分片2是数据加载的节点。
这里的基本答案是:不要使用maxSize这么低的值,这不是一个精确的设置。 它依赖于mem.mapped值来确定大小,而这个值只是调用了mmap()的所有数据文件的大小。 事实上,除非您对映射尺寸有更好的了解,否则我build议将其完全closures。
解释:数据库的数据文件大小从64MB开始,然后每个分配的数据文件大小默认最大为2GB。 结合MongoDB将分配一个128MB的文件(总共192MB)的事实,一旦你已经插入一个单一的数据到64MB的数据文件(默认情况下,MongoDB保留一个空的数据文件,以避免延迟写繁重的工作量)。 那么有可能你有多个数据库(例如本地数据库中的一个oplog),你基本上已经确定,有了这个125MB的限制,你所有的碎片几乎立即被认为是“全部”。
删除maxSize选项,确定您的实际数据使用情况,然后添加一个合理的缓冲区(至less是一个空的数据文件的大小),如果您将来要使用它,但请注意,您可以在如果您使用的空间比您预期的多,那么情况也是一样