《NoSQL数据库技术与应用》 MongoDB副本集

news/2024/9/24 17:13:38/

《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.ppmy.cn/news/1464566.html

相关文章

微服务:利用RestTemplate实现远程调用

打算系统学习一下微服务知识,从今天开始记录。 远程调用 调用order接口,查询。 由于实现还未封装用户信息,所以为null。 下面我们来使用远程调用用户服务的接口,然后封装一下用户信息返回即可。 流程图 配置类中注入RestTe…

将IP添加到基础设计

将IP添加到基础设计 本节介绍将AXI IP添加到设计中。 添加低速外设(AXI4 Lite) 1.将等效IP添加到框图中。例如,对于AXI GPIO: a.右键单击方框图中的任意位置,然后选择“添加IP”。 b.搜索并双击AXI GPIO以添加IP。 2.双…

windows 安装 使用 nginx

windows 安装 使用 nginx nginx官网下载地址:https://nginx.org/en/download.html 下载稳定版本即可 下载压缩包解压到即可 进入文件夹中,打开命令行窗口,执行启动命令 start nginx.exe验证(默认是80端口)&#x…

FreeRTOS_信号量_学习笔记

信号量的特性 消息队列用于传输多个数据,但是有时候我们只需要传递状态,这个状态值需要用一个数值表示。套用队列笔记中的流水线例子,可以理解为流水线上工件的数量。 信号:起通知作用 量:还可以用来表示资源的数量 当…

Java中的ORM框架——myBatis

一、什么是ORM ORM 的全称是 Object Relational Mapping。Object代表应用程序中的对象,Relational表示的是关系型数据库,Mapping即是映射。结合起来就是在程序中的对象和关系型数据库之间建立映射关系,这样就可以用面向对象的方式&#xff0c…

springboot项目使用validated参数校验框架

目录 前言 一、validated是什么? 二、使用步骤 1.引入maven依赖 2.使用实现 总结 前言 当谈到Spring的参数校验功能时,Validated注解无疑是一个重要的利器。它为我们提供了一种简单而又强大的方式来验证请求参数的合法性,保证了系统的稳…

设计模式 18 迭代器模式 Iterator Pattern

设计模式 18 迭代器模式 Iterator Pattern 1.定义 迭代器模式 (Iterator Pattern) 是一种行为型设计模式,它提供了一种访问集合元素的标准方法,而无需暴露集合的内部表示。 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该…

Python开发 —— 文件读写操作open与with open

在 Python 中,文件读写操作是非常常见的任务。本文是一些关键操作和代码示例,包括如何使用 open、with open、read 和 write 函数进行文件操作。 1. 打开文件 (open) 使用 open 函数打开文件。在 Python 中,打开文件是进行文件操作的第一步。…