MongoDB分片中遇到的问题集锦

问题一

    分片配置完全正确,mongos服务能正常启动,片键的选择也完成合理(之前在本地测试过),可是数据总是集中在一个分片上面?

    最终的解决过程,在某一个分片服务器上使用mongo登录之后提示如下错误:

 根据提示,将内核的参数修改为0,执行如下命令:

 echo 0 >/proc/sys/vm/zone_reclaim_mode

然后service mongod restart重新启动mongod服务,这时候数据自动平衡到每个分片中,如图:

时间: 2024-10-07 07:35:29

MongoDB分片中遇到的问题集锦的相关文章

Mongodb分片配置服务器不同步导致mongos进程启动失败

生产环境中,使用的mongodb分片,由于突然断电,服务再起来的时候发现三个mongos进程中有一个启动失败,多次尝试仍不能启动.查看日志,内容如下: 大概意思是配置服务器configserver数据不同步. 解决办法: 杀死所有mongos进程 连接到每个分片的configserver,运行命令db.runCommand('dbhash') 找到MD5值,这时两个能正常运行的MD5值是一样的,不能正常运行的MD5和上面俩都不一样 删除不能正常运行的dbpath,将能正常运行的dbpath下的数

MongoDB分片存储的集群架构实现

MongoDB分片存储的集群架构实现 如果需要存储大量数据,或者系统的读写吞吐量很大的时候,单个server就很难满足需求了.这个时候我们可以使用MongoDB的分片机制来解决这些问题. 分片的基本概念 分片(sharding)是一种水平扩展(horizontal scaling)的方式,把一个大的数据集分散到多个片服务器上,所有的片服务器将组成一个逻辑上的数据库来存储这个大的数据集.分片对用户(应用层)是透明的,用户不会知道数据很被存放到哪个片服务器上. 这种方式有两个好处: 分片之后,每个片

MongoDB分片之数据分割方式

随着移动互联网的发展,大量的非结构化数据随之产生,不仅对数据库存储大数据提出了新的要求,同时对于查询数据和进行大数据分析也提出了苛刻的要求,这些显然是单服务器处理能力无法满足的,自然建立一个集群是不可避免的.集群的复杂性大家众所周知,而MongoDB的优势之一正式可以帮助我们解决这些问题. 分片(sharding) 分片是MongoDB提供的一种机制,其可以将大型的集合分割保存到不同的服务器上.与其他的分区方案相比,MongoDB几乎能自动为我们完成所有事情.只要我们进行简单的配置,并告诉Mon

Mongodb分片(Sharding)功能实现

MongoDB 分片概述 分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据. 为什么使用分片 复制所有的写入操作到主节点 延迟的敏感数据会在主节点查询 单个副本集限制在12个节点 当请求量巨大时会出现内存不足. 本地磁盘不足 垂直扩展价格昂贵 MongoDB分片 下图展

Bugsnag的MongoDB分片集群使用经验

Bugsnag是一家为移动应用开发者提供实时的Bug追踪及检测服务的创业公司,Bugsnag已经使用MongoDB存储超过TB级的文档数据.从Bugsnag的第一个版本开始他们就使用MongoDB存储业务数据.近日,Bugsnag的工程师Simon Maynard在博客上分享了他们的MongoDB分片集群经验,并开源了几个他们常使用的脚本. 带标签的分片(Tag Aware Sharding) 带标签的分片是MongoDB 2.2版本中引入的新特性,此特性支持人为控制数据的分片方式,从而使数据存

MongoDB 分片

分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据. 为什么使用分片 复制所有的写入操作到主节点 延迟的敏感数据会在主节点查询 单个副本集限制在12个节点 当请求量巨大时会出现内存不足. 本地磁盘不足 垂直扩展价格昂贵 MongoDB分片 下图展示了在MongoDB中使用

MongoDB基础教程系列--第九篇 MongoDB 分片

1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 MongoDB 服务器一样,另一方面,MongoDB 自动处理数据在分片上的分布,也更容易添加和删除分片. 请记住:复制是让多台服务器拥有同样的数据副本,每一台服务器都是其他服务器的镜像,而每一个分片都与其他分片拥有不同的数据子集. 通常,分片可以用来: 增加可用的内存 增加可用的磁盘空间 减轻单台服务器的负

备份和还原MongoDB分片集群数据

1.使用mongodump备份小量分片集群数据 如果一个分片集群的数据集比较小,可以直接使用mongodump连接到mongos实例进行数据备份.默认情况下,mongodump到非primary的节点进行数据查询. 如: mongodump --host 192.168.100.200 --port 28018 -d taiwan_game1 -o . mongorestore --host 192.168.100.200 --port 28018 taiwan_game1 需要注意的是如果使用

7月目标 socket , 一致性哈希算法 ; mongodb分片; 分布式消息队列; 中间件的使用场景

  分布式的基础:一致性哈希  路由算法的一致性hash http://www.jiacheo.org/blog/174 http://www.tuicool.com/articles/vQVbmai http://www.cnblogs.com/huangxincheng/p/3708316.html   redis 和 mongodb的使用,要能自己写 helper帮助类,和多台机器上的使用   socket http://www.cnblogs.com/JimmyZhang/archive