MongoDB 高可用集群配置

本例搭建mongodb 3副本集+3分片的集群环境(主机3台),基本配置流程如下文
1. 编辑配置文件,分别在3台主机上新建配置文件config.conf、mongos.conf、shard1.conf、shard2.conf、shard3.conf。内容如下
端口规划
mongos:20000
config:21000
shard1:27001
shard2:27002
shard3:27003

(1)config.conf

pidfilepath = /home/mongodb/config/log/configsrv.pid
dbpath = /home/mongodb/config/data
logpath = /home/mongodb/config/log/congigsrv.log
logappend = true
bind_ip = 0.0.0.0
port = 21000
fork = true
#declare this is a config db of a cluster;
configsvr = true
replSet=configs
maxConns=20000

(2)mongos.conf

pidfilepath = /home/mongodb/mongos/log/mongos.pid
logpath = /home/mongodb/mongos/log/mongos.log
logappend = true

bind_ip = 0.0.0.0
port = 20000
fork = true
configdb = configs/10.1.1.1:21000, 10.1.1.2:21000, 10.1.1.3:21000
maxConns=20000

(3)shard1.conf

pidfilepath = /home/mongodb/shard1/log/shard1.pid
dbpath = /home/mongodb/shard1/data
logpath = /home/mongodb/shard1/log/shard1.log
logappend = true

bind_ip = 0.0.0.0
port = 27001
fork = true
replSet=shard1
shardsvr = true
maxConns=20000

(4)shard2.conf

pidfilepath = /home/mongodb/shard2/log/shard2.pid
dbpath = /home/mongodb/shard2/data
logpath = /home/mongodb/shard2/log/shard2.log
logappend = true

bind_ip = 0.0.0.0
port = 27002
fork = true
replSet=shard2
shardsvr = true
maxConns=20000

(5)shard3.conf

pidfilepath = /home/mongodb/shard3/log/shard3.pid
dbpath = /home/mongodb/shard3/data
logpath = /home/mongodb/shard3/log/shard3.log
logappend = true

bind_ip = 0.0.0.0
port = 27003
fork = true
replSet=shard3
shardsvr = true
maxConns=20000

2. 每台主机上创建好上述所有配置文件中涉及到的文件目录。
3. 下载mongodb安装包,解压安装,配置好系统环境变量。
4. 在3个主机节点分别启动配置服务器进程:

# mongod -f config.conf


5. 配置服务器创建副本集(登录任一台节点)
《"_id" : "configs"应与配置文件中配置的 replicaction.replSetName 一致,"members" 中的 "host" 为三个节点的 ip 和 port》

#mongo --port 21000
> use admin;
>cfg = {_id: 'configs', members: [
                          {_id: 0, host: '10.1.1.1:21000'},
                          {_id: 1, host: '10.1.1.2:21000'},
                          {_id: 2, host: '10.1.1.3:21000'}]
           }
> #初始化副本集配置
rs.initiate(cfg);

6. 配置shard1分片
6.1 在3个主机节点分别启动shard1服务进程:

# mongod -f shard1.conf


6.2 配置shard1分片的副本集(登录任一台节点)

#mongo --port 27001
> use admin;
> config = {_id : "shard1",members : [
        {_id : 0, host : "10.1.1.1:27001" },
        {_id : 1, host : "10.1.1.2:27001" },
        {_id : 2, host : "10.1.1.3:27001” , arbiterOnly: true }] }
        
> #初始化副本集配置
rs.initiate(cfg);

7. 配置shard2分片
7.1 在3个主机节点分别启动shard2服务进程:

# mongod -f shard2.conf


7.2 配置shard1分片的副本集(登录任一台节点)

#mongo --port 27002
> use admin;
> cfg = {_id: 'shard2', members: [
                          {_id: 0, host: '10.1.1.1:27002'},
                          {_id: 1, host: '10.1.1.2:27002'},
                          {_id: 2, host: '10.1.1.3:27002',arbiterOnly: true}]
           }
           
> #初始化副本集配置
rs.initiate(cfg);

8. 配置shard3分片
8.1 在3个主机节点分别启动shard3服务进程:

# mongod -f shard3.conf


8.2 配置shard1分片的副本集(登录任一台节点)

#mongo --port 27003
> use admin;
> cfg = {_id: 'shard3', members: [
                          {_id: 0, host: '10.1.1.1:27003'},
                          {_id: 1, host: '10.1.1.2:27003'},
                          {_id: 2, host: '10.1.1.3:27003',arbiterOnly: true}]
           }
#初始化副本集配置
rs.initiate(cfg);

9. 配置mongos 路由服务器
在3台主机分别启动mongos服务进程

# mongos -f mongos.conf


登录任一台主机节点mongos

# mongo --port 20000
> use admin;
配置路由服务器与分配副本集
> sh.addShard("shard1/10.1.1.1:27001,10.1.1.2:27001,10.1.1.3:27001")
> sh.addShard("shard2/10.1.1.1:27002,10.1.1.2:27002,10.1.1.3:27002")
> sh.addShard("shard3/10.1.1.1:27003,10.1.1.2:27003,10.1.1.3:27003")
#查看集群状态
> sh.status()

集群配置完成。

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

若集群环境故障需恢复(只恢复环境):
1. 停止各个进程
登录,mongo --port 21000
use admin;
db.shutdownServer();
2. 清空各个目录下的文件
/home/mongodb/config/
/home/mongodb/shard1
/home/mongodb/shard2
/home/mongodb/shard3
重建 data 和 log 目录

3. 修改好配置文件中迁移后对应的IP信息.
4. 按照配置过程中的4步骤开始重新配置集群。
5. 重新同步数据。

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
修改副本集中的节点
例如配置服务副本集,修改成员0;
登录
> mongo --port 21000
> use admin;
> conf=rs.conf()
> conf.members[0].host="10.1.1.1:21000";
> rs.reconfig(conf,{"force":true});

可以依次修改调整节点信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值