mongodb分片安装

环境信息

操作系统: centos
mogodb版本:4.0.5
虚拟机: 172.30.0.181 172.30.0.182 172.30.0.183
集群环境:
2个分片复制集
shard1(172.30.0.181:27017 172.30.0.182:27017 172.30.0.183:27017)
shard1(172.30.0.181:27018 172.30.0.182:27018 172.30.0.183:27018)
1个config复制集
172.30.0.181:28018 172.30.0.182:28018 172.30.0.183:28018
1个mongos节点
28017

搭建分片复制

解压安装包

		tar xvf  mongodb-linux-x86_64-4.0.5.tar

shard1(rx_rep1)复制集

		#配置文件
		bind_ip=0.0.0.0
		fork=true
		dbpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/data/db/
		port=27017
		logpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/data/logs/mongodb.log
		logappend=true
		replSet=rx_rep1
		smallfiles=true
		shardsvr=true

启动shard1复制集
/usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongod -f /usr/mongodb/mongodb.conf

shard2(rx_rep2)复制集

			bind_ip=0.0.0.0
			fork=true
			dbpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/data/db2/
			port=27018
			logpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/data/logs2/mongodb2.log
			logappend=true
			replSet=rx_rep2
			smallfiles=true
			shardsvr=true

启动shard2复制集

/usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongod  -f   /usr/mongodb/mongodb2.conf

添加防火墙
[root@localhost mongodb]# iptables -I INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
[root@localhost mongodb]# iptables -I INPUT -p tcp -m tcp --dport 27018 -j ACCEPT
[root@localhost mongodb]# iptables -I INPUT -p tcp -m tcp --dport 28018 -j ACCEPT
[root@localhost mongodb]# iptables -I INPUT -p tcp -m tcp --dport 28017 -j ACCEPT
[root@localhost mongodb]# iptables-save


登录复制集,添加初始化配置
进入mongodb客户端
 shard1客户端
 /usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongo -port 27017 

  配置shard1复制集
var config = {"_id":"rx_rep1",
		  "members":[
		  {"_id":0,host:"172.30.0.181:27017"},
		  {"_id":1,host:"172.30.0.182:27017"},
		  {"_id":2,host:"172.30.0.183:27017"}
          ]
}
初始化复制集
rs.initiate(config)
查看复制集状态
rs.status()
-----
shard2复制集初始化
  shard2客户端
 /usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongo -port 27018
  配置shard2复制集
var config = {"_id":"rx_rep2",
		  "members":[
		  {"_id":0,host:"172.30.0.181:27018"},
		  {"_id":1,host:"172.30.0.182:27018"},
		  {"_id":2,host:"172.30.0.183:27018"}
          ]
}
初始化复制集
rs.initiate(config)
查看复制集状态
rs.status()

搭建config节点复制集

创建config节点配置文件:mongocfg.conf

bind_ip=0.0.0.0
fork=true
dbpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/cfg/data/db2/
port=28018
logpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/cfg/logs/cfg.log
logappend=true
  # 配置节点的复制集名称
replSet=configRepSet
smallfiles=true
#配置复制集
configsvr=true

启动配置复制集合

  /usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongod  -f   /usr/mongodb/mongodb-linux-x86_64-4.0.5/cfg/mongocfg.conf

初始化配置节点

登录客户端

/usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongo -port 28018

初始化

var config = {"_id":"configRepSet",
		  "members":[
		  {"_id":0,host:"172.30.0.181:28018"},
		  {"_id":1,host:"172.30.0.182:28018"},
		  {"_id":2,host:"172.30.0.183:28018"}
          ]
}
初始化复制集
rs.initiate(config)
查看复制集状态
rs.status()

mongos节点

mongos配置文件mongos.conf

logpath=/usr/mongodb/mongodb-linux-x86_64-4.0.5/mongos/log/mongos.log
logappend = true
port = 28017
fork = true
configdb = configRepSet/172.30.0.181:28018,172.30.0.182:28018,172.30.0.183:28018
maxConns=20000
bind_ip=0.0.0.0

/usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongos -config /usr/mongodb/mongodb-linux-x86_64-4.0.5/mongos/conf/mongos.conf

启动分片功能
链接mongo:
/usr/mongodb/mongodb-linux-x86_64-4.0.5/bin/mongo --host 172.30.0.183 --port 28017
创建数据集
use hostTrack
添加分片,只需在一台机器执行便可:

sh.addShard("rx_rep1/172.30.0.181:27017,172.30.0.182:27017,172.30.0.183:27017")
sh.addShard("rx_rep2/172.30.0.181:27018,172.30.0.182:27018,172.30.0.183:27018")

查看集群状态:

sh.status()

模拟写入数据
use hostTrack
for(i=1;i<=50000;i++){db.user.insert({“id”:i,“name”:“jack”+i})}
启用数据库分片

sh.enableSharding(“hostTrack”)

建立索引,对表进行分片
db.user.createIndex({“id”:1}) # 以"id"做为索引
sh.shardCollection(“hostTrack.user”,{“id”:1}) # 根据"id"对user表进行分片
sh.shardCollection(“user_center.users”,{“name”:1})
sh.status() # 查看分片状况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值