window搭建mongodb副本集
阿新 • • 發佈:2021-06-21
mongodb服務搭建副本,一臺伺服器多個埠
一、建立副本集
1、建立資料夾
F:\mongoDB> mkdir F:\mongoDB\mdb0
F:\mongoDB> mkdir F:\mongoDB\mdb1
F:\mongoDB> mkdir F:\mongoDB\mdb2
2、關閉伺服器埠
以管理員身份開啟 windows PowerShell
以下全部為以管理員身份開啟
未關閉狀態下會按服務服務端啟動,第4步配置初始化時出錯,提示“This node was not started with the replSet option”
重新從第2步開始操作
C:\Users\29059>net stop mongodb
3、手動執行mongodb服務,三個服務埠要全部執行
開啟新的Windows PowerShell,進入到安裝目錄 執行服務(三個獨立Shell)
F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27017 --dbpath F:\mongoDB\mdb0 --smallfiles --oplogSize 128 F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27018 --dbpath F:\mongoDB\mdb1 --smallfiles --oplogSize 128 F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27019 --dbpath F:\mongoDB\mdb2 --smallfiles --oplogSize 128
伺服器連線必須為OK狀態,否則結束程序,重新動行mongodb服務
4、配置
新建Shell進入mongo
F:\mongoDB\mongodb-4.0.12\bin> ./mongo --port 27017
rs.initiate()初始化副本集物件
MongoDB Enterprise > rs.initiate({_id:'mdb',members:[
... {_id:0,host:'127.0.0.1:27017'},
... {_id:1,host:'127.0.0.1:27018'},
... {_id:2,host:'127.0.0.1:27019'}]})
結果
{ "ok" : 1, "operationTime" : Timestamp(1576656206, 1), "$clusterTime" : { "clusterTime" : Timestamp(1576656206, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
設定副本節點可讀,進入mongo 27018 ,27019分別執行獲取資訊
db.getMongo().setSlaveOk()
檢視連線狀態
MongoDB Enterprise mdb:PRIMARY> rs.status()
檢視主副本
MongoDB Enterprise mdb:PRIMARY> db.isMaster()
二、增加副本集
1> 建立資料夾:
F:\mongoDB\mongodb-4.0.12\bin> mkdir F:\mongoDB\mdb3
2> 建立埠開啟服務:新建windows Shell
./mongod --replSet mdb --port 27020 --dbpath F:\mongoDB\mdb3 --smallfiles --oplogSize 128
3> 增加副本集:
MongoDB Enterprise mdb:PRIMARY> rs.add(‘127.0.0.1:27021’)
三、移除副本集:
1> 新建windows Shell 進入副本節點,停用服務
F:\mongoDB\mongodb-4.0.12\bin> ./mongo --port 27020
MongoDB Enterprise mdb:SECONDARY> use admin
MongoDB Enterprise mdb:SECONDARY> db.shutdownServer()
2> 主伺服器中移除對應的節點
MongoDB Enterprise mdb:PRIMARY> rs.remove(‘127.0.0.1:27020’)
修改主從
獲取config ,並修priority改黑認權重
conf=rs.config()
conf.members[0].priority=10
conf.members[1].priority=5
conf.members[2].priority=1
rs.reconfig(conf)