Mongodb分片集群 安装部署 实时监控命令

一.mongodb分片集群部署:

Ps:本文共涉及12个实例,端口较多,注意更改配置文件中的端口号。

1.环境:三台服务器,每台服务器一个mongos实例,一个configsvr实例,两个shard实例,,将三台服务器上的configsvr做副本集,将6个shard实例做两个副本集保证分片集群的高可用。

主机名

ip地址

Mongos

Configsvr

shard

Mongo1

192.168.146.25

端口:27018

端口:27017

shard1主节点:27019

shard2从节点:27020

Mongo2

192.168.146.26

端口:27018

端口:27017

shard1从节点:27019

shard2主节点:27020

Mongo3

192.168.146.27

端口:27018

端口:27017

shard1从节点:27019

shard2从节点:27020

 

 

2.configsvr配置(添加红色框中部分,注意修改端口号):

  • cat  /data/mongodb/27017/mongodb.conf

3.复制此配置文件到另外两个节点相同目录下:

  • scp  /data/mongodb/27017/mongodb.conf    192.168.146.26:/data/mongodb/27017/
  • scp  /data/mongodb/27017/mongodb.conf    192.168.146.27:/data/mongodb/27017/

4.启动三台服务器的configsvr。

  • mongod -f /data/mongodb/27017/mongodb.conf
  • mongod -f /data/mongodb/27017/mongodb.conf
  • mongod -f /data/mongodb/27017/mongodb.conf

5.分片群集的configsvr角色搭建副本集保证高可用:

  • #mongo 192.168.146.25:27017

         >config={_id:”testconf”,configsvr:true,members:[{_id:0,host:”192.168.146.25:27017”},{_id:1,host:”192.168.146.26:27017”},{_id:2,host:”192.168.146.27:27017”}]}

         >rs.initiate(“config”)

         >rs.status()

  • 其他从节点查看数据:

         >rs.slaveOk()

         >show dbs

6.router(mongos)配置(配置文件中删除storage存储模块,添加sharding模块,指定configsvr地址,使用”副本集/ip:port”的方式指定,配置多个router,任何一个都能正常获取数据):

  • cat /data/mongodb/27018/mongodb.conf

7.复制router配置文件到其他节点:

  • scp  /data/mongodb/27018/mongodb.conf  192.168.146.26:/data/mongodb/27018/
  • scp  /data/mongodb/27018/mongodb.conf  192.168.146.27:/data/mongodb/27018/

8.三台节点启动router:

  • mongos  -f  /data/mongodb/27018/mongodb.conf
  • mongos  -f  /data/mongodb/27018/mongodb.conf
  • mongos  -f  /data/mongodb/27018/mongodb.conf

9.shardsvr配置(三台服务器,组成两个shard副本集,共6个实例,第一个副本集:testdata1,第二个副本集testdata2):

  • ​​​​​​​配置第一个shard副本集:cat  /data/mongodb/27019/mongodb.conf

10.​​​​​​将第一个shardsvr副本集配置文件复制给其他节点:

  • scp  /data/mongodb/27019/mongodb.conf  192.168.146.26:/data/mongodb/27019/
  • scp  /data/mongodb/27019/mongodb.conf  192.168.146.27:/data/mongodb/27019/

11.​​​​​​​配置第二个shard副本集:cat  /data/mongodb/27020/mongodb.conf

12.​​​​​​​将第二个shardsvr副本集配置文件复制给其他节点:

  • scp  /data/mongodb/27020/mongodb.conf  192.168.146.26:/data/mongodb/27020/
  • scp  /data/mongodb/27020/mongodb.conf  192.168.146.27:/data/mongodb/27020/

13.​​​​​​​启动三台服务器上两个shard副本集的所有节点:

  • mongod  -f  /data/mongodb/27019/mongodb.conf
  • mongod  -f  /data/mongodb/27019/mongodb.conf
  • mongod  -f  /data/mongodb/27019/mongodb.conf
  • mongod  -f  /data/mongodb/27020/mongodb.conf
  • mongod  -f  /data/mongodb/27020/mongodb.conf
  • mongod  -f  /data/mongodb/27020/mongodb.conf

14.​​​​​​​配置角色(192.168.146.25:27019为testdata1副本集的primary;192.168.146.26:27020为testdata2副本集的primary):

  • ​​​​​​​# mongo 192.168.146.25:27019

          >config={_id:”testdata1”,members:[{_id:0,host:”192.168.146.25:27019”},{_id:1,host:”192.168.146.26:27019”},{_id:2,host:”192.168.146.27:27019”}]}

          >rs.initiate(“config”)

          >rs.status()

  • ​​​​​​​# mongo 192.168.146.26:27020

          >config={_id:”testdata2”,members:[{_id:0,host:”192.168.146.25:27020”},{_id:1,host:”192.168.146.26:27020”},{_id:2,host:”192.168.146.27:27020”}]}

          >rs.initiate(“config”)

          >rs.status()

二.分片群集的使用:

1.mongos添加shard副本集及节点:

  • #mongo 192.168.146.25:27018

          mongos>sh.addShard(“testdata1/192.168.146.25:27019,192.168.146.26:27019,192.168.146.27:27019”)

          mongos>sh.addShard(“testdata2/192.168.146.25:27020,192.168.146.26:27020,192.168.146.27:27020”)

          mongos>sh.status()

2.默认用户通过mongos向服务器添加数据时默认是没有分片存储,操作都是在路由角色里面。此时需要对需要分片的库和表进行操作,才可以真正进行分片:

  • mongos>use admin
  • mongos>db.runCommand({shardcollection:"mytest.test1",key:{_id:"hashed"}})
  • mongos>db.runCommand({enablesharding:"mytest"})

3.模拟通过mongos向后端mytest.test1表插入1000条数据,然后去后端两个shard副本集中观察是否分片成功:

  • mongos> use mytest
  • mongos> for (i=1;i<=1000;i++){db.test1.insert({name:"mytest1",age:i})}
  • mongos> db.test1.find().count()
  • #mongo  192.168.146.25:27019​​​​​​​

          >use admin

          >db.test1.find().count()

          >511​​​​​​​

  • #mongo  192.168.146.26:27020

​​​​​​​          >use admin

          >db.test1.find().count()

          >489

三.mongodb监控命令:

1.mongostat:

  • mongostat  --help
  • mongostat  --host  192.168.146.25  --port 27018   :实时监控主机mongo状态

2.serverstatus:

  • >db.serverStatus()                               :  查看所有的监控信息
  • >db.serverStatus().network                        :查看网络流量信息
  • >db.serverStatus().opcounters                      :统计增删改查次数
  • >db.serverStatus().connections    :  统计连接

​​​​​​​3.非交互模式下:

  • echo  “db.serverStatus().opcounters” |mongo  --host  127.0.0.1:27018

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值