官术网_书友最值得收藏!

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成為新的主節點。

主站蜘蛛池模板: 江都市| 庆安县| 团风县| 临安市| 洱源县| 西乌珠穆沁旗| 仁寿县| 三原县| 张家川| 大同市| 根河市| 沈阳市| 福贡县| 中山市| 巴彦县| 瑞安市| 大化| 广元市| 沭阳县| 金昌市| 松溪县| 吉木萨尔县| 云安县| 福建省| 马龙县| 鸡西市| 平舆县| 孝昌县| 贵德县| 莱州市| 徐州市| 兴义市| 辛集市| 庆云县| 云南省| 长海县| 邓州市| 桂平市| 苗栗市| 新闻| 揭东县|