2015年6月29日 星期一

【MongoDB】Replication Introduction

Replication Introduction
Replication是一種跨伺服器同步資料的處理技術.
Purpose of Replication
Replication提供在不同database Server之間,多重複製資料時,提供資料的高用性,並保護單一server資料遺失。也允許單一server失敗時,還原資料。在某些條件下,也可以增加讀取資料的容量。client有讀取及寫入不同Server的能力。
Replication in MongoDB
replica set 是 mongod instance的集合與host的Data set相同。 primary  mongod 負責所有"寫入"的作業,其它所有的secondary,向primary申請相同的data set。
primary允許所有來自client的"寫入"操作。一個replica set 只可以有一個primary。primary record異動dats set紀錄會存放在oplog。




secondaries 複製primary的oplog及申請操作secondary的data set,這樣primary的data會反應給 sesecondary的data set.如果primary的失效,replica set會從secondayr中找一個當作primary.




可以新增一個mongod instance 為arbiter,arbiter不處理資料.因為 MongoDB 的機制,是讓眾伺服器投票決定誰當 Primary,一個 RelpSet 中只有兩台機器時,常會發生問題,造成整個群組中無 Primary 機器的狀態。所以,這時要加入仲裁者(Arbiter)機器來協助排除。



非同步複製(Asynchronous Replication)
Secondary可以primary申請非同步複製.即使過程中有多個成員失敗,還是可以持續執行.
自動故障移轉(Automatic Failover)
當primary無法與其他成員溝通超過10移以上,replica set會嘗試選擇其它的成員為新的primary.第一順位的secondary會收到多數的投票結果,成為primary.





沒有留言:

張貼留言