《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)个字符的文本数据。如果存储的数据…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
