mongodb的sharding
来源:互联网 发布:西门子博途软件 编辑:程序博客网 时间:2024/05/21 10:43
一开始我们使用的是5台机器来搭建mongodb的sharding的,一台作为config,gateway和客户端,4台作为server。这种情况下系统分布非常均匀。由于系统数据增长的非常快,4台数据已经不能满足,决定增加3台server。使用db.runCommand( { addshard : "172.16.0.1:27017" } );命令很快的就增加了3台shading。
我们的系统是每天会导入数据,每天采用一个新的collection来存放数据的。结果我第二天来的时候发现新的一天的数据全部集中在shard0000上,这样子整个系统的数据不是快了,而是更慢了。这样下去不行,要挨批了。只能拼命处理。找到所有的chunk,将chunk数比较的server上的chunk移动到chunk数比较少的server上。
useconfig
db.chunks.find({“ns”:”XXXX”})
useadmin
db.runCommand({moveChunk: "XXXX", find : { "ci" : "123456" }, to :"shard0001"})
这样一条一条的命令来执行,把chunk分发到其他的server上,这个方法只能治标不能治本,只能是数据不均匀了之后来处理。而且chunk上数据量比较多的话,移动起来很慢,影响了系统的性能。Balance一直没有恢复,反正就是我增加了机器之后sharding死活不能balance了,google了一把也没有找到原因(mongodb是1.8.2版本)。
每天手工处理也不行,只好写一个脚本,在建立collection,还没有插入数据的时候执行手工balance。手动建立chunk,手动将chunk移动到各个server上去。参见http://www.mongodb.org/display/DOCS/Splitting+Chunks
db.runCommand({ split : "XXXX" , middle : { "ci" : "123456" } })
db.runCommand({moveChunk: "XXXX", find : { "ci" : "123456" }, to :"shard0001"})
目前只好采用这种土办法来自动balance了。
- mongodb的sharding
- mongodb的sharding(分片)
- MongoDB集群的Sharding详解
- MongoDB学习十二 --MongoDB的Sharding Introduction
- mongodb sharding
- MongoDB sharding
- MongoDB Sharding
- [mongodb翻译]分片的限制(sharding limit)
- Mongodb的Replica Sets + Sharding Architect
- MongoDB 的分布式属性(replication and sharding)
- MongoDB auto-sharding
- Mongodb --- Manual sharding
- mongodb sharding 学习笔记
- MongoDB Sharding配置
- mongodb sharding 配置
- mongodb sharding 机制
- mongodb sharding replica set
- MongoDB---Sharding分片
- NSString转int
- 要么忙着生,要么忙着死。Dropbox怎么选择?
- oracle备份与恢复
- 让你的网页在移动浏览器中也能很好的显示
- Silverlight 3中param参数列表汇总
- mongodb的sharding
- DotNet中三种方法给下拉框赋值
- Wirte_To_txt 代码
- 控制台创建两个线程,等待一个线程的结束,执行另外一线程
- ADo执行到 CADODatabase::IsOpen()出错
- Android AudioFlinger
- Python笔记.2011.10.19
- notify_url.jsp,return_url.jsp这两个页面能改成action的吗?ssh集成
- Oracle中recyclebin的保留策略