- MongoDB進階與實戰:微服務整合、性能優化、架構管理
- 唐卓章
- 915字
- 2021-05-19 17:44:51
5.5 搭建副本集
本節將介紹如何在本機安裝MongoDB副本集,真實的項目環境中可以采用多機部署,但具體步驟是類似的。
5.5.1 安裝副本集
假設讀者已經完成了MongoDB單節點的安裝,并且環境變量path中已經包含了MongoDB執行程序的配置。接下來我們需要為副本集定義一個名稱,例如myReplSet。
1.準備安裝目錄

2.配置文件
執行cd/opt/work/mongoReplSet/進入安裝目錄。編輯配置文件mongo.conf,內容如下:

上述配置僅包含一些公共的配置,由于每個副本集成員會使用不同的端口、數據目錄,我們將在命令行中進行指定。
3.創建keyfile


mongo.key采用隨機算法生成,用作節點內部通信的密鑰文件。
4.啟動副本集成員
執行mongod程序,啟動3個副本集成員,代碼如下:

除了keyFile、config文件,我們還指定了幾個參數,分別如下。
● --port:數據庫的監聽端口。
● --dbpath:數據的存儲目錄。
● --logpath:數據庫進程的日志文件路徑。
執行命令之后,可以看到啟動成功的輸出日志:

通過netstat命令同樣可以看到啟動的幾個端口,輸出如下:

5.初始化配置
連接其中一個成員節點,并執行初始化命令,代碼如下:


此處,cfg._id表示的是副本集的名稱(myReplSet),該值必須和副本集成員啟動時指定的--replSet參數保持一致。members則表示當前副本集的成員列表,包括每個成員的主機IP、端口號。
使用rs.initiate命令執行副本集的初始化,當前成員會自動向其他成員同步該配置,之后這些成員在內部完成選舉。
6.查看狀態
執行db.isMaster命令,用于查看副本集的其他節點,代碼如下:

從輸出上看,當前節點已經成為主節點("ismaster":true),而hosts字段也展示了整個副本集的所有成員。
5.5.2 創建用戶
由于使用了--keyFile作為成員節點的啟動參數,此時MongoDB會啟用鑒權(相當于--auth),因此在操作數據之前需要創建用戶,代碼如下:

在開啟鑒權的情況下,MongoDB允許創建首個用戶。一旦數據庫中存在用戶,所有的操作就必須經過鑒權了。
副本集之間的用戶數據會自動進行同步,因此可以使用同一個用戶在任一成員節點登錄。
5.5.3 寫入數據
登錄主節點,向test集合寫入一條數據,代碼如下:

登錄某個備節點,查看test集合,可發現新增的數據已經同步,如下:


5.5.4 主備節點切換
接下來,驗證副本集的主備節點切換功能,登錄主節點并執行stepDown命令,代碼如下:

如果執行成功,則當前節點將會降備,并開啟新一輪的選舉。通過多次執行isMaster命令可以確認最后的選舉結果,代碼如下:

從結果中可以看出,在主備節點切換之后,127.0.0.1:27002成為新的主節點。
- 復雜軟件設計之道:領域驅動設計全面解析與實戰
- Visual Studio 2012 Cookbook
- 信息可視化的藝術:信息可視化在英國
- HDInsight Essentials(Second Edition)
- Oracle 18c 必須掌握的新特性:管理與實戰
- 用戶體驗可視化指南
- MySQL入門很輕松(微課超值版)
- Python機器學習之金融風險管理
- Learning AWS
- Django 3.0入門與實踐
- Everyday Data Structures
- Advanced UFT 12 for Test Engineers Cookbook
- Android Development Tools for Eclipse
- After Effects CC技術大全
- Ionic3與CodePush初探:支持跨平臺與熱更新的App開發技術