Linux服務(wù)器構(gòu)建與運維管理-CentOS-實驗09:使用MongoDB建設(shè)數(shù)據(jù)庫集群
一、實驗?zāi)康?/h1>
1、了解MongoDB數(shù)據(jù)庫;
2、掌握MongoDB的安裝與基本配置;
3、掌握MongoDB數(shù)據(jù)庫集群的實現(xiàn);
4、掌握使用MongoDB Compass管理MongoDB數(shù)據(jù)庫集群。
二、實驗學時
2學時
三、實驗類型
綜合性
實驗需求
1、硬件
每個人配備計算機1臺。
2、軟件
Windows操作系統(tǒng),安裝Oracle VM VirtualBox軟件,安裝MobaXterm軟件。
安裝MongoDB Compass軟件。
3、網(wǎng)絡(luò)
本地主機與虛擬機能夠訪問互聯(lián)網(wǎng),不使用DHCP服務(wù)。
4、工具
無。
五、實驗任務(wù)
1、完成MongoDB的安裝;
2、完成使用MongoDB實現(xiàn)副本集;
3、完成使用MongoDB Compass管理MongoDB數(shù)據(jù)庫集群,并進行副本集測試。
六、實驗環(huán)境

3、本實驗拓撲圖,如圖9-1所示。

七、實驗內(nèi)容步驟
1、完成MongoDB的安裝
1.1 在主機Lab-09-Task-01上操作
(1)查看防火墻Firewalld服務(wù)狀態(tài)(CentOS操作系統(tǒng)默認安裝Firewalld防火墻,并創(chuàng)建firewalld服務(wù),該服務(wù)已開啟且已配置為開機自啟動)。
(2)使用firewall-cmd命令添加本地客戶端允許遠程連接MongoDB數(shù)據(jù)庫,以及其余兩臺主機允許聯(lián)通該主機的MongoDB數(shù)據(jù)庫,并重新載入防火墻配置使其生效。
(3)使用配置yum源的方式完成MongoDB的安裝,安裝前需先更新軟件包緩存。
(4)啟動mongod服務(wù),設(shè)置mongod服務(wù)為開機自啟動并查看mongod服務(wù)運行狀態(tài)。
1.2 在主機Lab-09-Task-02上操作
主機Lab-09-Task-02安裝MongoDB的方法和過程,請參考步驟1.1完成。
1.3在主機Lab-09-Task-03上操作
主機Lab-09-Task-03安裝MongoDB的方法和過程,請參考步驟1.1完成。
2、配置副本集
2.1 在主機Lab-09-Task-01上操作
具體過程如下。
(1)生成MongoDB的副本集密鑰。
(2)設(shè)置上述創(chuàng)建的密鑰文件(keyfile.key)的讀寫權(quán)限為400,所有者和所屬組均為mongod。
(3)使用scp命令將主機Lab-09-Task-01上的副本集密鑰文件分發(fā)到主機Lab-09-Task-02,并按照操作提示完成文件的傳輸。
(4)使用scp命令將主機Lab-09-Task-01上的副本集密鑰文件分發(fā)到主機Lab-09-Task-03,并按照操作提示完成文件的傳輸。
(5)修改/etc/mongod.conf文件配置MongoDB支持副本集,修改完成后重啟mongod服務(wù),確保配置生效。
2.2 在主機Lab-09-Task-02上操作
(1)將從主機Lab-09-Task-01傳輸過來的副本集密鑰文件(keyfile.key)的讀寫權(quán)限設(shè)置為400,所有者和所屬組均設(shè)置為mongod。
(2)修改/etc/mongod.conf文件配置MongoDB支持副本集,修改完成后重啟mongod服務(wù),確保配置生效。
2.3 在主機Lab-09-Task-03上操作
主機Lab-09-Task-03配置副本集的方法和過程,請參考步驟2.2完成。
3、初始化副本集
在主機Lab-09-Task-01上進行操作,進行副本集的初始化,具體步驟如下。
(1)使用mongo命令連接MongoDB客戶端,初始化副本集,并退出當前連接。
(2)使用mongo命令連接MongoDB客戶端,查看副本集狀態(tài),并退出當前連接。
(3)使用mongo命令連接MongoDB客戶端,為副本集創(chuàng)建用戶,并退出當前連接。
4、使用MongoDB Compass管理MongoDB數(shù)據(jù)庫集群
(1)從MongoDB Compass的官方網(wǎng)站(https://www.mongodb.com)獲取可執(zhí)行程序,并進行安裝。
(2)運行MongoDB Compass,依據(jù)向?qū)砑?臺MongoDB服務(wù)器,并進行連接。
點擊“New connection”按鈕,在右側(cè)的URI輸入框中通過標準連接字符串格式連接MongoDB數(shù)據(jù)庫,如圖9-1所示。

連接格式如下。
(3)連接到數(shù)據(jù)庫服務(wù)器后,可點擊“Databases”查看MongoDB數(shù)據(jù)庫列表,如圖9-2所示。

5、測試MongoDB集群的可用性
場景1:主節(jié)點增加數(shù)據(jù),從節(jié)點同步增加
(1)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集主節(jié)點Lab-09-Task-01,創(chuàng)建數(shù)據(jù)庫、集合,并添加數(shù)據(jù)。
(2)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集從節(jié)點-1(Lab-09-Task-02),查看在主節(jié)點上創(chuàng)建的數(shù)據(jù)庫、集合以及添加的數(shù)據(jù),是否存在。
(3)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集從節(jié)點-2(Lab-09-Task-03),查看在主節(jié)點上創(chuàng)建的數(shù)據(jù)庫、集合以及添加的數(shù)據(jù),是否存在。
場景2:主節(jié)點刪除數(shù)據(jù),從節(jié)點同步刪除
(1)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集主節(jié)點Lab-09-Task-01,刪除數(shù)據(jù)。
(2)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集從節(jié)點-1(Lab-09-Task-02),查看在主節(jié)點上刪除的數(shù)據(jù),是否已不存在。
(3)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集從節(jié)點-2(Lab-09-Task-03),查看在主節(jié)點上刪除的數(shù)據(jù),是否已不存在。
場景3:主節(jié)點宕機,業(yè)務(wù)不受影響
(1)在主節(jié)點Lab-09-Task-01上執(zhí)行systemctl stop命令,關(guān)閉mangod服務(wù),以模擬主節(jié)點宕機故障。
(2)在從節(jié)點Lab-09-Task-02上使用mongo -umongodblab2 -pmongodblab2#PWD命令連接MongoDB客戶端,查看當前主節(jié)點所在的主機。
場景4:原主節(jié)點恢復(fù)正常,業(yè)務(wù)不受影響
(1)在原主節(jié)點Lab-09-Task-01上執(zhí)行systemctl start命令,啟動mangod服務(wù),以模擬原主節(jié)點恢復(fù)正常,連接MongoDB客戶端并查看副本集狀態(tài)。
(2)使用MongoDB Compass通過用戶“mongodblab2”連接到副本集原主節(jié)點Lab-09-Task-01,查看宕機期間未同步的數(shù)據(jù)是否已同步。
創(chuàng)作說明
配圖圖書:Linux服務(wù)器構(gòu)建與運維管理從基礎(chǔ)到實戰(zhàn)(基于CentOS 8實現(xiàn))
圖書網(wǎng)站:http://linux.book.51xueweb.cn
作者:阮曉龍 馮順磊 董凱倫 于冠軍 張浩林 李朋楠 編著?
出版社:中國水利水電出版社
ISBN:9787517092025
實驗指導(dǎo)撰寫團隊:徐志豪 李兵兵 毋天翔
實驗指導(dǎo)審核:阮曉龍 馮順磊??