sharing分片集合环境搭建【MongDB系列之七】

 

 

 注意:shop是前几讲搭建起来的副本集(这节不会详细说明怎么搭建)

 

D: 副本集 shop1  数据路径: D:\MongDB_E\data\bin   端口:192.168.0.100:9100

E: 副本集 shop1  数据路径: D:\MongDB_F\data\bin   端口:192.168.0.100:9200

 

CNF:  配置服务器:D:\MongDB_CNF\data\bin   端口:192.168.0.100:9400

CNF:  配置服务器:E:\MongDB_CNF\data\bin   端口:192.168.0.100:9500

CNF:  配置服务器:E:\MongDB_CNF\data\bin   端口:192.168.0.100:9600

 

 

ROT: 副本集shop1 路由服务器,数据路径: D:\MongDB_ROT\data\bin

端口:192.168.0.100:9300

 

 

ROT: 在192.168.0.101指定路由服务器,数据路径: D:\MongDB_ROT\data\bin   端口:  9300

 

 

 

说明:

     路由服务器会连接到由前几章节搭建起来的副本集合 shop,以及由D,E服务器新搭建的新副本集shop1(没有给分配仲裁服务器)

  此次访问将通过客户端直接访问路由器,由路由器决定访问哪个副本集的primary。

 

1. 搭建副本集shop1

 

1) 启动副本集shop1端口9100

mongod --dbpath D:\MongDB_E\data\db --port 9100  --replSet  shop1/192.168.0.100:9100 --shardsvr  --bind_ip 192.168.0.100

 

2) 启动副本集shop1端口9200

mongod --dbpath D:\MongDB_F\data\db --port 9200  --replSet  shop1/192.168.0.100:9100 --shardsvr  --bind_ip 192.168.0.100

 

启动的时候一定要指定一个局域网IP地址,否则最后会报错,无法连接等的错误信息。启动副本集shop的时候也需要全部指定IP地址,在本例中shop集合对应的IP地址是,192.168.0.101

 

3) 初始化副本集shop1

登录9100端口,使用admin用户

执行命令初始化:

db.runCommand({"replSetInitiate":{

"_id":"shop1","members":[

{"_id":1,"host":"192.168.0.100:9100","priority":1},

{"_id":2,"host":"192.168.0.100:9200"}

]}})

 

Priority:1 指定默认的primary服务器  ,如果无法执行确认 数据库路径,命令编码是否正常。 

4) 测试shop1成功初始化

5) 启动shop1 集合中的配置服务器

 

       mongod --configsvr --port 9400 --dbpath D:\MongDB_CNF\data\db 

       mongod --configsvr --port 9500 --dbpath  E:\MongDB_CNF\data\db

       mongod --configsvr --port 9600 --dbpath  E:\MongDB_CNF2\data\db

 

   注意在192.168.0.100 即,shop1 集合所在的机器启动了三个配置服务器 9400 9500和 9600。(因为在启动路由的时候如果写两个配置库,提示:要么1个配置服务器,要么3个配置服务器会报错。)

 

6) 启动shop1 集合中的路由服务器

mongos --configdb 192.168.0.100:9400,192.168.0.100:9500,192.168.0.100:9600  --port  9300 --chunkSize 1

 configdb 参数后面跟的是配置服务器,并且数量为1或3

7) rs.isMaster() 查看当前连接服务器的状态。

 

 

2. Shop集合中配置路由服务器

 

 

 

ROT: 路由服务器,数据路径: D:\MongDB_ROT\data\bin   端口:192.168.0.101:9300

 

 

mongos --configdb 192.168.0.100:9400,192.168.0.100:9500,192.168.0.100:9600  --port  9300 --chunkSize 1

 

 

mongos 启动参数中,chunkSize 这一项是用来指定chunk 的大小的,单位是MB,默认大小

200MB,为了方便测试Sharding 效果,我们把chunkSize 指定为 1MB

 

 

至此,在192.168.0.100 上配置的server,和route已经完成,在192.168.0.101 即:127.00.1上配置的server和route也完成。下面将给route 加入副本集合。

3. 配置Sharding

 

1) 登录shop1路由服务器添加副本集 sharing登录路由服务器 使用admin 将 两个副本集中的副本集数据库服务器,加入到当前share中:

db.runCommand({addshard:"shop1/192.168.0.100:9100,192.168.0.100:9200"});

db.runCommand({addshard:"shop/192.168.0.101:7400,192.168.0.101:7500,192.168.0.101:7600"})

 

 

 

 

2) 激活数据库及集合的分片

 

3) 测试数据

for(var i=1;i<=2000;i++) db.users.insert({id:i,addr_1:"Beijing",addr_2:"Shanghai"});

登陆路由服务器 9300 切换到test 数据库写入数据。

 

4) 查看分片的状态

   db.users.stats();

可以看到shard2 和 shard1 里面都有对应的数据。(上图是新建的环境下测试的结果)

5) 

 

 

4. Config服务器关闭后下次无法启动提示repair 使用如下命令执行恢复操作

 

 执行修复后启动正常。

 

 

你可能感兴趣的:(mongdb)