Mongodb

我正在嘗試為 Mongo DB 實現災難恢復

  • July 24, 2020

現在我在站點一中有一個 MongoDb HA,我需要在另一個位置啟用非同步複製的另一個站點。這是我實現災難恢復的基本計劃。我對如何建立 mongo 的非同步複製沒有太多想法。我也需要在 Windows 系統中完成此操作。

我發現了 MongoShake ( https://github.com/alibaba/MongoShake ),它是一個開源的 Golang 應用程序,它執行集群到集群的複制,由阿里巴巴製作。

該文件專注於其內部工作/行為,可能令人沮喪,但您必須查看範例配置文件,而不是描述每個配置選項(https://github.com/alibaba/MongoShake/blob/develop/conf/收集器.conf)。在大多數情況下,據我所知(尚未嘗試過),您有 2 個配置選項:

這允許您將 MongoDB 集群從一個數據中心非同步複製到另一個數據中心。

YouTube 上還有一個 48 分鐘的教程影片,它解釋了您可以使用 MongoShake 實現的所有複製,還展示了新加坡的 MongoDB 集群複製到印度尼西亞雅加達的展示。

這個解決方案很年輕,沒有英文部落格文章展示,也沒有 Docker Hub 上的官方 Docker 鏡像(只有 3 個鏡像,沒有任何文件😟)。

對我來說,它看起來很有希望,需要更多的寫作/測試/熱愛才能崛起。

根據您的要求,您似乎只需要兩個數據中心(即 HA(主要或數據中心 1)和 DR(次要或數據中心 2))。

根據 MongoDB 文件Priority 0 Replica Set Members

一個數據中心託管主要和次要數據中心。第二個數據中心託管優先級為 0 的輔助節點。只有數據中心 1 中的成員可以成為主節點。

優先級為 0的成員是不能成為主要成員且不能觸發選舉的成員。優先級 0 成員可以確認以 w :的寫關注發出的寫操作。對於“多數”寫關注,優先級為 0 的成員也必須是投票成員(即成員$$ n $$.votes大於 0) 以確認寫入。無投票權的副本集成員(即成員$$ n $$.votes為 0) 無法幫助確認具有“多數”寫入問題的寫入操作。

除了上述限制之外,優先級為 0的輔助節點的功能與普通輔助節點一樣:它們維護數據集的副本,接受讀取操作,並在選舉中投票。

將輔助節點配置為優先級為 0 以防止其成為主節點,這在多數據中心部署中特別有用。

進一步參考這里這裡

引用自:https://dba.stackexchange.com/questions/231802