掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

下面列舉了幾個使用復(fù)制的好處:
MongoDB 通過使用副本集來實(shí)現(xiàn)復(fù)制。副本集是一組托管相同數(shù)據(jù)集的 mongod 實(shí)例。在副本中,一個節(jié)點(diǎn)是接收所有寫操作的主節(jié)點(diǎn),其余的所有實(shí)例,例如第二實(shí)例,都將應(yīng)用來自第一個實(shí)例的操作,以便它們具有相同的數(shù)據(jù)集。副本集只能有一個主節(jié)點(diǎn)。
下圖展示了 MongoDB 復(fù)制的示意圖,其中客戶端應(yīng)用程序始終與主節(jié)點(diǎn)交互,然后主節(jié)點(diǎn)將數(shù)據(jù)復(fù)制到輔助節(jié)點(diǎn)。
副本集功能:
接下來我們來看一下如何將獨(dú)立的 MongoDB 實(shí)例轉(zhuǎn)換為副本集。要轉(zhuǎn)換為副本集,需要按照以下幾個步驟操作:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
【示例】在 27017 端口上啟動名為 rs0 的 mongod 實(shí)例:
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
現(xiàn)在啟動命令提示符并連接到此 mongod 實(shí)例,在Mongo客戶端中,請使用 rs.initiate() 命令來啟動新的副本集。要檢查副本集配置,請使用 rs.conf() 命令。要檢查副本集的狀態(tài),請使用 rs.status() 命令。
要將成員添加到副本集,需要在多臺計算機(jī)上啟動 mongod 實(shí)例?,F(xiàn)在使用 rs.add() 命令來啟動一個 mongo 客戶端,rs.add() 命令的基本語法如下:
>rs.add(HOST_NAME:PORT)
【示例】假設(shè)您的 mongod 實(shí)例名稱為 mongod1.net,并且它運(yùn)行在 27017 端口上。要將此實(shí)例添加到副本集,需要在 Mongo 客戶端中使用 rs.add() 命令。
>rs.add("mongod1.net:27017")
僅當(dāng)連接到主??節(jié)點(diǎn)時,才能將 mongod 實(shí)例添加到副本集。要檢查您是否連接到主服務(wù)器,可以在 mongo 客戶端中使用 db.isMaster() 命令。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流