0

0

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

php中文网

php中文网

发布时间:2016-06-07 14:56:14

|

1534人浏览过

|

来源于php中文网

原创

一、 环境 1、架构图 650) this.width=650;" src="http://www.68idc.cn/help/uploads/allimg/151111/120F554M-0.jpg" title="111111111.png" alt="wKioL1XRzn6SRVMYAADM1onFESo308.jpg" /> 2、部署详细 10.10.17.26:27000(primary)10.10.17.27:27000(seco

一、环境

1、架构图

wKioL1XRzn6SRVMYAADM1onFESo308.jpg

2、部署详细

10.10.17.26:27000 (primary)
10.10.17.27:27000 (secondary)
10.10.2.74:27000    (arbiter)

3、软件版本

mongdb :2.6.11
系统:centos 6.6


二、安装配置

1、安装见mongodb安装

2、撰写配置文件

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文件

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

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

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

5、启动服务

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

PS:

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

AI帮个忙
AI帮个忙

多功能AI小工具,帮你快速生成周报、日报、邮、简历等

下载

三、集群配置

#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:其他常用命令

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

rs.status()结果说明

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节点上操作)

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三个节点依次重启,让其生效

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

PS:

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

db.getMongo().setSlaveOk()

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

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


相关专题

更多
虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

29

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

20

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

37

2025.12.25

word转换成ppt教程大全
word转换成ppt教程大全

本专题整合了word转换成ppt教程,阅读专题下面的文章了解更多详细操作。

6

2025.12.25

msvcp140.dll丢失相关教程
msvcp140.dll丢失相关教程

本专题整合了msvcp140.dll丢失相关解决方法,阅读专题下面的文章了解更多详细操作。

2

2025.12.25

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

6

2025.12.25

微信调黑色模式教程
微信调黑色模式教程

本专题整合了微信调黑色模式教程,阅读下面的文章了解更多详细内容。

5

2025.12.25

ps入门教程
ps入门教程

本专题整合了ps相关教程,阅读下面的文章了解更多详细内容。

4

2025.12.25

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

218

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.2万人学习

Django 教程
Django 教程

共28课时 | 2.4万人学习

Sass 教程
Sass 教程

共14课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号