mongodb分片

本文档详细介绍了在单台机器上部署MongoDB分片集群的过程,包括启动复制集Share-a、Share-b,配置复制集dbconfig,启动mongos路由服务器,以及配置和测试分片。每个步骤都提供了启动命令和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部署概述图如下,为方便演示,部署在一台机器上,以端口号区分。

说明:

        a:一共启动10个服务(分片复制集Share-a:3+分片复制集Share-b:3+配置复制集:3+路由服务器:1)

        b:端口如上所示

 

Step 1:

         分别启动复制集Shared-a

         mongod --dbpath=../dbs/share-a-1 --logpath=../logs/share-a-1.log --shardsvr --fork --port 30000 --replSet=share-a

         mongod --dbpath=../dbs/share-a-1 --logpath=../logs/share-a-2.log --shardsvr --fork --port 30001 --replSet=share-a

         mongod --dbpath=../dbs/share-a-1 --logpath=../logs/share-a-3.log --shardsvr --fork --port 30002 --replSet=share-a

         初始化复制集Shared-a

         登录:./mongo --port 30000

         运行:rs.initiate() #当前服务器作为复制集的主节点

                    rs.add("localhost:30001,localhost:30002"); #把这两台加入到复制集

         注意:加入复制集的时候,用localhost可能会报错,这是运行db.isMaster(),查看hosts配置,hosts必须和主节点一致。

       

         分别启动复制集Shared-b

         mongod --dbpath=../dbs/share-b-1 --logpath=../logs/share-b-1.log --shardsvr --fork --port 30100 --replSet=share-b

         mongod --dbpath=../dbs/share-b-1 --logpath=../logs/share-b-2.log --shardsvr --fork --port 30101 --replSet=share-b

         mongod --dbpath=../dbs/share-b-1 --logpath=../logs/share-b-3.log --shardsvr --fork --port 30102 --replSet=share-b

         初始化复制集Shared-b

         登录:./mongo -port 30100

         运行:rs.initiate() #当前服务器作为复制集的主节点

                    rs.add("localhost:30101,localhost:30102"); #把这两台加入到复制集

         注意:加入复制集的时候,用localhost可能会报错,这是运行db.isMaster(),查看hosts配置,hosts必须和主节点一致。

 

         分别启动配置复制集dbconfig

         mongod  --logpath=../logs/share-b-1.log --configsvr --fork --port 27019--replSet=dbconfig

         mongod  --logpath=../logs/share-b-2.log --configsvr --fork --port 27020--replSet=dbconfig

         mongod  --logpath=../logs/share-b-3.log --configsvr --fork --port 27021--replSet=dbconfig

         初始化复制集dbconfig

         登录:./mongo -port 27019

         运行:rs.initiate() #当前服务器作为复制集的主节点

                    rs.add("localhost:27020,localhost:27021"); #把这两台加入到复制集

         注意:加入复制集的时候,用localhost可能会报错,这是运行db.isMaster(),查看hosts配置,hosts必须和主节点一致。

 

Step 2:

         启动mongos进程

        ./mongos --fork --configdb dbconfig/localhost:27019,localhost:27020,localhost:27021 --port 40000 --logpath=../logs/mongos --logappend

         注意:dbconfig为配置复制集的replSetName

 

Step 3:

         配置分片集群。

         登录:./mongo -port 40000

         加入分片集合:

         sh.addShard("share-a/localhost:30000,localhost:30001,localhost:30002");

         sh.addShard("share-b/localhost:30100,localhost:30101,localhost:30102");

         设置分片数据库:

         sh.enableSharding("cloud-docs")

         设置分片集合,定义分片键:

         sh.shardCollection("cloud-docs.spreadsheets",{username:1,_id:1})

 

Step 4:

         测试:

         连接mongos:./mongo -port 40000

         切换到cloud-docs数据库:use cloud-docs

         插入2000个文档:for(i=0;i<2000;i++){db.spreadsheets.insert({"username":"name"+i,count:i})}

 

Step 5:

         检查分片:

         ./mongo -port 40000

         use config; #切换到config数据库

         db.chunks.find().pretty();#查看分片情况,如下

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值