整理mongodb文档:副本集二

news2024/11/28 3:45:54

个人博客

整理mongodb文档:副本集二

个人博客,求推荐,本片内容较为乱

文章概叙

本文章主要讲在MongoDB的副本集中的一些注意点,主要是如何对seconadry进行数据操作,以及对更新数据的一些介绍

查看当前节点

上一集讲了关于搭建一个副本集的,接着延续上级的操作,分别使用

.\mongosh mongodb://localhost:27017
.\mongosh mongodb://localhost:27018

来链接我们的Primary以及Secondary两个节点,当前情况下,27018为我们的Primary,而27017为Secondary

在这里插入图片描述

也可以直接使用rs.isMaster指令查看当前的节点是否为Primary

在这里插入图片描述

Secondary 设置允许访问

前面提及到了,在我们副本集的Secondary中,是无法做读写操作的,当我们操作的时候,会显示出下面的错误,而slaveok可以让我们操作MongoDB的Secondary。

在这里插入图片描述

而在4.2之后的mongdob中,我们需要使用rs.secondaryOk设置Secondary允许访问,而4.2之前则是使用slaveOk(),详情请看下方的截图
其中,提示提及到了read preference的,在关于读写分离介绍的时候再描述一次
在这里插入图片描述

接着,在Secondary中查询

db.collection27017.find()

显示的结果如下图所示,我们完成了在Secondary中实现读写的操作
在这里插入图片描述

oplog库与Secondary的数据更新

按照我们的经验,副本集中Secondary的数据更新是根据local库中的oplog进行更新的,部分小伙伴会觉得我们再非副本集下的数据会在设置为副本集的时候同步上去,因此下方的代码就验证非副本集下的db会不会被同步。

上一次,我们在副本集的加持下,让两个Secondary能完美的拷贝到Primary的数据,现在解散我们的副本集,也就是分别启动两个服务并且使他们没有任何的关联,且在其中的一个库中加入一条数据,即
在这里插入图片描述

此时,再打开副本集,看看是否会将那条数据同步过去,且需要注意将27018设置为Primary(先启动27018,则27018会被设置为副本集的Primary)

在这里插入图片描述

很遗憾,并不会同步过去,而此时我们再往Primary中加入一条新的数据。

此时的Primary中添加的新数据,成功被拷贝到Secondary,因此我们可以得出结论。当一个副本集更新数据的时候,只会更新那些在副本集状态下的sql。
而oplog的信息,存放在local下的oplog中。

在这里插入图片描述

也可以使用如下的指令敲出来,当然需要先到local库中。

use local
db.oplog.rs.find()

在这里插入图片描述

初始化已有数据的库

上述场景中,我们模拟了一个当副本集断开时,往其中一个库插入数据,是否在副本集选举之后会将数据拷贝的情况,很遗憾并没有将数据更新到Secondary中,而接下来的场景,会测试在搭建副本集前,如果Primary库已经有数据的情况下,是否会将Primary库中的数据复制到Secondary中去。

首先,启动一个端口为27020的MongoDB服务,接着创建了一个测试的库,并且塞入一条数据。

在这里插入图片描述

接着,按照之前的操作顺序,创建一个副本集,并且设置27020为Primary,接着进入Primary看下设置副本集时,会不会清空MongoDB的服务,可以看到数据还在。
在这里插入图片描述

接着,再登陆Secondary看看是否会将数据复制过去。
在这里插入图片描述

可以看到,在设置副本集之前的数据,在 Primary中是可以保存的。
而当Primary为 空,但Secondary又有数据的时候,初始化我们的副本集,会将Secondary清空还是保留数据呢?这点建议大家自己试试,加深理解。

注意点

rs.slaveOk已经是退出舞台的了,基本在新版本中不会使用到,需要注意下用secondaryOk代替。

一般来说,在Secondary实现读写,都是违背祖宗的规定,万不得已,千万不能违背老一辈呀,除非老板开口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1052631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】CSS

CSS 文章目录 CSS语法引入方式内部样式表行内样式表外部样式 选择器基础选择器标签选择器类选择器id选择器通配符选择器 复合选择器后代选择器伪类选择器链接伪类选择器 字体设置设置文本颜色粗细样式文本对齐 背景背景颜色背景平铺背景尺寸 圆角矩形元素显示模式块级元素 盒模…

【Linux】进程控制基础知识

目录 一,fack回顾 二,进程终止 1.进程终止,操作系统做了什么? 2.进程终止,常见的方式 1.main函数的,return 返回码 2. exit()函数 三,进程等待 1. 回收进程方法 (1. wait…

cola 架构简单记录

cola 是来自张建飞(Frank)的偏实现的技术架构,里面的业务身份和扩展点也被MEAF引用,cola本身由java 实现、但其实可以是一种企业通用的技术架构。 业务身份来源 https://blog.csdn.net/significantfrank/article/details/8578556…

Jasypt 实现自定义加解密

如下文章已经讲解了, Jasypt 是什么,怎么集成 Jasypt,怎么使用 Jasypt。 Jasypt 开源加密库使用教程_jasyptstringencryptor-CSDN博客Jasypt 加密框架概述1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持,…

Linux开发工具之文本编译器vim

●IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行&#xff…

Windows电脑显示部分功能被组织控制

目录 问题描述 解决方法 总结 问题描述 如果你的电脑出现以上情况,建议你使用我这种方法(万不得已) 解决方法 原因就是因为当时你的电脑在激活的时候是选择了组织性激活的,所以才会不管怎么搞,都无法摆脱组织的控…

发布以太坊测试网络中的第一笔交易

1.安装以太坊钱包 要想发送发布以太坊测试网络中的第一笔交易,首先需要创建一个管理账户的钱包,这个钱包可以理解为管理私钥的容器,具体按照步骤为:打开Chrome浏览器应用商店搜索MetaMask,选择对应的钱包添加至Chrome…

提升API文档编写效率,Dash for Mac是你的不二之选

在编写和开发API文档的过程中,你是否经常遇到查找困难、管理混乱、效率低下等问题?这些都是让人头疼的问题,但现在有了Dash for Mac,一切都将变得简单而高效。 Dash for Mac是一款专为API文档编写和管理设计的工具,它…

SpringBoot 中使用JPA

最近忙里偷闲,想写一点关于JPA的东西,另外也加深下对JPA的理解,才有了此篇博文。 一、JPA JPA (Java Persistence API)Java持久化API,是一套Sun公司Java官方制定的ORM 规范(sun公司并没有实现…

【Java】对象内存图多个对象同一内存地址

目录 学生类 单个对象内存图 多个对象指向同一个内存地址 学生类 Student.java如下: package com.面向对象;public class Student {String name;int age;public void work() {System.out.println("开始敲代码...");} }StudentDemo.java如下&#xff…

MAC地址震荡,STP震荡,OSPF路由协议震荡

目录 一.MAC地址震荡 原因 二层环路 三层环路 避免三层环路的方法 1.最小化路由汇总 2.null0路由 二.STP震荡 原因 三.路由协议震荡 OSPF路由协议震荡 BGP路由震荡 一.MAC地址震荡 原因 MAC地址表震荡也称为MAC地址漂移,是由网络环路造成的&#xff1…

【数据结构篇】堆

文章目录 堆前言基本介绍认识堆堆的特点堆的分类堆的操作堆的常见应用 堆的实现JDK 自带的堆手动实现堆 堆 前言 本文主要是对堆的一个简单介绍,如果你是刚学数据结构的话,十分推荐看这篇文章,通过本文你将对堆这个数据结构有一个大致的了解…

No164.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

怒刷LeetCode的第20天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:回溯算法 方法二:permute方法 方法三:交换法 第二题 题目来源 题目内容 解决方法 方法一:回溯算法 方法二:递归和交换 方法三:二维列表 第三…

NLP 04(GRU)

一、GRU GRU (Gated Recurrent Unit)也称门控循环单元结构,它也是传统RNN的变体,同LSTM一样能够有效捕捉长序列之间的语义关联, 缓解梯度消失或爆炸现象,同时它的结构和计算要比LSTM更简单,它的核心结构可以分为两个部分去解析: 更新门、重置门 GRU的内…

苹果iPhone手机使用草柴返利APP查询领取淘宝天猫京东优惠券如何取消关闭粘贴商品链接时的弹窗提示?

使用苹果手机在淘宝或京东复制商品链接,到草柴APP粘贴时总是弹窗提示,如何关闭苹果手机粘贴弹窗的提示? 苹果手机如何关闭粘贴弹窗提示? 1、在草柴APP内,点击底部「我的」接着点击「系统设置」进入; 2、进…

【数据结构和算法】--N叉树中,返回某些目标节点到根节点的所有路径

目录 一、前言二、具体实现及拓展2.1、递归-目标节点到根节点的路径数据2.2、list转换为tree结构2.3、tree转换为list结构 一、前言 这么多年工作经历中,“数据结构和算法”真的是超重要,工作中很多业务都能抽象成某种数据结构问题。下面是项目中遇到的…

MDK报错:Undefined symbol assert_failed报错解决策略

MDK报错:Undefined symbol assert_failed报错解决策略 🎯🪕在全网搜索相关MDK编译报错:Error: L6218E: Undefined symbol assert_param (referred from xxx.o). ✨有些问题看似很简单,可能产生的问题是由于不经意的细节原因导致。…

16.PWM输入捕获示例程序(输入捕获模式测频率PWMI模式测频率和占空比)

目录 输入捕获相关库函数 输入捕获模式测频率 PWMI模式测频率和占空比 两个代码的接线图都一样,如下 测量信号的输入引脚是PA6,信号从PA6进来,待测的PWM信号也是STM32自己生成的,输出引脚是PA0。 需要配置电路连接图示如下&…

Grafana 开源了一款 eBPF 采集器 Beyla

eBPF 的发展如火如荼,在可观测性领域大放异彩,Grafana 近期也发布了一款 eBPF 采集器,可以采集服务的 RED 指标,本文做一个尝鲜介绍,让读者有个大概了解。 eBPF 基础介绍可以参考我之前的文章《eBPF Hello world》。理…