win7环境下mongodb分片和移除
2015-02-25 21:35
399 查看
本文主要介绍在一台win7电脑上模拟mongo分片。如果有多台服务器,可以将每个mongo部署在单台电脑上。我们将配置3个mongo分片,3个配置服务器,1个路由服务器。如下图所示进行配置,介绍如何增加分片、移除分片。
一.下载windows zip版本,解压到一个目录中,并且复制7份,命名如下图:
二.分别在bin目录下建立 config.bat文件 文件内容如下列表格中所述。
注意在mongodb_xxxx目录下建data文件夹
注:路由配置中:mongos --port 2222 --configdb 127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003
表示将路由器与配置服务器连接起来,使得他们自己可以认识对方。
三.启动:分别按照下列顺序启动mongo
1.点击配置服务器1的config.bat,启动配置
2.点击配置服务器2的config.bat,启动配置
3.点击配置服务器3的config.bat,启动配置
4.点击路由器1的config.bat,启动路由服务
5.点击分片1的config.bat,启动分片
6.点击分片2的config.bat,启动分片
7.点击分片3的config.bat,启动分片
注:启动完分片后,分片与路由之间还没有建立连接,他们是独立的,通过下面一步增加分片。
四.进入cmd命令终端,执行下列语句,client连接mongos,注意用admin连接
五.通过执行addShard命令增加分片,命令如下,增加2004,2005,2006端口的分片
六.为分片增加数据集合,测试分片
1.我们设定集合数据库名为:blog,用下列语句启用分片:
db.runCommand({enablesharding:"blog"})
2.要进行分片必须指定集合和片键,假设我们在博客系统时间与作者上进行分片,执行语句如下:
注意:我以"_id"为片键,db.runCommand({shardCollection:"blog.posts",key:{"_id":1}})
, 注意,blog是数据库名,posts类似于关系型中的表名。如果要对一个已经包含数据的集合进行分片,数据片键上必须有索引。
所有文档也都必须有片键值(且不能为null)。
七、分片后mongodb的使用
通过以上六步,mongodb的分片已经完成,可以直接使用了。
以上我们创建了那么多mongodb的port,那我们到底要链接mongodb的哪个端口呢?其实我们只使用mongos的端口(即,2222)就可以控制其他的进程。因为前面在mongos的配置信息中就将其他配置服务器串到了mongos上了,所以我们像使用一个mongodb服务一样去使用mongos就可以了。
八、分片优化注意
1.根据分片磁盘容量设置分片最大数据量执行下面的语句,增加一个分片且只使用20GB
db.runCommand(‘addShard’:’127.0.0.1:2007’,’maxSize’:20000);
2.在添加新分片时,应该在mongo不是高度负载情况下添加,否者mongo在迁移数据时,会把应用正在使用的数据迁移到硬盘中,这样查询就会非常满。
九.移除分片
1.有时也需要移除分片,执行如下命令:
此时draining started successfunlly 表示正在进行分片移除,会将2006上数据迁移到其他分片上,这个过程非常耗时间。通过下面命令检测是否已经完成移除。
2.检测是否完成移除分片,再次执行下来语句,返回completed,表示移除完成,移除后就可以对2006进行任何操作了,关机也无所谓了。
3.如果使用了副本集,对某个副本集进行修改,应该连接副本集主服务器进行修改相应配置。
参考:http://www.shangxueba.com/jingyan/2897358.html
一.下载windows zip版本,解压到一个目录中,并且复制7份,命名如下图:
二.分别在bin目录下建立 config.bat文件 文件内容如下列表格中所述。
注意在mongodb_xxxx目录下建data文件夹
注:路由配置中:mongos --port 2222 --configdb 127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003
表示将路由器与配置服务器连接起来,使得他们自己可以认识对方。
三.启动:分别按照下列顺序启动mongo
1.点击配置服务器1的config.bat,启动配置
2.点击配置服务器2的config.bat,启动配置
3.点击配置服务器3的config.bat,启动配置
4.点击路由器1的config.bat,启动路由服务
5.点击分片1的config.bat,启动分片
6.点击分片2的config.bat,启动分片
7.点击分片3的config.bat,启动分片
注:启动完分片后,分片与路由之间还没有建立连接,他们是独立的,通过下面一步增加分片。
四.进入cmd命令终端,执行下列语句,client连接mongos,注意用admin连接
五.通过执行addShard命令增加分片,命令如下,增加2004,2005,2006端口的分片
六.为分片增加数据集合,测试分片
1.我们设定集合数据库名为:blog,用下列语句启用分片:
db.runCommand({enablesharding:"blog"})
2.要进行分片必须指定集合和片键,假设我们在博客系统时间与作者上进行分片,执行语句如下:
注意:我以"_id"为片键,db.runCommand({shardCollection:"blog.posts",key:{"_id":1}})
, 注意,blog是数据库名,posts类似于关系型中的表名。如果要对一个已经包含数据的集合进行分片,数据片键上必须有索引。
所有文档也都必须有片键值(且不能为null)。
七、分片后mongodb的使用
通过以上六步,mongodb的分片已经完成,可以直接使用了。
以上我们创建了那么多mongodb的port,那我们到底要链接mongodb的哪个端口呢?其实我们只使用mongos的端口(即,2222)就可以控制其他的进程。因为前面在mongos的配置信息中就将其他配置服务器串到了mongos上了,所以我们像使用一个mongodb服务一样去使用mongos就可以了。
八、分片优化注意
1.根据分片磁盘容量设置分片最大数据量执行下面的语句,增加一个分片且只使用20GB
db.runCommand(‘addShard’:’127.0.0.1:2007’,’maxSize’:20000);
2.在添加新分片时,应该在mongo不是高度负载情况下添加,否者mongo在迁移数据时,会把应用正在使用的数据迁移到硬盘中,这样查询就会非常满。
九.移除分片
1.有时也需要移除分片,执行如下命令:
此时draining started successfunlly 表示正在进行分片移除,会将2006上数据迁移到其他分片上,这个过程非常耗时间。通过下面命令检测是否已经完成移除。
2.检测是否完成移除分片,再次执行下来语句,返回completed,表示移除完成,移除后就可以对2006进行任何操作了,关机也无所谓了。
3.如果使用了副本集,对某个副本集进行修改,应该连接副本集主服务器进行修改相应配置。
参考:http://www.shangxueba.com/jingyan/2897358.html
相关文章推荐
- [唐胡璐]MongoDB - 在Win7下环境搭建
- yii使用MongoDB作为数据库服务软件[win7环境下](1)
- wamp环境下安装mongoDB并添加php的mongo扩展(PHP 5.3.1+Win7环境)
- yii使用MongoDB作为数据库服务软件[win7环境下](2)
- 一.mongodb分片之win7环境下模拟多节点添加与移除分片
- win7 环境 mongodb学习
- MongoDB安装和配置环境(for win7)
- win7环境下安装MongoDB
- rose2003安装破解(win7环境下)详细过程
- 在win7下zend5.5中文环境搭建方法
- 命令行方式实现第一个CUDA程序的运行(Win7环境)
- win7(32bit)php+mysql+apache开发环境搭建
- 在64bit Win7下使用低版本的EW430开发环境
- Win7环境下安装Mac OS双系统及Iphone开发SDK
- WIN7下JDK+TOMCAT环境的配置与常见错误的解决办法
- win7下Java环境变量的配置
- Android 开发环境安装失败问题总结 win7下
- 关于silverlight3程序在win7 ie8环境下运行出现跨域的错误
- win7下面以xp环境运行程序
- WIN7 下的JAVA环境配置