《NoSQL数据库技术与应用》 MongoDB副本集
《NoSQL数据库技术与应用》
教学设计
课程名称:NoSQL数据库技术与应用
授课年级: 20xx年级
授课学期: 20xx学年第一学期
教师姓名: 某某老师
2020年5月6日
课题
名称 第4章 MongoDB副本集 计划学时 8课时
内容
分析 独立模式可以简单且快速的构建MongoDB数据库系统,然而独立模式存在弊端,即一旦MongoDB发生宕机,将会面临数据丢失的风险,这在生产环境中是不允许发生的,此时我们可以利用MongoDB提供的高可用机制,即复制。MongoDB支持两种复制类型:传统的主/从复制和副本集,副本集可以理解为传统主/从复制的一种复杂形式,支持自动故障恢复功能,拥有更高的可用性,是MongoDB部署中的一种推荐方法。因此,本章将针对MongoDB副本集进行详细介绍和部署。
教学目标及基本要求 1、了解MongoDB副本集
2、熟悉MongoDB副本集成员
3、掌握MongoDB副本集部署
4、掌握MongoDB副本集操作
5、理解副本集机制
教学
重点 1、副本集概述
2、副本集成员
3、部署副本集
4、查看副本集成员状态
5、同步副本文档
6、故障转移
7、配置副本集成员
8、安全认证
9、副本集机制
教学
难点 1、部署副本集
2、配置副本集成员
3、安全认证
教学
方式 教师课堂教学要以PPT讲授为主,并结合多媒体进行教学
教
学
过
程
第一课时
(副本集概述、副本集成员)
一、情景导入
- 教师通过举例,引出副本集
副本集(Replica Set)是一组MongoDB实例保持其相同数据集的集群,由一个主(Primary)服务器和多个副本(Secondary)服务器构成。通过复制(Replication)将数据的更新由主服务器推送到其它副本服务器上,在一定的延迟之后,达到每个MongoDB实例维护相同的数据集副本。 - 明确学习目标
(1)熟悉副本集概述
(2)掌握副本集成员
二、进行重点知识讲解
1.副本集概述
教师可以参考课件进行讲解副本集及副本集功能,对这些内容做重点介绍。
2.副本集成员
教师可以参考课件进行讲解副本集成员结构、副本集成员和oplog,对这些内容做重点介绍。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述副本集概述和副本集成员的理解。
第二、三课时
(部署副本集)
一、回顾上节课内容,讲述部署副本集
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
上一节课,我们对MongoDB副本集有了初步认知。本节课,按照官方推荐方案,我们搭建一个三成员的副本集,这个副本集由一个主节点和两个副本节点组成。
3.明确学习目标
(1)熟悉部署MongoDB副本集的环境准备
(2)掌握副本集的安装与启动
(3)掌握副本集的初始化
二、进行重点知识的讲解
1. 环境准备
教师可以参考课件以讲演法的方式来讲述副本集部署前的环境准备。
(1)启动三台Linux虚拟机。
(2)介绍各服务器基本信息,规划副本集各服务器的角色分配。
(3)创建副本集相关目录并更改目录用户权限。
2. 副本集的安装与启动
教师可以参考课件以讲演法的方式来讲述副本集的安装与启动。
(1)讲解并操作安装副本集,首先将MongoDB安装包上传到服务器,修改安装包用户权限。接下来通过解压的方式安装MongoDB,然后重命名MongoDB安装目录,最终将MongoDB相关目录和安装目录分发到集群中其它服务器。
(2)讲解并操作启动副本集,首先进入三台服务器中MongoDB的bin目录,然后以命令行参数方式启动副本集模式的MongoDB实例,最终查看MongoDB实例是否成功启动。
3. 副本集的初始化
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB集合的操作。
(1)讲解并操作登录服务器nosql01的客户端
(2)讲解并操作副本集初始化操作
(3)讲解并操作将服务器nosql02和服务器nosql03以副本节点添加到副本集。
(4)讲解通过配置变量的方式初始化副本集。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述副本集安装与初始化的步骤。
第四课时
(查看副本集成员状态、同步副本文档、故障转移)
一、回顾上节课内容,讲述本节课学习内容
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
上一节课,我们完成副本集的部署并成功启动副本集,本节课,我们将讲解如何查看副本集成员状态、验证副本集文本同步及故障自动转移。
3.明确学习目标
(1)掌握查看副本集成员状态
(2)了解如何验证同步副本文档
(3)了解如何验证自动故障转移
二、进行重点知识的讲解
- 查看副本集成员状态
教师可以参考课件以讲演法的方式来讲述查看副本集成员状态操作。
(1)讲解副本集成员状态。
(2)讲解和操作如何在副本集主节点的MongoDB客户端查看副本集成员状态。
(3)讲解副本集成员状态信息中的参数。
(4)简要讲解副本集成员状态的回滚。 - 同步副本文档
教师可以参考课件以讲演法的方式来讲述验证同步副本文档操作。
(1)讲解并操作在服务器nosql01的MongoDB客户端写入一条文档。
(2)讲解并操作在服务器nosql02的MongoDB客户端中是否可以查看到相同的文档内容,并对副本节点无法查看副本集内容做详细讲解。 - 故障转移
教师可以参考课件以讲演法的方式来讲述故障自动转移操作操作。
(1)讲解并操作服务器nosql01中副本集主节点的MongoDB实例。
(2)讲解并操作登录服务器nosql02和服务器nosql03中的MongoDB客户端,验证是否启动一台服务器变更为主节点。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述副本集成员状态都有哪些,以及如何验证副本同步与自动故障转移。
第五课时
(配置副本集成员)
一、回顾上节课内容,讲述配置副本集成员
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
实际使用过程中,随着需求的变化我们会对副本集成员的配置进行更改,例如修改成员优先级、选举权和更改成员角色等操作。本节课,我们将详细讲解如何修改副本集成员。
3.明确学习目标
(1)掌握获取副本集成员配置信息
(2)掌握调整副本集成员优先级
(3)掌握配置隐藏节点和延迟节点
(4)掌握配置副本集成员投票权
(5)掌握将副本节点转为仲裁节点
二、进行重点知识的讲解
- 获取副本集成员配置信息
教师可以参考课件以讲演法的方式来讲述获取副本集成员配置信息操作。
(1)讲解和操作如何在副本集主节点的MongoDB客户端获取副本集成员配置信息并赋值到变量便于后续配置副本集成员。
(2)讲解副本集成员配置信息中的参数。 - 调整副本集成员优先级
教师可以参考课件以讲演法的方式来讲述调整副本集成员优先级操作。
(1)讲解成员优先级的作用。
(2)讲解并操作调整服务器nosql01中副本集成员的优先级。
(3)讲解并操作将调整操作应用到副本集,查看服务器nosql01中副本集成员角色状态是否发生变化。 - 配置隐藏节点和延迟节点
教师可以参考课件以讲演法的方式来讲述配置隐藏节点和延迟节点操作。
(1)讲解隐藏节点和延迟节点的作用。
(2)讲解并操作将服务器nosql02中的副本集成员配置为隐藏节点。
(3)讲解并操作将服务器nosql03中的副本集成员配置为延迟节点。 - 配置副本集成员投票权
教师可以参考课件以讲演法的方式来讲述配置副本集成员投票权操作。
(1)讲解成员投票权的作用。
(2)操作并演示配置服务器nosql02中副本集成员的投票权。 - 将副本节点转为仲裁节点
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB按条件查询操作。
(1)讲解并演示如何将服务器nosql02中的副本成员更换为仲裁节点。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述优先级和投票权的作用,如何配置隐藏和延迟节点。
第六课时
(安全认证)
一、回顾上节课内容,讲述聚合操作
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
默认情况下部署的MongoDB副本集不会开启安全认证功能,这样会对副本集的安全带来一定影响,任何人都可以操作副本集,这在生产环境中是不允许发生的。MongoDB 副本集之间通信有两种安全认证机制,一种是通过KeyFile,另外一种是通过证书x.509,官网推荐使用证书的方式,不过我们这里搭建测试和开发环境没必要去弄证书,因此我们直接通过配置KeyFile就可以实现安全通信,不过在生产环境中推荐使用证书x.509。
3.明确学习目标
(1)了解副本集安全认证机制
(2)掌握开启副本集安全认证
(3)掌握副本集安全认证操作
二、进行重点知识的讲解
- 副本集安全认证机制
教师可以参考课件进行讲解副本集两种安全认证的机制并对KeyFile密钥文件做详细介绍。 - 开启副本集安全认证
教师可以参考课件以讲演法的方式来讲述开启副本集安全认证操作。
(1)讲解并操作创建KeyFile文件并写入密钥内容。
(2)讲解并操作在各服务器间同步KeyFile文件。
(3)讲解并操作在开启副本集安全认证前创建全局管理用户。
(4)讲解并操作重启副本集,分别不指定用户和指定全局管理用户来验证安全认证是否启动成功。
(5)讲解root权限用户对开启安全认证的副本集作用。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述聚合管道操作的表达式和语法以及Map-Reduce操作流程。
第七课时
(副本集机制)
一、回顾上节课内容,讲述副本集机制
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
本节课将讲解副本集的几个重要机制,分别是同步机制、选举机制和心跳检测机制。
3.明确学习目标
(1)了解同步机制
(2)了解选举机制
(3)了解心跳检测机制
二、进行重点知识的讲解
- 同步机制
教师可以参考课件讲解副本集同步机制。 - 选举机制
教师可以参考课件讲解副本集选举机制。 - 心跳检测机制
教师可以参考课件讲解副本集心跳检测机制。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述对同步机制、选举机制和心跳检测机制的理解。
第八课时
(上机练习)
上机一:副本集部署
请按照教材中4.3小节的内容,独立完成。
上机二:副本集操作
请按照教材中4.4小节的内容,独立完成。
思考题
和习题
教
学
后
记
相关文章:
《NoSQL数据库技术与应用》 MongoDB副本集
《NoSQL数据库技术与应用》 教学设计 课程名称:NoSQL数据库技术与应用 授课年级: 20xx年级 授课学期: 20xx学年第一学期 教师姓名: 某某老师 2020年5月6日 课题 名称 第4章 MongoDB副本集 计划学时 8课时 内容 分析 独立模式可…...
Flutter 中的 DropdownButtonFormField 小部件:全面指南
Flutter 中的 DropdownButtonFormField 小部件:全面指南 在Flutter中,DropdownButtonFormField是一个特殊的表单字段小部件,它结合了下拉选择框(DropdownButton)和表单字段(FormField)的功能。…...
哈希算法教程(个人总结版)
背景 哈希算法(Hash Algorithm)是一种将任意长度的输入(也称为消息)转换为固定长度的输出(也称为哈希值、散列值、摘要)的算法。哈希算法在计算机科学中有着广泛的应用,包括数据存储、数据检索…...

Nocobase快速上手 -第一个collection
本文记录Nocobase中如何创建collection,以及如何将collection展示到页面中,并且配置CRUD相应的操作. Collection 在NocoBase中,collection(集合)是用来组织和存储各种数据的容器,如订单、产品、用户、评论…...

吴恩达2022机器学习专项课程C2W2:2.19 sigmoid函数的替代方案 2.20如何选择激活函数 2.21 激活函数的重要性
这里写目录标题 引言sigmoid激活函数的局限1.回顾需求案例2.ReLU激活函数 常用的激活函数1.线性激活函数的解释 如何选择激活函数?1.选择输出层的激活函数2.选择隐藏层的激活函数 选择激活函数的总结1.输出层总结2.隐藏层总结3.TensorFlow设置激活函数 激活函数多样…...
循序渐进Docker Compose
文章目录 1.概述1.1 Docker Compose 定义1.2 Docker Compose背景1.3 Docker Compose核心概念 2.安装2.1 Official Repos2.2 Manual Installation2.3 v1.x 兼容性 3. YAML 配置说明3.1 Services3.2 Volumes & Networks 4. 解析 Service4.1 Pulling一个Image4.2 Building一个…...

怎样查看JavaScript中没有输出结果的数组值?
在JavaScript中,可以方便地定义和使用数组,对于已经定义的数组,怎样查看其值呢? 看下面的示例,并运行它。 上面的示例中,标签不完整,请补充完整再试运行。你知道少了什么标签么? 注…...
强化学习学习笔记-李宏毅
Policy Gradient actorenvreward function,env和reward是不能控制的,唯一可以变的是actor,Policy π \pi π是一个网络,参数为 θ \theta θ,输入是当前的观察,输出是采取的行为,例如游戏中输…...

吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.8-3.9
目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter …...

SQL 语言:数据控制
文章目录 概述授权(GRANT)销权(REVOKE)总结 概述 SQL语言中的数据控制权限分配是数据库管理的重要组成部分,它涉及到如何合理地为用户分配对数据库资源的访问和使用权限。 权限类型:在SQL中,权限主要分为…...

『ZJUBCA Weekly Feed 07』MEV | AO超并行计算机 | Eigen layer AVS生态
一文读懂MEV:区块链的黑暗森林法则 01 💡TL;DR 这篇文章介绍了区块链中的最大可提取价值(MEV)概念,MEV 让矿工和验证者通过抢先交易、尾随交易和三明治攻击等手段获利,但也导致网络拥堵和交易费用增加。为了…...
正点原子延时函数delay_ms延时失效的原因
1、问题陈述 今天在测试小车程序的时候使用了如下代码,发现延时并没有达到期望的4s,而是仅仅延时了0.4s左右,本来以为少加了个0,最后在我多次测试下来,发现在延时大约超过2s的时候就会失效。 while(1){Set_Pwm(6000,60…...
MySQL 满足条件函数中使用查询最大值函数
在实际的数据库操作中,我们常常需要根据某些条件找到最大值并据此进行下一步的操作。例如,在一个包含订单信息的表中,可能需要找到特定客户的最大订单金额,并据此进行某些统计或决策。MySQL 提供了多种函数和查询方法,…...

Java | Leetcode Java题解之第101题对称二叉树
题目: 题解: class Solution {public boolean isSymmetric(TreeNode root) {return check(root, root);}public boolean check(TreeNode u, TreeNode v) {Queue<TreeNode> q new LinkedList<TreeNode>();q.offer(u);q.offer(v);while (!q.…...

【区块链】智能合约漏洞测试
打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…...

大模型主流 RAG 框架TOP10
节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...

第八次javaweb作业
我们小组课程设计的题目是:超市管理系统,我认领的模块是:商品信息管理 controller package com.example.supermarker.controller;import com.example.supermarker.pojo.MerchInfo; import com.example.supermarker.pojo.PageBean; import c…...
js积累四 (读json文件)
function ReadRadioJson() {var url "../radio.json" //json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…...

关于我转生从零开始学C++这件事:升级Lv.25
❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…...

mysql中text,longtext,mediumtext区别
文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中,text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT:TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...