Replication

獨立 MongoDB 伺服器的只讀副本的解決方案

  • September 7, 2019

我將一些數據儲存在獨立 MongoDB 伺服器上的許多數據庫/集合中。該伺服器用於生產。

我需要訪問這些數據(或至少每晚建構數據,而不是所有數據庫/集合),用於數據分析目的:只讀,可能是高消耗查詢。我不想在生產伺服器上操作數據分析。

現在,我使用mongoexportandmongoimport將數據導出並重新導入另一個獨立伺服器。這有很多缺點:

  • 不保留索引,
  • 夜間出口/重新進口是一個可能會失敗的長期過程,
  • 數據不是連續同步的(不是絕對必要的)。

我研究了 MongoDb 副本集文件,但有些問題仍然沒有回答我:

  • 我可以選擇複製哪些數據庫/集合嗎?
  • 2 成員(主要和次要)副本集是否符合條件?
  • 我可以讓我們的生產應用程序伺服器“總是”在主伺服器上讀寫,而我們的數據分析伺服器“總是”在輔助伺服器上讀取嗎?

我知道我有很多問題,它可能會違反 Stackoverflow Q/A 原則,但我希望問題標籤對其他人有用。

我可以選擇複製哪些數據庫/集合嗎?

副本集是一組維護相同數據集的mongodb實例,因此需要在節點之間複製整個數據集。

2 成員(主要和次要)副本集是否符合條件?

一個副本集應該有奇數個投票成員。如果您只想維護兩個承載數據的節點,您可能希望在副本集中包含一個仲裁器作為第三個投票成員。

我可以讓我們的生產應用程序伺服器“總是”在主伺服器上讀寫,而我們的數據分析伺服器“總是”在輔助伺服器上讀取嗎?

所有的寫入都必須指向副本集的 Primary 節點;不允許客戶端寫入處於“輔助”副本集狀態的數據承載節點。

指定讀取首選項是將查詢定向到副本集的不同節點的好方法。

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