Mongodb 作為副本集

我們將建立 mongodb 作為具有 3 個例項的副本集。一個例項是主要的,另外兩個例項是次要的。

為簡單起見,我將在同一伺服器上執行 3 個 mongodb 例項的副本集,從而實現這一點,所有三個 mongodb 例項將在不同的埠號上執行。

在生產環境中,如果你在單個伺服器上執行專用的 mongodb 例項,則可以重用相同的埠號。

  1. 建立資料目錄(mongodb 資料將儲存在檔案中的路徑)
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
  1. 一個。啟動第一個 mongod 例項
  • 開啟命令提示符並鍵入以下按 Enter 鍵。
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

上面的命令將 mongodb 的例項與 replicaSet 名稱 s0 相關聯,並使用 oplogSize 100MB 在埠 37017 上啟動 mongodb 的第一個例項

  1. 灣同樣啟動 Mongodb 的第二個例項
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

上面的命令將 mongodb 的例項與 replicaSet 名稱 s0 相關聯,並使用 oplogSize 100MB 在埠 37018 上啟動 mongodb 的第一個例項

  1. C。現在開始 Mongodb 的第三個例項
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

上面的命令將 mongodb 的例項與 replicaSet 名稱 s0 相關聯,並使用 oplogSize 100MB 在埠 37019 上啟動 mongodb 的第一個例項

隨著所有 3 個例項的啟動,這 3 個例項目前彼此獨立。我們現在需要將這些例項分組為副本集。我們在配置物件的幫助下完成此操作。

3.a 通過 mongo shell 連線到任何 mongod 伺服器。為此,請開啟命令提示符並鍵入。

mongo --port 37017

連線到 mongo shell 後,建立一個配置物件

   var config = {"_id":"s0", members[]};

此配置物件有 2 個屬性

    1. _id:副本集的名稱(s0
    2. 成員:[](成員是一個 mongod 例項的陣列。暫時讓我們保持空白,我們將通過 push 命令新增成員。

3.b 將 mongod 例項推送(新增)到 config 物件中的 members 陣列。關於 mongo shell 型別

 config.members.push({"_id":0,"host":"localhost:37017"});
 config.members.push({"_id":1,"host":"localhost:37018"});
 config.members.push({"_id":2,"host":"localhost:37019"});

我們為每個 mongod 例項分配一個_id 和一個主機。 _id 可以是任何唯一編號,主機應該是執行它的伺服器的主機名,後跟埠號。

  1. 通過 mongo shell 中的以下命令啟動配置物件。
rs.initiate(config)
  1. 給它幾秒鐘,我們有一個在伺服器上執行的 3 個 mongod 例項的副本集。鍵入以下命令以檢查副本集的狀態,並確定哪個是主要的,哪個是次要的。
rs.status();