整理mongodb文档:副本集二

个人博客

整理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.xdnf.cn/news/145460.html

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

相关文章

Windows下安装MySQL8详细教程

Windows下安装MySQL8详细教程 因为需要在Windows下安装MySQL8的数据库,做一个临时数据库环境。 1.准备软件 使用社区版本,下载地址如下: https://dev.mysql.com/downloads/mysql/ 使用8.0.16版本,需要在归档中查找 选择版本&a…

《Upload-Labs》01. Pass 1~13

Upload-Labs 索引前言Pass-01题解 Pass-02题解总结 Pass-03题解总结 Pass-04题解 Pass-05题解总结 Pass-06题解总结 Pass-07题解总结 Pass-08题解总结 Pass-09题解 Pass-10题解 Pass-11题解 Pass-12题解总结 Pass-13题解 靶场部署在 VMware - Win7。 靶场地址:https…

【数据结构】队列和栈

大家中秋节快乐,玩了好几天没有学习,今天分享的是栈以及队列的相关知识,以及栈和队列相关的面试题 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作…

嵌入式学习笔记(35)外部中断

6.9.1什么是外部中断 (1)内部中断就是指中断源来自于SoC内部(一般是内部外设),譬如串口、定时器等部件产生的中断;外部中断是SoC外部的设备,通过外部中断对应的GPIO引脚产生的中断。 (2)按键在SoC中就使用了外部中断…

【CMU15-445 Part-14】Query Planning Optimization I

Part14-Query Planning & Optimization I SQL is Declarative,只告诉想要什么而不需要说怎么做。 IBM System R是第一个实现query optimizer查询优化器的系统 Heuristics / Rules 条件触发 静态规则,重写query来remove 低效或者愚蠢的东西&#xf…

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

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

驱动开发:STM32F7控制AD5663模拟量输出

AD5663是ADI公司的一款DAC模块,用以实现两路模拟量信号输出。该芯片通过SPI通信来驱动。下面讲解使用STM32F7主控芯片来控制AD5663模拟量输出的流程。 配置STM32F7 SPI通信管脚 STM32CubeMX生成SPI驱动代码 /* SPI3 init function */ void MX_SPI3_Init(void) {/*…

阿里巴巴OceanBase介绍

前言 官网地址:https://www.oceanbase.com/ OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的国产原生分布式数据库。 2010年,创始人阳振坤加入阿里巴巴&…

UE5屏幕适配

一、本程序设计发布在手机上,首先确定屏幕的设计分辨率,这里我们选择iphone6s,750x1334。 二、设置DPI Scale为1.0的比例,点击齿轮标志 因为我们这个程序是手机竖屏使用的,所以DPI Scale Rule选择Shortest Side&#…

博弈论中静态博弈经典场景案例

博弈论中静态博弈经典场景案例 1、齐威王田忌赛马 田忌赛马是中国家喻户晓的故事,故事讲述的是齐国大将田忌的谋士孙膑如何运用计谋帮助田忌在与齐威王赛马时以弱胜强的故事,这个故事其实本质也是一个博弈的过程。     齐威王要和田忌赛马&#xff…

【MySQL】数据类型(二)

文章目录 一. char字符串类型二. varchar字符串类型2.1 char和varchar比较 三. 日期和时间类型四. enum和set类型4.1 set的查询 结束语 一. char字符串类型 char (L) 固定长度字符串 L是可以存储的长度,单位是字符,最大长度是255 MySQL中的字符&#xff…

CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明

国庆假期,闲着没事,在家研究技术~ 上一篇,我们介绍了动画剪辑、动画组件以及基本的使用流程,感兴趣的朋友可以前往阅读: CocosCreator 动画系统-动画剪辑和动画组件介绍。 今天,主要介绍动画编辑器相关功能…

【图论C++】树的重心——教父POJ 3107(链式前向星的使用)

》》》算法竞赛 /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在竞赛算法学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记:转载…

腾讯mini项目-【指标监控服务重构-会议记录】2023-07-21

2023-07-21 组长会议纪要 A组 文档学习差不多,还没掌握如何使用sdk进行上报venus启动服务的3个ToDo 添加什么错误处理 ErrHandler : fiber的错误处理,是运行过程Handler中的错误,在全局的ErrHandler,进行错误处理&am…

app专项测试:app弱网测试

背景 用户体验 APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验 非正常情况下,Bug出现几率会增加 在解决日常支持需求中,经常出现一些用户反馈的Bug无法复现,有很大部分…

线性代数(七) 矩阵分析

前言 从性线变换我们得出,矩阵和函数是密不可分的。如何用函数的思维来分析矩阵。 矩阵的序列 通过这个定义我们就定义了矩阵序列的收敛性。 研究矩阵序列收敛性的常用方法,是用《常见向量范数和矩阵范数》来研究矩阵序列的极限。 长度是范数的一个特…

三翼鸟三周年:三次升级,全面引领

被誉为“竞争战略之父”的迈克尔波特,曾提出过“差异化竞争”的理念。 简单说,企业在“差异化竞争”中要做到三大法则: 人无我有、人有我优、人有我新。 在许多优秀企业的身上,都能看到差异化的影子,比如华为、海尔…

CentOS 7 安装 Docker 的详细步骤

文章目录 Docker简介1.更新2.安装必要的软件包3.添加Docker仓库4.安装5.安装后的一些常规设置及常用的命令5.1 启动 Docker5.2 Docker 在系统启动时自动运行5.3 运行一个 Hello World 镜像5.4 查看docker运行状态5.5 docker ps5.6 查看docker版本 6.安装种常见的错误错误1:yum-…

黑马程序员Docker快速入门到项目部署(学习笔记)

目录 一、Docker简介 二、安装Docker 2.1、卸载旧版 2.2、配置Docker的yum库 2.3、安装Docker 2.4、启动和校验 2.5、配置镜像加速 2.5.1、注册阿里云账号 2.5.2、开通镜像服务 2.5.3、配置镜像加速 三、快速入门 3.1、部署MYSQL 3.2、命令解读 四、Docker基础 …

【分布式云储存】Springboot微服务接入MinIO实现文件服务

文章目录 前言技术回顾准备工作申请accessKey\secretKey创建数据存储桶公共资源直接访问测试 接入springboot实现文件服务依赖引入配置文件MinIO配置MinIO工具类 OkHttpSSLSocketClient兼容ssl静态资源预览解决方案资源上传预览测试测试结果 前言 上篇博客我们介绍了分布式云存…