MongoDB 3.6(五)搭建複本集

來源:互聯網
上載者:User

標籤:host   mongodb   添加   port   set   aries   font   fonts   secondary   

一概述

複本集是一組保持相同資料集的mongod執行個體。 複本集包含多個資料承載節點和可選的一個仲裁節點。 在資料承載節點中,只有一個成員被認為是主節點,而其他節點被認為是次節點。 
主裝置接受所有的寫操作,從裝置可以接受讀操作但是需要設定rs.slaveOk()。主機的所有改變資料集的操作都會被記錄在oplog中

 
從機複製主裝置上的oplog日誌並執行相應操作以保證資料和主機最終一致 
 
主機和複本集中的其他成員超過10秒鐘沒有聯絡(心跳檢測),有選舉資格的從機就會舉行一次選舉並選舉自己為新的主裝置。舉行選舉並獲得大多數成員投票的第一名從裝置成為主裝置 

二搭建複本集

mongodb建議複本集中有三個及以上的節點。下面是在一台電腦上配置的。

1.建立設定檔。config1.conf,config.conf ,config2.conf
dbpath=logpath=port=bind_ip=replSet=
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • replSet:複本集名稱,標識一個複本集。同一個叢集中的replSet相同
  • port:連接埠號碼,預設27017
  • bind_ip:預設127.0.0.1
  • dbpath: 資料庫檔案存放位置
  • logpath: 記錄檔的存放位置
2.啟動mongod服務端

使用設定檔啟動mongod 執行個體,-f conPath 或者 –config conPath,根據三個設定檔依次啟動三個伺服器

mongod -f D:\mongodb\config.confmongod --config D:\mongodb\confif.conf
  • 1
  • 2
  • 3
3.用戶端串連
mongo --port 27000
  • 1
  • 2
4.初始化複本集

複本集中的各個節點需要互相感知。在已建立串連的用戶端視窗,初始化複本集

config={"_id": repSetName,        "members":[            {"_id": num,"host":"serverHost:port"},{}        ]    }rs.initiate(config)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • members: 複本集中所有的mongod成員的資訊。
  • _id :複本集的標識,與設定檔中replSet名稱對應。

初始化複本集後,再進行操作會發現首碼已經改變了。 replSetName:SECONDARY 說明已連線的服務器已被推選為主裝置 或 replSetName:PROMARY 已連線的服務器是從裝置 
mongodb會使用預設的演算法選舉出主裝置,其他為從裝置。mongoDB 最多支援7個可參與選舉的成員

5.複本集的一些操作
rs.status()   //查看成員的運行狀態等資訊rs.config()    //查看配置資訊rs.slaveOk()  //允許在SECONDARY節點上進行查詢操作,預設從節點不具有查詢功能rs.isMaster()  //查詢該節點是否是主節點rs.add({})   //添加新的節點到該複本集中rs.remove()   //從複本集中刪除節點
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

更多的命令可以使用rs.help()查詢

三複本集添加節點

現在我們原有的三個伺服器的基礎上再添加一個。

1.尋找主裝置並串連
rs.isMaster()
  • 1
  • 2

 
從裝置是不具有新增成員許可權的所以應該先尋找主裝置,從上面可以看到主裝置是127.0.0.1:27022。

mongo --port 27022   //串連主裝置
  • 1
  • 2
2.添加使用者
rs.add("127.0.0.1:27033") //添加了一個使用27033連接埠的伺服器
  • 1
  • 2

3.啟動伺服器
mongod -f D:\mongodb\config3.conf //改設定檔和其他的基本一致
  • 1
  • 2
4.串連伺服器
mongo --port 27033

MongoDB 3.6(五)搭建複本集

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.