搭建mongodb集群很多次,每次都会或多、或少出现一些见鬼的问题,写这边博客供以后参考。

本次是基于mongodb3.0进行集群的搭建;搭建步骤如下:

1、设置操作系统的环境

echo "never">"/sys/kernel/mm/transparent_hugepage/enabled"
echo "never">"/sys/kernel/mm/transparent_hugepage/defrag"
ulimit -n 64000

2、配置文件的修改[mongod.conf]

 shards配置:port=27018、directoryperdb=true 、bind_ip=0.0.0.0
 config配置:port=27019、bind_ip=0.0.0.0
 monogs配置:mongos --configdb 192.168.12.150:27019 --logpath /var/log/mongodb/mongos.log  --pidfilepath /var/run/mongodb/mongos.pid --logappend --logRotate reopen --fo
 hosts配置(修改 hosts文件 添加上每台分片服务器对应的域名到IP地址的解析):
 192.168.12.151 shardone.mongodb.local
 192.168.12.152 shardtwo.mongodb.local
 192.168.12.153 shardthree.mongodb.local

3、添加分片

>>mongo admin
>>db.runCommand({addshard:"shardone.mongodb.local:27018",name:"shardone"})          --添加分片
>>db.runCommand({addshard:"shardtwo.mongodb.local:27018",name:"shardtwo"})
>>db.runCommand({addshard:"shardthree.mongodb.local:27018",name:"shardthree"})

分片服务器尽量以域名解析的方式,避免以后服务器的ip地址变更

4、对数据库启动分片和添加片键

>>db.runCommand({"enablesharding":"mc_visit"})
>>db.runCommand({"shardcollection":"mc_visit.mc_visit","key":{"visitdate":-1,"virus":1}})

5、没有数据情况下修改片键

>>use config
>>db.collections.find() --查看所有的片键
>>db.chunks.find()      --查看已有分片的块