《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讲授为主,并结合多媒体进行教学



第一课时
(副本集概述、副本集成员)
一、情景导入

  1. 教师通过举例,引出副本集
    副本集(Replica Set)是一组MongoDB实例保持其相同数据集的集群,由一个主(Primary)服务器和多个副本(Secondary)服务器构成。通过复制(Replication)将数据的更新由主服务器推送到其它副本服务器上,在一定的延迟之后,达到每个MongoDB实例维护相同的数据集副本。
  2. 明确学习目标
    (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. 查看副本集成员状态
    教师可以参考课件以讲演法的方式来讲述查看副本集成员状态操作。
    (1)讲解副本集成员状态。
    (2)讲解和操作如何在副本集主节点的MongoDB客户端查看副本集成员状态。
    (3)讲解副本集成员状态信息中的参数。
    (4)简要讲解副本集成员状态的回滚。
  2. 同步副本文档
    教师可以参考课件以讲演法的方式来讲述验证同步副本文档操作。
    (1)讲解并操作在服务器nosql01的MongoDB客户端写入一条文档。
    (2)讲解并操作在服务器nosql02的MongoDB客户端中是否可以查看到相同的文档内容,并对副本节点无法查看副本集内容做详细讲解。
  3. 故障转移
    教师可以参考课件以讲演法的方式来讲述故障自动转移操作操作。
    (1)讲解并操作服务器nosql01中副本集主节点的MongoDB实例。
    (2)讲解并操作登录服务器nosql02和服务器nosql03中的MongoDB客户端,验证是否启动一台服务器变更为主节点。
    三、归纳总结,随堂练习,布置作业
    对课堂上讲解的知识点进行总结,让学生叙述副本集成员状态都有哪些,以及如何验证副本同步与自动故障转移。

第五课时
(配置副本集成员)
一、回顾上节课内容,讲述配置副本集成员
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
实际使用过程中,随着需求的变化我们会对副本集成员的配置进行更改,例如修改成员优先级、选举权和更改成员角色等操作。本节课,我们将详细讲解如何修改副本集成员。
3.明确学习目标
(1)掌握获取副本集成员配置信息
(2)掌握调整副本集成员优先级
(3)掌握配置隐藏节点和延迟节点
(4)掌握配置副本集成员投票权
(5)掌握将副本节点转为仲裁节点
二、进行重点知识的讲解

  1. 获取副本集成员配置信息
    教师可以参考课件以讲演法的方式来讲述获取副本集成员配置信息操作。
    (1)讲解和操作如何在副本集主节点的MongoDB客户端获取副本集成员配置信息并赋值到变量便于后续配置副本集成员。
    (2)讲解副本集成员配置信息中的参数。
  2. 调整副本集成员优先级
    教师可以参考课件以讲演法的方式来讲述调整副本集成员优先级操作。
    (1)讲解成员优先级的作用。
    (2)讲解并操作调整服务器nosql01中副本集成员的优先级。
    (3)讲解并操作将调整操作应用到副本集,查看服务器nosql01中副本集成员角色状态是否发生变化。
  3. 配置隐藏节点和延迟节点
    教师可以参考课件以讲演法的方式来讲述配置隐藏节点和延迟节点操作。
    (1)讲解隐藏节点和延迟节点的作用。
    (2)讲解并操作将服务器nosql02中的副本集成员配置为隐藏节点。
    (3)讲解并操作将服务器nosql03中的副本集成员配置为延迟节点。
  4. 配置副本集成员投票权
    教师可以参考课件以讲演法的方式来讲述配置副本集成员投票权操作。
    (1)讲解成员投票权的作用。
    (2)操作并演示配置服务器nosql02中副本集成员的投票权。
  5. 将副本节点转为仲裁节点
    教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB按条件查询操作。
    (1)讲解并演示如何将服务器nosql02中的副本成员更换为仲裁节点。
    三、归纳总结,随堂练习,布置作业
    对课堂上讲解的知识点进行总结,让学生叙述优先级和投票权的作用,如何配置隐藏和延迟节点。

第六课时
(安全认证)
一、回顾上节课内容,讲述聚合操作
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
默认情况下部署的MongoDB副本集不会开启安全认证功能,这样会对副本集的安全带来一定影响,任何人都可以操作副本集,这在生产环境中是不允许发生的。MongoDB 副本集之间通信有两种安全认证机制,一种是通过KeyFile,另外一种是通过证书x.509,官网推荐使用证书的方式,不过我们这里搭建测试和开发环境没必要去弄证书,因此我们直接通过配置KeyFile就可以实现安全通信,不过在生产环境中推荐使用证书x.509。
3.明确学习目标
(1)了解副本集安全认证机制
(2)掌握开启副本集安全认证
(3)掌握副本集安全认证操作
二、进行重点知识的讲解

  1. 副本集安全认证机制
    教师可以参考课件进行讲解副本集两种安全认证的机制并对KeyFile密钥文件做详细介绍。
  2. 开启副本集安全认证
    教师可以参考课件以讲演法的方式来讲述开启副本集安全认证操作。
    (1)讲解并操作创建KeyFile文件并写入密钥内容。
    (2)讲解并操作在各服务器间同步KeyFile文件。
    (3)讲解并操作在开启副本集安全认证前创建全局管理用户。
    (4)讲解并操作重启副本集,分别不指定用户和指定全局管理用户来验证安全认证是否启动成功。
    (5)讲解root权限用户对开启安全认证的副本集作用。
    三、归纳总结,随堂练习,布置作业
    对课堂上讲解的知识点进行总结,让学生叙述聚合管道操作的表达式和语法以及Map-Reduce操作流程。

第七课时
(副本集机制)
一、回顾上节课内容,讲述副本集机制
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
本节课将讲解副本集的几个重要机制,分别是同步机制、选举机制和心跳检测机制。
3.明确学习目标
(1)了解同步机制
(2)了解选举机制
(3)了解心跳检测机制
二、进行重点知识的讲解

  1. 同步机制
    教师可以参考课件讲解副本集同步机制。
  2. 选举机制
    教师可以参考课件讲解副本集选举机制。
  3. 心跳检测机制
    教师可以参考课件讲解副本集心跳检测机制。
    三、归纳总结,随堂练习,布置作业
    对课堂上讲解的知识点进行总结,让学生叙述对同步机制、选举机制和心跳检测机制的理解。

第八课时
(上机练习)
上机一:副本集部署
请按照教材中4.3小节的内容,独立完成。
上机二:副本集操作
请按照教材中4.4小节的内容,独立完成。

思考题
和习题




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

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

相关文章

第四十四天 完全背包理论 | 518.零钱兑换||

1.dp[j]含义:容量为j的背包,有一些可重复放入的物品,放满这个背包的最大价值 完全背包中每个物品可以使用无数次:遍历背包时采用正序遍历 (对于纯完全背包问题)先遍历物品还是先遍历背包无所谓&#xff1…

C语言——⾼位优先与低位优先的不同之处是什么?

一、问题 C语⾔的最⼤特⾊就是可移植性好。根据机器类型的不同,⾼位优先与低位优先也不同。那么,最好的可移植的 C 程序应该同时适⽤这两种类型的计算机。下⾯了解⼀下⾼位优先与低位优先的不同之处。 二、解答 所谓的⾼位优先,就是最低的地…

GitHub的原理及应用详解(五)

本系列文章简介: GitHub是一个基于Git版本控制系统的代码托管平台,为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中,包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单…

使用docker-compose部署时序数据库InfluxDB1.8.4

背景 如今 InfluxDB 已经更新到了 2.x , InfluxDB 1.x 和 2.x 版本之间有几个主要的区别: 数据模型: 1.x:使用数据库和保留策略来组织数据。 2.x:引入了组织(organizations)和存储桶&#xff…

Mac | 关于 Mac 桌面文件无法显示

现象问题 电脑配置:MacBook Pro M1,系统 Ventura 13.6.7 最近在不知道是不是安装了什么软件,导致桌面上的文件看不到了,但是在访达里的桌面还是可以看到文件,而且开启台前调度的时候,也不会返回桌面了。检查…

牛客NC236 最大差值【simple 动态规划 Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204 思路 不难看出该题可以使用动态规划的方式解题。 在循环数组的过程中,记录截止到当前位置-1的最小值, 然后用当前的值去计算最大的差值。Java代码 im…

Spring Boot中集成 SSE

目录 SSE简介SSE原理SSE的使用场景在Spring Boot中集成SSE 创建Spring Boot项目添加依赖创建SSE控制器前端使用SSE详细案例:股票价格实时推送 总结 SSE简介 服务器发送事件(Server-Sent Events,SSE)是一种在HTTP协议上实现的服…

QT--splitter的使用

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。 文章目录 前言一、实现步骤二、使用步骤1.新建splitter2.splitter的使用3.splitter大小 总结 前言 一、实现步骤 创建 QTabWidget:首先,确保你有一个…

融媒宝:群发自媒体平台的神器,注册送7天中级会员

近几年自媒体比较火,做自媒体往往需要发布文章或视频到多个平台,如手工复制粘贴逐一发布,委实费时费力、效率不高。今天就给大家分享一款提高自媒体运营效率的神器--融媒宝: 融媒宝简介 融媒宝是一款可免费使用的高效自媒体工具…

嵌入式学习记录5.20(TCP并发服务器)

目录 一. TCP并发服务器 二 .多进程实现TCP并发服务器 2.1流程框架 2.2具体实现代码 三. 多线程实现并发服务器 3.1流程框架 3.2具体实现 一. TCP并发服务器 1> 由于循环服务器使用时,只能等到上一个客户端处理结束后,才能处理下一个客户端 2&…

22个C语言小白常见问题总结

一.语言使用错误 在打代码的过程中,经常需要在中文与英文中进行转换,因此常出现一些符号一不小心就用错,用成中文。例如:“;”中文中的分号占用了两个字节,而英文中“;”分号只占用一个字节。编译器只能识…

Scala的简单学习一

一 相关知识 1.1 scala的安装 1.在idea中导入依赖,并在Idea下载scala插件 1.2 scala基础知识点 1.scala代码中一行语句的结束是以换行符为标准,可以不用写分号 2.class是一个普通的类,object相当于一个单例对象,object类中的…

OpenStack配置 之 不同cpu迁移虚拟机

介绍 OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。 OpenStack由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证&#xff…

《Google 软件工程》读书笔记

1. 写在前面 在图书馆瞎逛,偶然瞄见一本《Google 软件工程》Titus Winters, Tom Manshreck, Hyrum Wright 著。主要是在这一排的书架上就这本书看着挺新的(不知道为什么有一种喜欢看新书的情节),而且最近被领导老批评,…

Python 一个简单的用Canny算法进行边缘检测程序

以下是一个简单的边缘检测程序,使用Python和OpenCV库来实现。这个程序将加载一张图像,对其进行灰度化处理,并使用Canny边缘检测算法来检测图像中的边缘。请确保安装了OpenCV库(可以使用pip install opencv-python进行安装&#xf…

Vue的router.addRoutes不起作用

Vue的router.addRoutes()不起作用解决方案 最近在学习制作后台管理系统的时候,涉及到了权限,在通过后台获取到数据后使用router.addRoutes()时不起作用。 最终发现左侧菜单组件中的路由是根据this.$router.options.routes来渲染的,最终使用…

sw套合样条曲线

套合样条曲线,可以变成一条曲线,然后可以进行分段

UOS1060e分离ssh与sftp服务

文章目录 原理一、sftp 用户与目录二、ssh 和 sftp 服务分离三、启动与停止四、验证 原理 SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作。 通过新建另一个‘sshd’进程…

rclone迁移对象存储之间的数据

1 概述 rclone是一款文件复制工具,既可以用于在linux主机之间复制文件,也可以在对象存储之间复制文件。 rclone的官网为: https://rclone.orgrlcone关于对象存储的官方文档为: https://rclone.org/s32 安装 2.1 yum安装 yum …