mongodb3.4.7分片集群部署

1.linux环境

主机

OS

备注

192.168.1.9

CentOSLinux release 7.3.1611

普通PC

192.168.1.6

CentOSLinux release 7.3.1611

普通PC


2.安装mongodb

版本:mongodb-linux-x86_64-amazon-3.4.7.tgz

下载地址:https://www.mongodb.com/download-center?jmp=nav#community

安装:分别在两台机器上安装相同版本的mongodb,安装路径为:/usr/local/mongodb-3.4.7/

tar-zxvf mongodb-linux-x86_64-amazon-3.4.7.tgz


更换名字

mvmongodb-linux-x86_64-amazon-3.4.7 mongodb-3.4.7


3.设置并启动配置服务器(192.168.1.610000

创建相关路径

#建立mongos目录

mkdir-p /mongodbData/mongos/log/


#建立configserver 数据文件存放目录

mkdir-p /mongodbData/config/data


#建立configserver 日志文件存放目录

mkdir-p /mongodbData/config/log/


#建立shard1数据文件存放目录

mkdir-p /mongodbData/shard1/data


#建立shard1日志文件存放目录

mkdir-p /mongodbData/shard1/log/


#建立shard2数据文件存放目录

mkdir-p /mongodbData/shard2/data

 

建立shard2日志文件存放目录

mkdir-p /mongodbData/shard2/log/

 

#建立shard3数据文件存放目录

mkdir-p /mongodbData/shard3/data


#建立shard3日志文件存放目录

mkdir-p /mongodbData/shard3/log/


#建立shard4数据文件存放目录

mkdir-p /mongodbData/shard4data


#建立shard4日志文件存放目录

mkdir-p /mongodbData/shard4/log/


4.服务器

(1)配置服务器


启动配置服务器

./mongod--configsvr --replSet cfgReplSet --dbpath /mongodbData/config/data--port 21000 --logpath /mongodbData/config/log/config.log –fork

备注:第二次启动时日志是追加(--logappend)(下同)

./mongod--configsvr --replSet cfgReplSet --dbpath /mongodbData/config/data--port 21000 --logpath /mongodbData/config/log/config.log --logappend--fork


连接到配置服务器上

./mongo--host 192.168.1.6 --port 21000


创建配置服务器副本集

rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"192.168.1.6:21000"}]})


备注:

关闭方法:./mongod --shutdown --dbpath /mongodbData/shard4/data(其他类似)


(2)分片


启动分片1192.167.1.922001

./mongod--shardsvr --replSet shard1ReplSet --port 22001 --dbpath/mongodbData/shard1/data --logpath /mongodbData/shard1/log/shard1.log–fork


连接分片1服务器(192.168.1.922001

./mongo--host 192.168.1.9 --port 22001


创建配置分片1副本集

rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"192.168.1.9:22001"}]})


启动分片2(192.168.1.9:22002)

./mongod--shardsvr --replSet shard2ReplSet --port 22002 --dbpath/mongodbData/shard2/data --logpath /mongodbData/shard2/log/shard2.log--fork


连接分片2服务器(192.168.1.922002

./mongo--host 192.168.1.9 --port 22002


创建配置分片2副本集

rs.initiate({_id:"shard2ReplSet",members:[{_id:0,host:"192.168.1.9:22002"}]})


启动分片3192.167.1.6.22003

./mongod--shardsvr --replSet shard3ReplSet --port 22003 --dbpath/mongodbData/shard3/data --logpath /mongodbData/shard3/log/shard3.log--fork


连接分片3服务器(192.168.1.622003

./mongo--host 192.168.1.6 --port 22003


创建配置分片3副本集

rs.initiate({_id:"shard3ReplSet",members:[{_id:0,host:"192.168.1.6:22003"}]})


启动分片4192.167.1.6.22004

./mongod--shardsvr --replSet shard4ReplSet --port 22004 --dbpath/mongodbData/shard4/data --logpath /mongodbData/shard4/log/shard4.log–fork


连接分片4服务器(192.168.1.922004

./mongo--host 192.168.1.6 --port 22004


创建配置分片4副本集

rs.initiate({_id:"shard4ReplSet",members:[{_id:0,host:"192.168.1.6:22004"}]})


(3)路由服务器


启动路由服务器(192.168.1.620000

./mongos--configdb cfgReplSet/192.168.1.6:21000 --port 20000 --logpath/mongodbData/mongos/log/mongos.log --fork


登陆到路由服务器

./mongo--host 192.168.1.6 --port 20000


添加分片到集群注意关闭防火墙,外网除外


添加分片1192.168.1.9:22001

sh.addShard("shard1ReplSet/192.168.1.9:22001")


添加分片2192.168.1.9:22002

sh.addShard("shard2ReplSet/192.168.1.9:22002")


添加分片3192.168.1.6:22003

sh.addShard("shard3ReplSet/192.168.1.6:22003")


添加分片4192.168.1.6:22004

sh.addShard("shard4ReplSet/192.168.1.6:22004")


检查配置数据库的shards集合是否生效

db.getSiblingDB("config").shards.find()


创建数据库

usetest


创建集合

db.createCollection("testCollect")


创建索引

db.testCollect.createIndex({"deviceId":1,"gnssTime":1},{sparse:true,unique:false})


设置要分片的数据库为test

sh.enableSharding("test")


检查数据库主片的地址并查看是否分区(是否启动分区)

db.getSiblingDB("config").databases.find()


指定要被分片的集和的片键

sh.shardCollection("test.testCollect",{"deviceId":1,"gnssTime":1})


用配置数据库来检查配置信息

db.getSiblingDB("config").collections.findOne()


分片一个空集合后查看第一个分片

db.testCollect.getIndexes()


5.测试


写入数据(python脚本逐条写入812条记录)

写入前时间:2017-08-1614:19:33.827402

写入后时间:2017-08-1614:19:34.139188

耗时:311786微秒=311.786毫秒


检查分片

db.testCollect.stats()


切换到配置数据库

useconfig


检查数据块的数量

db.chunks.count()


查看块的分配情况

db.chunks.find()


查看更详细的信息

sh.status()


6.其他

如果mongod启动不成功:

删除data路径下的.lock文件


执行mongod–repair


重启mongod

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值