即使埠關閉,Mongodb 也會在主節點和輔助節點之間同步數據
我已經使用 3 個 ec2 和一個主節點和 2 個輔助節點在 aws 中配置了 mongodb 副本集。當我在主節點上插入數據時,它會同步到它應該同步的輔助節點。但是,當我通過安全組關閉埠時,即使主節點中 rs.status() 中的狀態為 stateStr" : “(not reachable/healthy)” ->,數據仍在同步到埠已關閉的輔助節點用於輔助節點(其埠已關閉)。
我在不同的公共子網和私有子網中使用我的輔助節點嘗試了這個,但它仍然在同步。我是 mongodb 的新手,可能做錯了什麼。有人可以建議一些東西。
你有沒有雙向關閉這條路…
如果主節點無法“ping”輔助節點,則它無法訪問/健康,但如果輔助節點可以連接主節點,則它可以複製 opLog …
根據 MongoDB BOL這裡
為了維護共享數據集的最新副本,副本集的次要成員
sync
或從其他成員複製數據。MongoDB 使用兩種形式的數據同步:
- 初始同步
- 複製
初始同步
初始同步將所有數據從副本集的一個成員複製到另一個成員。甚至是使用完整數據集填充新成員的初始同步,以及將持續更改應用於整個數據集的複制。
同步過程是如何發生的
When you perform an initial sync, MongoDB:
複製除數據庫之外的所有
local
數據庫。為了複製,mongod
掃描每個源數據庫中的每個集合,並將所有數據插入到它自己的這些集合的副本中。在 3.4 版更改:初始同步會在為每個集合複製文件時建構所有集合索引。在早期版本的 MongoDB 中,此階段僅建構 _id 索引。在 3.4 版更改: 初始同步在數據複製期間拉取新添加的 oplog 記錄。確保目標成員在本地數據庫中有足夠的磁碟空間,以便在此數據複製階段期間臨時儲存這些 oplog 記錄。
將所有更改應用於數據集。使用來自源的 oplog,
mongod
更新其數據集以反映副本集的目前狀態。初始同步完成後,成員從 轉換STARTUP2
為SECONDARY
。複製
輔助成員在初始同步後連續複製數據。次要成員
oplog
從他們的同步源中複製並在非同步過程中應用這些操作。輔助節點可以根據 ping 時間和其他成員複製狀態的變化,根據需要自動從源更改同步。
在 3.2 版更改: MongoDB 3.2 副本集成員
1 vote
無法與0 votes
.輔助節點避免從
delayed members
和同步hidden members
。如果次要成員
members[n].buildIndexes
設置為 true,則它只能從buildIndexes
為 true 的其他成員同步。為 false 的成員buildIndexes
可以從任何其他成員同步,除非有其他同步限制。buildIndexes
預設情況下為真。