標籤: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=
- 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
3.用戶端串連
mongo --port 27000
4.初始化複本集
複本集中的各個節點需要互相感知。在已建立串連的用戶端視窗,初始化複本集
config={"_id": repSetName, "members":[ {"_id": num,"host":"serverHost:port"},{} ] }rs.initiate(config)
- 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()
從裝置是不具有新增成員許可權的所以應該先尋找主裝置,從上面可以看到主裝置是127.0.0.1:27022。
mongo --port 27022 //串連主裝置
2.添加使用者
rs.add("127.0.0.1:27033") //添加了一個使用27033連接埠的伺服器
3.啟動伺服器
mongod -f D:\mongodb\config3.conf //改設定檔和其他的基本一致
4.串連伺服器
mongo --port 27033
MongoDB 3.6(五)搭建複本集