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官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...
随机推荐
- ps 指令
ps显示系统当前进程信息, ps 存在多个版本,因此 ps options 的种类繁多.这里只列举平时开发过程中常用的命令,如果有错误或者更好的例子.烦请在评论区指出 语法 ps [options] ...
- SQLSERVER远程链接Oracle数据库
原文地址: http://blog.sina.com.cn/s/blog_45eaa01a0102ywuk.html 使用SQL链接服务器远程访问Oracle数据库 在本机上通过SQL数据库的链接 ...
- python3 内置方法 字符串转换为字典
内置方法:eval()将字符串转换为字典代码: str = '''{'backend':'www.oldboy.org', 'record':{ 'server':'122.111.2.23', 'w ...
- 如何编写snort的检测规则
如何编写snort的检测规则 2013年09月08日 ⁄ 综合 ⁄ 共 16976字 前言 snort是一个强大的轻量级的网络入侵检测系统.它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协 ...
- 基于【 springBoot +springCloud+vue 项目】一 || 项目架构简介
一.前言 基于前期学习以及工作经验积累,持续更新基于springboot+springcloud+vue的demo项目.
- echarts的一点记录
echart官网地址: https://www.echartsjs.com/index.html echarts实例地址:https://echarts.baidu.com/examples/ vue ...
- Java8常用示例
java.util.Map中的putIfAbsent.computeIfAbsent.computeIfPresent.compute的区别 探索Java8:(三)Predicate接口的使用 Has ...
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certificatio
场景:Java调用PHP接口,代码部署在服务器上后,调用报错,显示PHP服务器那边证书我这边服务器不信任(我猜的). 异常信息: 2019-08-06 14:00:09,102 [http-nio-4 ...
- Python函数Day2
一.函数补充 只有一个参数时,变量用argv 二.动态参数 为了拓展,对于传入的实参数量不固定,需要万能参数,即动态参数 *args **kwargs 在函数定义时,在 *args为位置参数,起聚合的 ...
- 一份数据分析学习清单.xls
今天给大家整理一份数据分析的学习清单,打算了解学习这方面的同学可以看看,基本上大的需要学习的点都有涉及:具体细节知识的学习建议大家亲自去动手制作思维导图,自己动手梳理知识脉络. 上期入口:18个堪称神 ...