《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小节的内容,独立完成。
思考题
 和习题
教
 学
 后
 记