為什么用復(fù)制
為什么要使用復(fù)制呢?如果我們的數(shù)據(jù)庫只存在于一臺(tái)服務(wù)器,若這臺(tái)服務(wù)器宕機(jī)了,那對(duì)于我們數(shù)據(jù)將會(huì)是災(zāi)難,當(dāng)然這只是其中一個(gè)原因,若數(shù)據(jù)量非常大,讀寫操作勢必會(huì)影響數(shù)據(jù)庫的性能,這時(shí)候復(fù)制就顯得相當(dāng)重要了,因?yàn)?MongoDB 可以通過復(fù)制,實(shí)現(xiàn)讀寫分離。
復(fù)制是一種在多個(gè)服務(wù)器上同步數(shù)據(jù)的過程。通過在不同的數(shù)據(jù)庫服務(wù)器上實(shí)現(xiàn)多個(gè)數(shù)據(jù)副本。總之,復(fù)制可以使你免受硬件故障與服務(wù)中斷的影響,及時(shí)恢復(fù)數(shù)據(jù)。由于數(shù)據(jù)有多個(gè)副本,所以可以將其中一個(gè)副本用于災(zāi)難恢復(fù)、報(bào)告或備份。
復(fù)制的作用
保證數(shù)據(jù)的安全性
保證數(shù)據(jù)的高可用性(24*7)
用戶災(zāi)難恢復(fù)
不需要停機(jī)維護(hù)(如備份,重建索引,壓縮等任務(wù))
讀寫的靈活性
那么,復(fù)制是怎么實(shí)現(xiàn)的呢?MongoDB 用副本集實(shí)現(xiàn)復(fù)制的功能。副本集是一組托管同一數(shù)據(jù)集的 mongod 對(duì)象。在副本集中有三個(gè)成員:主節(jié)點(diǎn)(Primary)、從節(jié)點(diǎn)(Secondary)、仲裁節(jié)點(diǎn)(Arbiter)