mongdb 复制集+仲裁(带权限认证)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
日志服务 SLS,月写入数据量 50GB 1个月
简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/1685347

一、环境

1、架构图

wKioL1XRzn6SRVMYAADM1onFESo308.jpg

2、部署详细

1
2
3
10.10.17.26:27000 (primary)
10.10.17.27:27000 (secondary)
10.10.2.74:27000    (arbiter)

3、软件版本

1
2
mongdb :2.6.11
系统:centos 6.6


二、安装配置

1、安装见mongodb安装

2、撰写配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vi  /etc/mongod_27000 .conf
logpath= /data/mongodb/navy_db/log/mongod .log  #mongodb日志文件
logappend= true    #追加方式写日志文件
fork= true         #后台运行
port=27000        #mongodb端口
dbpath= /data/mongodb/navy_db/db
pidfilepath= /data/mongodb/navy_db/log/mongod .pid
bind_ip=0.0.0.0
rest =  true        #开启web访问
journal =  true   #启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
oplogSize=2048   #同步操作记录文件大小(MB)
replSet=dbset    #副本集名称,同一个副本集,名称必须一致
auth= true        #开启验证
keyFile= /data/mongodb/navy_db/password .key    #key认证

3、生成keyfile文件

1
echo  "c57a012cf2f8a8e20dd4b21a7fae48b3"  > /data/mongodb/navy_db/password .key

4、设置keyfile权限,必须是600

1
chmod  600  /data/mongodb/navy_db/password .key

5、启动服务

1
ulimit  -s 4096 &&  ulimit  -m 16777216 & numactl --interleave=all   /usr/bin/mongod   -f  /etc/mongod_27000 .conf

PS:

在配置集群之前auth和keyFile先注释掉,待集群初始化完成,建立用户(从库上不需要建用户,当集群初始化完成会从主库上同步过来的,如果从库建了用户,集群初始化会报错,提示从库已有数据),然后打开,并重启服务让其生效

三、集群配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#use到admin
use admin
创建配置(dbset是集群名称,必须和配置文件中replSet的值一样)
config = { _id: "dbset" , members:[
... ... {_id:1,host: "10.10.11.34:27000" },
... ... {_id:2,host: "10.10.16.6:27000" }
]
... ... }
#初始化集群
  rs.initiate(config);
#添加仲裁节点
rs.addArb( "10.10.2.74:27000" )
#查看集群状态
  rs.status()

PS:其他常用命令

1
2
3
4
5
6
7
8
9
10
#删除一个节点
rs.remove( "10.10.2.74:27000" )
#查看集群配置信息
rs.conf()
#查看当前谁是primary
rs.isMaster()
#查看主从延时
rs.printSlaveReplicationInfo()
#查看rs相关命令
rs.help()

rs.status()结果说明

1
2
3
4
5
6
7
8
9
10
11
1. STARTUP:刚加入到复制集中,配置还未加载
2. STARTUP2:配置已加载完,初始化状态
3. RECOVERING:正在恢复,不适用读
4. ARBITER: 仲裁者
5. DOWN:节点不可到达
6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂
7. REMOVED:移除复制集
8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态
9. FATAL:出错。查看日志 grep  “replSet FATAL”找出错原因,重新做同步
10. PRIMARY:主节点
11. SECONDARY:备份节点

四、建立用户(只能在primary节点上操作)

1
2
3
4
5
use admin
db.addUser( 'admin' , '123456' )                 #建立管理员账号
use navy_db   #如果navy_db存在就进入库,如果不存在就建立navy_db库,空库show dbs是看不到的
db.addUser( 'navy_db_pro' , '123456' )         #建立navy_db的读写账号
db.addUser( 'navy_db_sel' , '123456' , true )   #建立navy_db的只读账号

五、重启集群

把auth和keyFile的注释去掉,arbiter、secondary、primary三个节点依次重启,让其生效

1
  rs.status() 查看集群状态是否ok

PS:

1、从库默认是不可以读的,如果需要从库提供读业务,需要做一下设置

db.getMongo().setSlaveOk()

2、mongdb的客户端驱动支持这种架构,主库挂了,secondary提升为主,对于应用基本透明

1
client=MongoClient(“mongdb: //navy_db_pro :123456@10.10.17.26:27000,10.10.17.27:27000 /navy_db


本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/1685347

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3月前
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
50 2
|
4月前
|
消息中间件 NoSQL 中间件
MongoDB主从结构、仲裁节点
【7月更文挑战第2天】
56 0
|
6月前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
111 1
MongoDB-复制集选举规则
选举规则 • 一旦发现主节点没有响应 / 发送心跳请求, 那么副节点就会认为主节点挂了 • 一旦发现主节点挂了, 任意一个副节点都可以发起选举 • (发起选举的节点我们称之为 候选节点, 每一个节点内部都有一个 选举计数器) • 发起选举的节点会给自己先投一票, 然后将自己的票数依次发送给其它节点
90 0
|
安全 NoSQL MongoDB
mongdb安全认证详解
mongdb安全认证详解
136 0
|
网络协议 关系型数据库 Unix
OushuDB-客户端认证-配置方法
OushuDB-客户端认证-配置方法
97 0
|
安全 NoSQL Java
副本集安全认证|学习笔记
快速学习副本集安全认证
172 0
副本集安全认证|学习笔记
|
SQL 负载均衡 网络协议
关于Linux下Mysql集群同步(主从、一主多从、主从从)部署及同步策略的一些笔记
和小伙们分享一些Mysql集群主从同步部署相关的笔记 博文内容涉及: 为什么需要mysql集群主从同步 主从同步原理 部署不同主从结构的Mysql集群 一主一从 一主多从 主从从 主从同步使用的复制模式介绍配置 食用方式:了解Linux、Mysql即可 理解不足小伙伴帮忙指正
754 0
关于Linux下Mysql集群同步(主从、一主多从、主从从)部署及同步策略的一些笔记
|
NoSQL 安全 MongoDB
高可用mongodb集群(分片+副本):用户权限配置
高可用mongodb集群(分片+副本):用户权限配置
437 0
|
运维 NoSQL MongoDB
(2)MongoDB副本集自动故障转移原理(含客户端)
前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节。
(2)MongoDB副本集自动故障转移原理(含客户端)