>  기사  >  데이터 베이스  >  一.mongodb分片之win7环境下模拟多节点添加与移除分片

一.mongodb分片之win7环境下模拟多节点添加与移除分片

WBOY
WBOY원래의
2016-06-07 16:10:491312검색

本文主要介绍在一台win7电脑上模拟mongo分片。如果有多台服务器,可以将每个mongo部署在单台电脑上。我们将配置3个mongo分片,3个配置服务器,1个路由服务器。如下图所示进行配置,介绍如何增加分片、移除分片。 vcD4KPHA+PHN0cm9uZz7Su6Ouz8LU2G1vbmdvZGI8L


本文主要介绍在一台win7电脑上模拟mongo分片。如果有多台服务器,可以将每个mongo部署在单台电脑上。我们将配置3个mongo分片,3个配置服务器,1个路由服务器。如下图所示进行配置,介绍如何增加分片、移除分片。

\

喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHN0cm9uZz7Su6Ouz8LU2G1vbmdvZGI8L3N0cm9uZz48L3A+CjxwPs/C1Ni12Na3o7podHRwOi8vd3d3Lm1vbmdvZGIub3JnLzwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141202/2014120209234283.png" alt="\">

二.下载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,用下列语句启用分片:

\

2.要进行分片必须指定集合和片键,假设我们在博客系统时间与作者上进行分片,执行语句如下:

\

注意,blog是数据库名,posts类似于关系型中的表名。如果要对一个已经包含数据的集合进行分片,数据片键上必须有索引。

所有文档也都必须有片键值(且不能为null)。

八.分片优化注意

1.根据分片磁盘容量设置分片最大数据量执行下面的语句,增加一个分片且只使用20GB

db.runCommand(‘addShard’:’127.0.0.1:2007’,’maxSize’:20000);

\

2.在添加新分片时,应该在mongo不是高度负载情况下添加,否者mongo在迁移数据时,会把应用正在使用的数据迁移到硬盘中,这样查询就会非常满。

九.移除分片

1.有时也需要移除分片,执行如下命令:

\

此时draining started successfunlly 表示正在进行分片移除,会将2006上数据迁移到其他分片上,这个过程非常耗时间。通过下面命令检测是否已经完成移除。

2.检测是否完成移除分片,再次执行下来语句,返回completed,表示移除完成,移除后就可以对2006进行任何操作了,关机也无所谓了。

3.如果使用了副本集,对某个副本集进行修改,应该连接副本集主服务器进行修改相应配置。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:aboutgpdbpasswordmd5다음 기사:FirebirdDatabaseOnMacOSX