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官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...
随机推荐
- Python中使用列表的一部分——参考Python编程从入门到实践
处理列表中的部分元素——切片 1. 切片 players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[0: ...
- Ubuntu中更改默认的root用户密码,以及怎样修改用户密码
新安装的Ubuntu系统中默认的root用户密码是多少?该怎么修改? 如题,相信许多刚接触Ubuntu系统的新手大多会遇到这个问题,那么我们该如何解决这个问题呢?Ubuntu在安装过程中并没有让我们设 ...
- net namespace实验
Net namespace实验 在 Linux 中,网络名字空间可以被认为是隔离的拥有单独网络栈(网卡.路由转发表.iptables)的环境.网络名字空间经常用来隔离网络设备和服务,只有拥有同样网络名 ...
- CH08 QSPI启动并从EMMC运行APP
8.1 概述 在前一节课,我们必须手动挂载TF卡到mnt,然后输入./a.out程序才能启动.而在嵌入式系统里面,我们很多时候需要实现开机启动程序.很多时候我们会把程序固化到FLASH,然后从EMMC ...
- session和cookie有什么区别?
1.存储位置不同 cookie的数据信息存放在客户端浏览器上. session的数据信息存放在服务器上. 2.存储容量不同 单个cookie保存的数据<=4KB,一个站点最多保存20个Cooki ...
- 是否应该学习qt源码(碰到问题的时候,或者文档对函数描述不清楚的时候,可以看一下)
是否应该学习qt源码 如果你想调用某个函数,但是文档并没有清晰描述这个函数的功能的时候,你就需要去阅读源码,看看Qt究竟是怎么实现的.比如用QNetworkAccessManager发送一个QHttp ...
- C#进阶系列——WebApi接口返回值类型详解
阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T content) 2.Ok(). Ok(T content) 3.NotFound() 4.其他 5.自定义I ...
- 解决Vs控制台程序出现NuGet\profile.ps1,因为在此系统上禁止运行脚本错误时或提示:“无法加载文件 \.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.1.0-preview4-final\tools\init.ps1,因为在此系统上禁止运行脚本”
1,打开Windows PowerShell 2.输入 set-executionpolicy remotesigned 即可执行脚本 如果执行命令失败的话重新选择Windows PowerShell ...
- axios 发 post 请求,后端接收不到参数的解决方案(转载)
原文地址:https://www.cnblogs.com/yiyi17/p/9409249.html 问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: ...
- vue导出Excel文件
1.需要安装file-saver和script-loader.xlsx npm install file-saver / yarn add file-saver npm install script- ...