xinghe0 发表于 2017-12-15 23:04:36

MongoDB 高可用集群搭建(3.4)

  一、架构概况
  192.168.56.101
  192.168.56.102
  192.168.56.103
  OS为centos 7.2
  架构图:

  规划5个组件对应的端口号,由于每台机器均需要同时部署 mongos、config server 、shard1、shard2、shard3,所以需要用端口进行区分。
  端口可以自由定义,本架构中 mongos为 20000, config server 为 21000, shard1为 22001 , shard2为22002, shard3为22003.
  二、创建相应的目录
  

#建立mongos及日志目录  
mkdir
-p /data/mongodb/mongos/log  
#建立config server 数据文件存放目录
  
mkdir
-p /data/mongodb/config/data  
#建立config server 日志文件存放目录
  
mkdir
-p /data/mongodb/config/log  
#建立shard1 数据文件存放目录
  
mkdir
-p /data/mongodb/shard1/data  
#建立shard1 日志文件存放目录
  
mkdir
-p /data/mongodb/shard1/log  
#建立shard2 数据文件存放目录
  
mkdir
-p /data/mongodb/shard2/data  
#建立shard2 日志文件存放目录
  
mkdir
-p /data/mongodb/shard2/log  
#建立shard3 数据文件存放目录
  
mkdir
-p /data/mongodb/shard3/data  
#建立shard3 日志文件存放目录
  
mkdir
-p /data/mongodb/shard3/log  

  三、Config server配置
  

cd /data/mongodb/config  
$ vi mongo.conf
  
dbpath
=/data/mongodb/config/data/  
logpath
=/data/mongodb/config/log/config.log  
logappend
=true  
port
=21000  
fork
=true  
rest
=true  
httpinterface
=true  
configsvr
=true  
replSet
=cfgReplSet  

  

/app/mongo/bin/mongod -f /data/mongodb/config/mongo.conf  

  
连接到任意一台配置服务器上
  

/app/mongo/bin/mongo --host 192.168.56.101 --port 21000  
创建配置服务器副本集
  
rs.initiate({_id:
"cfgReplSet",configsvr:true,members:[{_id:0,host:"192.168.56.101:21000"},{_id:1,host:"192.168.56.102:21000"},{_id:2,host:"192.168.56.103:21000"}]})  

  四、Shard server配置
  

cd /data/mongodb/shard1  
$ vi mongo.conf
  
dbpath
=/data/mongodb/shard1/data  
logpath
=/data/mongodb/shard1/log/shard1.log  
logappend
=true  
port
=22001  
fork
=true  
rest
=true  
httpinterface
=true  
replSet
=shard1ReplSet  
shardsvr
=true  

  
/app/mongo/bin/mongod -f /data/mongodb/shard1/mongo.conf --nojournal
  

  
连接任意一台分片服务器
  

/app/mongo/bin/mongo --host 192.168.56.101 --port 22001  
创建副本集并初始化
  
rs.initiate({_id:
"shard1ReplSet",members:[{_id:0,host:"192.168.56.101:22001"},{_id:1,host:"192.168.56.102:22001"},{_id:2,host:"192.168.56.103:22001"}]})  

  以相同的方式配置Shard server 2,Shard server 3
  五、Mongos配置
  

cd /data/mongodb/mongos  
$ vi mongo.conf
  
logpath
=/data/mongodb/mongos/log/mongos.log  
logappend
=true  
port
=20000  
fork
=true  
configdb
=cfgReplSet/192.168.56.101:21000,192.168.56.102:21000,192.168.56.103:21000  

  
/app/mongo/bin/mongos -f /data/mongodb/mongos/mongo.conf
  

  六、添加分片到集群
  

登录路由服务客户端  
/app/mongo/bin/mongo --host 192.168.56.101 --port 20000
  
添加分片到集群
  
sh.addShard("shard1ReplSet/192.168.56.101:22001,192.168.56.102:22001,192.168.56.103:22001")
  
依次添加shard2shard3
  
sh.addShard("shard2ReplSet/192.168.56.101:22002,192.168.56.102:22002,192.168.56.103:22002")
  
sh.addShard("shard3ReplSet/192.168.56.101:22003,192.168.56.102:22003,192.168.56.103:22003")
  

  
--Enable Sharding for a Database
  
sh.enableSharding("test")
  

  
--Shard a Collection

  
sh.shardCollection("test.testdoc", {>  

  

  七、测试
  

/app/mongo/bin/mongo --host 192.168.56.102 --port 20000  
插入测试数据
  
mongos> use test
  

for(var i = 1; i <= 100000; i++){  db.testdoc.save({id:i,
"message":"message"+i});  
}
  
mongos
> db.testdoc.status()  
页: [1]
查看完整版本: MongoDB 高可用集群搭建(3.4)