一、实验目的
1、了解MongoDB数据库;
2、掌握MongoDB的安装与基本配置;
(资料图片仅供参考)
3、掌握MongoDB数据库集群的实现;
4、掌握使用MongoDB Compass管理MongoDB数据库集群。
二、实验学时
2学时
三、实验类型
综合性
实验需求
1、硬件
每个人配备计算机1台。
2、软件
Windows操作系统,安装Oracle VM VirtualBox软件,安装MobaXterm软件。
安装MongoDB Compass软件。
3、网络
本地主机与虚拟机能够访问互联网,不使用DHCP服务。
4、工具
无。
五、实验任务
1、完成MongoDB的安装;
2、完成使用MongoDB实现副本集;
3、完成使用MongoDB Compass管理MongoDB数据库集群,并进行副本集测试。
六、实验环境
3、本实验拓扑图,如图9-1所示。
七、实验内容步骤
1、完成MongoDB的安装
在主机Lab-09-Task-01上操作
(1)查看防火墙Firewalld服务状态(CentOS操作系统默认安装Firewalld防火墙,并创建firewalld服务,该服务已开启且已配置为开机自启动)。
(2)使用firewall-cmd命令添加本地客户端允许远程连接MongoDB数据库,以及其余两台主机允许联通该主机的MongoDB数据库,并重新载入防火墙配置使其生效。
(3)使用配置yum源的方式完成MongoDB的安装,安装前需先更新软件包缓存。
(4)启动mongod服务,设置mongod服务为开机自启动并查看mongod服务运行状态。
在主机Lab-09-Task-02上操作
主机Lab-09-Task-02安装MongoDB的方法和过程,请参考步骤完成。
在主机Lab-09-Task-03上操作
主机Lab-09-Task-03安装MongoDB的方法和过程,请参考步骤完成。
2、配置副本集
在主机Lab-09-Task-01上操作
具体过程如下。
(1)生成MongoDB的副本集密钥。
(2)设置上述创建的密钥文件()的读写权限为400,所有者和所属组均为mongod。
(3)使用scp命令将主机Lab-09-Task-01上的副本集密钥文件分发到主机Lab-09-Task-02,并按照操作提示完成文件的传输。
(4)使用scp命令将主机Lab-09-Task-01上的副本集密钥文件分发到主机Lab-09-Task-03,并按照操作提示完成文件的传输。
(5)修改/etc/文件配置MongoDB支持副本集,修改完成后重启mongod服务,确保配置生效。
在主机Lab-09-Task-02上操作
(1)将从主机Lab-09-Task-01传输过来的副本集密钥文件()的读写权限设置为400,所有者和所属组均设置为mongod。
(2)修改/etc/文件配置MongoDB支持副本集,修改完成后重启mongod服务,确保配置生效。
在主机Lab-09-Task-03上操作
主机Lab-09-Task-03配置副本集的方法和过程,请参考步骤完成。
3、初始化副本集
在主机Lab-09-Task-01上进行操作,进行副本集的初始化,具体步骤如下。
(1)使用mongo命令连接MongoDB客户端,初始化副本集,并退出当前连接。
(2)使用mongo命令连接MongoDB客户端,查看副本集状态,并退出当前连接。
(3)使用mongo命令连接MongoDB客户端,为副本集创建用户,并退出当前连接。
4、使用MongoDB Compass管理MongoDB数据库集群
(1)从MongoDB Compass的官方网站()获取可执行程序,并进行安装。
(2)运行MongoDB Compass,依据向导添加3台MongoDB服务器,并进行连接。
点击“New connection”按钮,在右侧的URI输入框中通过标准连接字符串格式连接MongoDB数据库,如图9-1所示。
连接格式如下。
(3)连接到数据库服务器后,可点击“Databases”查看MongoDB数据库列表,如图9-2所示。
5、测试MongoDB集群的可用性
场景1:主节点增加数据,从节点同步增加
(1)使用MongoDB Compass通过用户“mongodblab2”连接到副本集主节点Lab-09-Task-01,创建数据库、集合,并添加数据。
(2)使用MongoDB Compass通过用户“mongodblab2”连接到副本集从节点-1(Lab-09-Task-02),查看在主节点上创建的数据库、集合以及添加的数据,是否存在。
(3)使用MongoDB Compass通过用户“mongodblab2”连接到副本集从节点-2(Lab-09-Task-03),查看在主节点上创建的数据库、集合以及添加的数据,是否存在。
场景2:主节点删除数据,从节点同步删除
(1)使用MongoDB Compass通过用户“mongodblab2”连接到副本集主节点Lab-09-Task-01,删除数据。
(2)使用MongoDB Compass通过用户“mongodblab2”连接到副本集从节点-1(Lab-09-Task-02),查看在主节点上删除的数据,是否已不存在。
(3)使用MongoDB Compass通过用户“mongodblab2”连接到副本集从节点-2(Lab-09-Task-03),查看在主节点上删除的数据,是否已不存在。
场景3:主节点宕机,业务不受影响
(1)在主节点Lab-09-Task-01上执行systemctl stop命令,关闭mangod服务,以模拟主节点宕机故障。
(2)在从节点Lab-09-Task-02上使用mongo -umongodblab2 -pmongodblab2#PWD命令连接MongoDB客户端,查看当前主节点所在的主机。
场景4:原主节点恢复正常,业务不受影响
(1)在原主节点Lab-09-Task-01上执行systemctl start命令,启动mangod服务,以模拟原主节点恢复正常,连接MongoDB客户端并查看副本集状态。
(2)使用MongoDB Compass通过用户“mongodblab2”连接到副本集原主节点Lab-09-Task-01,查看宕机期间未同步的数据是否已同步。
创作说明
配图图书:Linux服务器构建与运维管理从基础到实战(基于CentOS 8实现)
图书网站:
作者:阮晓龙 冯顺磊 董凯伦 于冠军 张浩林 李朋楠 编著
出版社:中国水利水电出版社
ISBN:9787517092025
实验指导撰写团队:徐志豪 李兵兵 毋天翔
实验指导审核:阮晓龙 冯顺磊