在以前的博客mongodb複製篇中,介紹了一些基本分mongodb複製概念和內部運行機制。mongodb
本文從如下兩個方面介紹mongodb副本集的配置過程。shell
1、複製集配置數據庫
2、複製集啓用內部認證windows
1、複製集配置spa
環境:操作系統
windows操做系統3d
mongodb 3.4社區版blog
目標:博客
在同一部機器上配置包含3個節點的複製集:rs0it
在mongodb已經安裝好的前提下,分別爲3個節點建立數據目錄(用於存放當前節點的數據表)rs0-0、rs0-一、rs0-2
分別啓動(同時初始化數據目錄)三個mongod實例:
mongod --port 27017 --dbpath E:\devInstall\MongoDB\rs\rs0-0 --replSet rs0 --smallfiles --oplogSize 128
mongod --port 27018 --dbpath E:\devInstall\MongoDB\rs\rs0-1 --replSet rs0 --smallfiles --oplogSize 128
mongod --port 27019 --dbpath E:\devInstall\MongoDB\rs\rs0-2 --replSet rs0 --smallfiles --oplogSize 128
下圖爲127.0.0.1:27017節點的啓動過程(將三個節點分別在三個窗口啓動):
登陸27017節點,使用rs.initiate()來初始化複製集:
rs.conf()查看複製集配置信息:
使用rs.add("<hostname:port>")將另外兩個節點添加到複製集中:
使用rs.isMaster()查看哪個節點是主節點、哪個是從節點
在主節點上建立數據庫repl,建立一個用戶collection並添加一條記錄:
從mongo shell 登陸到127.0.0.1:27018節點:
進行查詢操做、提示錯誤。由於從節點默認既不能進行寫入操做,也不能進行讀取操做。
使用rs.slaveOk(),開啓從節點的數據讀取功能。
此時便再從節點上執行數據的查詢操做。使用rs.printSlaveReplicationInfo()能夠查看從節點複製數據的時間點和時間延遲。
以下圖所示,27018節點中成功查詢到了主節點新插入的數據,且有十秒鐘的數據延時。
2、複製集啓用內部認證
認證方式:一、keyfile 二、x.509 證書
內部認證明例待續。。。。。。。