Mongodb 3.x 多副本集群配置
2017-03-09 15:21
330 查看
1主2从的模式在数据量不大的情况下完全能满足生产要求,所以考虑生产上使用mongodb首先应该是搭建3副本的集群。
1. Mongodb多副本集群基本概念
Mongodb在多副本集群(Replic set)中,提供了自动Failover机制。Replic set会自动选举一个可写的PRIMARY(Master),其他机器为SECONDARY(Slave)。如果PRIMARY不能提供服务时,会重新选举。具体原理2. 集群搭建步骤
1)为每台机器配置HostName
假设mongo集群搭建在如下3台机器上172.16.48.101
172.16.48.102
172.16.48.103
在/etc/hosts 文件中追加:
172.16.48.101 mongdb1.app.company
172.16.48.102 mongdb2.app.company
172.16.48.103 mongdb3.app.company
2)配置文件
port=27017 logpath=/mongodb/mongodb.log logappend=true dbpath=/mongodb/data fork=true replSet=rs0 #auth = true keyFile=/mongodb/etc/mongo.pass
以上配置分发到3台服务器上。
replSet:集群名字
keyFile:集群间通讯密码文件,3台机器使用同样的文件
3)创建keyFile
openssl rand -base64 521 > /mongod/etc/mongo.pass chmod 600 /mongod/etc/mongo.pass
将mongo.pass文件同步到3台机器/mongod/etc目录下。
4)创建用户及权限
[b]step1. 选择一台机器(以101为例),修改配置文件,去掉集群相关的配置后启动mongod[/b]port=27017 logpath=/mongodb/mongodb.log logappend=true dbpath=/mongodb/data #fork=true #replSet=rs0 #auth = true #keyFile=/mongodb/etc/mongo.pass
[b]step2. 使用mongo客户端连接服务器后,创建admin账户,并给予userAdminAnyDatabase + clusterAdmin
4000
角色[/b]
use admin db.createUser({ user: 'admin', pwd: 'admin', roles: [{ role: 'userAdminAnyDatabase', db: 'admin' }, { role: 'clusterAdmin', db: 'admin' }] })
[b]step3. 修改101机器的配置文件后重启mongod[/b]
修改后配置文件如下
port=27017 logpath=/mongodb/mongodb.log logappend=true dbpath=/mongodb/data fork=true replSet=rs0 auth = true keyFile=/mongodb/etc/mongo.pass
ps. 关闭mongod的方法
#操作系统kill命令 kill `ps -ef | grep mongo | grep -v grep | awk '{print $2}'` #客户端方式 use admin db.shutdownServer()
[b]step4. 启动并配置集群[/b]
启动102,103后,使用mongo客户端连接101,并构建集群
use admin db.auth('admin','admin') #使用admin登录 rs.initiate() #初始化集群 rs.add("mongdb2.app.company") #添加集群成员,使用hostname rs.add("mongdb3.app.company")
[b]step5. 验证集群[/b]
分别登录101,102,103,可以看到
101 rs0:PRIMARY>
102 rs0:SECONDARY>
103 rs0:SECONDARY>
则说明集群已经搭建完毕,主从状态已经确定。
[b]step6. 设置从库可读[/b]
默认SECONDARY是不可读的,在从库上执行如下命令
use admin db.auth('admin','admin') db.getMongo().setSlaveOk()
相关文章推荐
- 搭建高可用的MongoDB集群(上):MongoDB的配置与副本集
- MongoDB--配置副本集群权限文件keyfile
- MongoDB 分片+副本 集群配置
- 搭建高可用的MongoDB集群(上):MongoDB的配置与副本集----- 个人记录
- 搭建高可用的MongoDB集群(上):MongoDB的配置与副本集-1
- 搭建高可用的MongoDB集群:MongoDB的配置与副本集
- Ubuntu下Mongodb集群搭建:relica sets(副本集配置)
- 搭建高可用的MongoDB集群(上):MongoDB的配置与副本集
- 搭建高可用的MongoDB集群(上):MongoDB的配置与副本集-2
- Mongodb副本集配置
- Mongodb集群的搭建与配置
- YOUYOU部署MongoDB系列之三(副本集配置 持续更新)
- 配置MongoDB集群分片(一)
- Mongodb集群配置(sharding with replica set)
- MongoDB 主从+分片集群配置
- 搭建高可用mongodb集群(一)——配置mongodb
- Mongodb集群配置(sharding with replica set)
- mongodb集群与分片的配置说明
- MongoDB 双机集群配置与管理
- 配置MongoDB集群分片