Mogodb集群搭建
1、上传解压软件包
cd /home/dinpay/
解压:tar -zxvf mongodb-linux-x86_64-rhel62-3.2.2.tgz
重命名: mv mongodb-linux-x86_64-rhel62-3.2.2.tgz mongodb
1.在集群的机器上建立对应的data文件夹例如:/data/mongodb/replset/data
2.建立在mongodb目录新建启动配置文件mongodb.conf:
dbpath=/data/mongodb/replset/data logpath=data/mongodb/mongodb.log logappend=true fork=true journal=true oplogSize=2048 smallfiles=true replSet=repset port=27017
3.将mongodb.conf分别复制到集群其他的机器上对应的mongodb的目录下
4.分别在集群机器上启动mongodb
Mongod -f mongodb.conf
5.在集群任意一台机器上任意一台机器登陆mongodb;打开mongo终端,使用如下命令初始化:
use admin
config = {_id: 'repset', members: [{_id: 0, host: 'IP1:27017',priority:1},{_id: 1, host: 'IP2:27017',priority:2},{_id: 2, host: 'IP4:27017',priority:3},{_id: 3, host: 'IP4:27017',arbiterOnly:true}]}
rs.initiate(config);
rs.status(); #查看集群节点的状态
7.状态意义
“health” : 1, #代表机器正常
“stteStr” : “PRIMARY”, #代表是主节点,可读写,其中有以下几下状态:
STARTUP:刚加入到复制集中,配置还未加载
STARTUP2:配置已加载完,初始化状态
RECOVERING:正在恢复,不适用读
ARBITER: 仲裁者
DOWN:节点不可到达
UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂
REMOVED:移除复制集
ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态
FATAL:出错。查看日志grep “replSet FATAL”找出错原因,重新做同步
PRIMARY:主节点
8.添加仲裁节点
rs.addArb("192.168.200.25:27017")
9.添加节点
rs.add("192.168.200.25:27017")
8.删除节点
Rs.remove("192.168.200.25:27017")
注意:
所有的Secondary都宕机、或则副本集中只剩下一个节点,则该节点只能为Secondary节点,也就意味着整个集群智能进行读操作而不能进行写操作,当其他的恢复时,之前的primary节点仍然是primary节点。
当某个节点宕机后重新启动该节点会有一段的时间(时间长短视集群的数据量和宕机时间而定)导致整个集群中所有节点都成为secondary而无法进行写操作(如果应用程序没有设置相应的ReadReference也可能不能进行读取操作)。
官方推荐的最小的副本集也应该具备一个primary节点和两个secondary节点。两个节点的副本集不具备真正的故障转移能力。
最新文章
- 遍历list、set、map和array
- Sass初使用
- iOS AFNetworking内存泄漏处理方法
- DD_belatedPNG.js解决透明PNG图片背景灰色问题
- 【AngularJS学习笔记】00 序
- MFC + CxImage 实现自绘半透明按钮
- linuxmint更改权限
- 微软 深度学习 cntk ,我目前见过 安装方式最简单的一个框架,2.0之后开始支持C# 咯
- maven仓库--搭建局域网私服(windows版)
- Mysql实现企业级数据库主从复制架构实战
- PHP 5 SimpleXML 函数
- Alibaba Java开发手册索引规约学习笔记
- sp_change_users_login 'Update_One', '用户名', '登录名';
- 套接字编程,创建套接字socket
- 开源通用型渲染工具-SwiftShader--OpenGL的替代者
- C# 程序自动重启的解决方法
- hihoCoder #1143 : 骨牌覆盖问题·一
- NGUI与EasyTouch结合使用
- 理解域名插槽:slot-scope
- maven编译插件版本配置案例