MongoDB 副本集主从切换方法
一、方法一rs.setpDown()
将Primary节点降级为Secondary节点
myapp:PRIMARY> rs.stepDown()
这个命令会让primary降级为Secondary节点,并维持60s,如果这段时间内没有新的primary被选举出来,这个节点可以要求重新进行选举。
也可手动指定时间
myapp:PRIMARY> rs.stepDown(30)
在执行完该命令后,原Secondary node3:27017升级为Primary。
二、方法二优先级设置
思路:
1.为了保证数据的一致性,必须先关闭应用的写服务。
2.提升要升级为Primary节点的Secondary节点的优先级。
操作如下:
点击(此处)折叠或打开
- arps:PRIMARY> config=rs.conf() //查看当前配置,存入config变量中。
- arps:PRIMARY> config.members[2].priority = 3 //修改config变量,第三组成员的优先级为3.
- arps:PRIMARY> rs.reconfig(config) //配置生效
- ......
- ......
- 2017-12-22T15:19:56.596+0800 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
- 2017-12-22T15:19:56.597+0800 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok
- arps:SECONDARY> rs.conf() //查看当前配置
- {
- "_id" : "arps",
- "version" : 4,
- "members" : [
- {
- "_id" : 0,
- "host" : "172.17.4.37:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 1,
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- },
- {
- "_id" : 1,
- "host" : "172.17.4.38:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 1,
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- },
- {
- "_id" : 2,
- "host" : "172.17.4.39:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 3, //优先级变为3
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- }
- ],
- "settings" : {
- "chainingAllowed" : true,
- "heartbeatTimeoutSecs" : 10,
- "getLastErrorModes" : {
- },
- "getLastErrorDefaults" : {
- "w" : 1,
- "wtimeout" : 0
- }
- }
- }
- arps:SECONDARY> rs.status()
- {
- "set" : "arps",
- "date" : ISODate("2017-12-22T07:25:04.641Z"),
- "myState" : 2,
- "syncingTo" : "172.17.4.39:27017",
- "members" : [
- {
- "_id" : 0,
- "name" : "172.17.4.37:27017",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 7597536,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "syncingTo" : "172.17.4.39:27017",
- "configVersion" : 4,
- "self" : true
- },
- {
- "_id" : 1,
- "name" : "172.17.4.38:27017",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 7597426,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "lastHeartbeat" : ISODate("2017-12-22T07:25:02.961Z"),
- "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.091Z"),
- "pingMs" : 0,
- "syncingTo" : "172.17.4.39:27017",
- "configVersion" : 4
- },
- {
- "_id" : 2,
- "name" : "172.17.4.39:27017",
- "health" : 1,
- "state" : 1,
- "stateStr" : "PRIMARY", //最后一个节点升级为PRIMARY
- "uptime" : 3202,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "lastHeartbeat" : ISODate("2017-12-22T07:25:02.951Z"),
- "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.344Z"),
- "pingMs" : 0,
- "electionTime" : Timestamp(1513927190, 2),
- "electionDate" : ISODate("2017-12-22T07:19:50Z"),
- "configVersion" : 4
- }
- ],
- "ok" : 1
- }
MongoDB 副本集主从切换方法的更多相关文章
- mongodb副本集自动切换修复节点解决方案
副本集部署 1.启动mongod 在每台运行mongod服务的机器上增加配置文件/etc/mongodb-rs.conf,内容为: [root@MongodbF-A etc]# vi /etc/mon ...
- mongodb replication set 主从切换
今天被问到mongodb副本集主从切换的问题,然后发现没有相关命令的中文文档,这里翻译记录一下 rs.stepDown() rs.stepDown(stepDownSecs, secondaryCat ...
- mongodb副本集高可用架构
一.简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点. Mongodb Driver(客户端)的所有数据都写入Primary,Sec ...
- mongodb副本集实现
目录 1. 简单介绍 primary: secondary: arbiter: 2.系统环境设置: 3.安装mongodb 安装mongodb 增加配置文件: 添加启动脚本 3. 副本集实现: 1. ...
- MongoDB 副本集的原理、搭建、应用
概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
- nodejs+mongoose操作mongodb副本集实例
继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目 express 项目名称 2:npm install mongoose 安装mongo ...
- linux上安装MongoDB副本集(带keyfile安全认证以及用户权限)
搭建前准备 MongoDB版本:4.0 主要参考搭建MongoDB副本集网站:https://www.jianshu.com/p/f021f1f3c60b 安装之前最好先确定一下几点: 防火墙关闭 M ...
- MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录
Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...
随机推荐
- 机器学习之softmax回归笔记
本次笔记绝大部分转自https://www.cnblogs.com/Luv-GEM/p/10674719.html softmax回归 Logistic回归是用来解决二类分类问题的,如果要解决的问题是 ...
- Linux查询命令帮助信息(知道)
方法一 command --help 方法二 man command 操作涉及到的按键: 空格键:显示手册的下一屏 Enter键:一次滚动手册的一行 b:回滚一屏 f:前滚一屏 q:退出 结果基本上全 ...
- 基于socketserver实现并发的socket套接字编程
一.基于TCP协议 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) 1.1 ...
- SRID (空间引用识别号, 坐标系)【转】
SRID (空间引用识别号, 坐标系)-云栖社区-阿里云 Spatial Reference List -- Spatial Reference Chapter 8. PostGIS Referenc ...
- [Luogu5324][BJOI2019]删数(线段树)
CF风格题,先猜结论,记数列中i这个数共出现了cnt[i]次,那么所有区间[i-cnt[i]+1,i]的并集的补集大小就是答案. 于是我们只需要线段树维护每个位置是否被某个区间覆盖到即可,对于整体加减 ...
- js基本用法
1. 在HTML里面加入JavaScript 方法非常简单,就是通过一对<script></script>标签,然后在标签里面书写代码即可 2. 标签位置 按照以前传统的方法, ...
- JacksonJson的使用
JacksonJson是SpringMVC内置的json处理工具,其中有一个ObjectMapper类,可以方便的实现对json的处理: //对象转字符串 // json处理工具 private Ob ...
- weblogic jdbc 相关概念介绍
weblogic jdbc 是什么? 如何配置? 常见问题? 如何监控?
- IO模型之BIO代码详解及其优化演进
一.BIO简介 BIO是java1.4之前唯一的IO逻辑,在客户端通过socket向服务端传输数据,服务端监听端口.由于传统IO读数据的时候如果数据没有传达,IO会一直等待输入传入,所以当有请求过来的 ...
- C#为什么要装箱和拆箱
来自论坛4楼的回答非常棒,地址:https://bbs.csdn.net/topics/390624164?page=1 内容如下: 道理很简单,按理说C#被设计成一种完全面向对象的语言.因此,包括数 ...