Mongodb3集群环境搭建

一、背景

创建高可用、高性能、可扩展、易伸缩的Mongodb集群需创建具有3Shard(每个包含1 Primary1 Secondary1 Arbiter),3Config Servers3Router

 

在单台服务上搭建,各个端口都不相同:

Shard1

Shard2

Shard3

Config

Router

27011

27012

27013

27014

27015

27021

27022

27023

27024

27025

27031

27023

27033

27034

27035

如果有多台服务器,可安装下图指定端口,三台情况:

 

Shard1

Shard2

Shard3

Config

Router

第一台

27011

27012

27013

27014

27015

第二台

27011

27012

27013

27014

27015

第三台

27011

27012

27013

27014

27015

注意:以下步骤均是采用单台服务上部署。

 

二、环境搭建

1.下载Mongodb最新安装包:mongodb-linux-x86_64-rhel62-3.2.10.tgz到临时目录,

解压:tar -zxv -f mongodb-linux-x86_64-rhel62-3.2.10.tgz -C /home/mongodb

重命名:mv mongodb-linux-x86_64-rhel62-3.2.10 mongodb3.2

修改/etc/profile文件:export /home/mongodb/mongodb3.2/bin,并重新生效 source /ect/profile

2.创建数据文件:mkdir -p /data/mongodb/27011 /data/mongodb/27021/data/mongodb/27031进入mongodb安装目录创建配置文件目录mkdir clusting

3.创建shard文件配置:vi clusting/27011.conf

port=27011

bind_ip=192.168.190.128

logpath=/data/mongodb/27011/l.log

logappend=true

pidfilepath=/data/mongodb/27011/l.pid

dbpath=/data/mongodb/27011

replSet=rs001

fork=true

创建27021.conf 27031.conf文件,与上面内容相同,只需要修改有配置的位置。

4.启动服务mongod -f clusting/27011.conf,同时启动2702127031端口数据服务。

5.执行mongo --port 27011 --host 192.168.190.128 登录mongo服务编写配置,并初始化配置:

cfg={ _id:"rs001", members:[ {_id:0,host:'192.168.190.128:27011',priority:2}, {_id:1,host:'192.168.190.128:27021',priority:1},{_id:2,host:'192.168.190.128:27031',arbiterOnly:true}] };

rs.initiate(cfg)

执行rs.status();查看状态。如果出现error,执行:rs.slaveOk()

6.重复(2)(3)(4)(5)步骤,创建shard2shard3,注意需要将replSet_id设置为相应的rs002rs003。至此,数据接口创建完成。

7.创建confing server数据目录,mkdir /data/mongodb/27014 /data/mongodb/27024 /data/mongodb/27034

8.配置confing server节点,vi clusting/27014.conf如下:

port=27014

bind_ip=192.168.190.128

logpath=/data/mongodb/27014/l.log

logappend=true

pidfilepath=/data/mongodb/27014/l.pid

dbpath=/data/mongodb/27014

replSet=configReplSet

fork=true

configsvr=true

创建27024.conf27034.conf配置服务文件,内容一致,修改指定位置。

9.启动配置服务mongod -f clusting/27014.conf,同时启动2702427034配置服务。

10.执行mongo --port 27014 --host 192.168.190.128 登录mongo服务

mongo中执行rs.initiate( {_id: "configReplSet",configsvr: true,members: [{ _id: 0, host: "192.168.190.128:27014"},{ _id: 1, host: "192.168.190.128:27024"},{ _id: 2, host: "192.168.190.128:27034"}]} )

至此,mongodbconfig server配置成功。

11.创建Routermkdir /data/mongodb/27015 /data/mongodb/27025 /data/mongodb/27035

12.编写Router配置vi clusting/27015.conf

port=27015

logpath=/data/mongodb/27015/l.log

pidfilepath=/data/mongodb/27015/l.pid

configdb=configReplSet/192.168.190.128:27014,192.168.190.128:27024,192.168.190.128:27034

fork=true

创建27025.conf27035.confRouter配置服务。

13.启动27015 Router服务:mongos -f clusting/27015.conf,同时启动2702527035服务。

14.登录Routers服务,mongo --port 27015 --host 192.168.190.128

15.Router服务中添加分片信息,顺序执行:

sh.addShard("rs001/192.168.190.128:27011,192.168.190.128:27021,192.168.190.128:27031")

sh.addShard("rs002/192.168.190.128:27012,192.168.190.128:27022,192.168.190.128:27032")

sh.addShard("rs003/192.168.190.128:27013,192.168.190.128:27023,192.168.190.128:27033")

如果出现错误,请排查/etc/hosts或其他问题。

执行: sh.enableSharding("transport")   对数据库transport进行分片操作。

执行: sh.shardCollection( "transport.kuaixin", {"_id": "hashed" } ) ,collection的分配规则

执行: sh.shardCollection( "transport.lixin", {"_id": "hashed" } ) ,collection的分配规则。

至此,Mongodb集群搭建完成。

执行sh.status()查看搭建状态,其中是没有显示出Arbiter节点,因为这个节点只用于投票,不存储副本数据。

注意:推荐使用3台服务器以上搭建。

你可能感兴趣的:(Mongodb3集群环境搭建)