我正試圖創建一個主從的mongo實體。我創建了幾個實體:
mongod.exe --config "C:mongodbconfig
epl1.cfg"
mongod.exe --config"C:mongodbconfig
epl2.cfg"
然后我登錄了我的第一個節點,并創建了副本,第二個節點也開始了:
我登錄了我的第一個節點并創建了副本。
mongo.exe --port 27031
mongo.exe --port 27032.
rs.initiate( {
_id : "replKK"。
members: [
{ _id: 0, host: "localhost:27031", priority:5 },
{ _id: 1, host: "localhost:27032", hidden: true, priority:0 }
]
})
當兩個節點都在運行時,我可以讀寫。但是當我關閉二級節點時,我不能插入到集合中,因為我得到了以下錯誤:
WriteCommandError( {
"topologyVersion"/span> : {
"processId" : ObjectId("6149c7170fc6426b073f16c3")。
"counter" : NumberLong(11)
},
"ok"/span> : 0,
"errmsg" : "not master"。
"code" : 10107,
"codeName" : "NotWritablePrimary"。
"$clusterTime" : {
"clusterTime" : Timestamp(1632225689, 1) 。
"簽名" : {
"hash" : BinData(0,"AAAAAAAAAAAA=") 。
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1632225689, 1)
})
我做錯了什么?我怎樣才能做到第一個節點是可以插入記錄的實體,而第二個節點只是一種備份(主-從)?我使用的是MongoDB 5.0.3
。uj5u.com熱心網友回復:
為了選出一個可寫的PRIMARY節點,所有節點的多數必須向上。
2個中的1個并不是多數。典型的解決方案是創建一個Arbiter。一個Arbiter是一個非常輕量級的mongod行程,它不存盤任何資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/332491.html
標籤:
