Replication
獨立 MongoDB 伺服器的只讀副本的解決方案
我將一些數據儲存在獨立 MongoDB 伺服器上的許多數據庫/集合中。該伺服器用於生產。
我需要訪問這些數據(或至少每晚建構數據,而不是所有數據庫/集合),用於數據分析目的:只讀,可能是高消耗查詢。我不想在生產伺服器上操作數據分析。
現在,我使用
mongoexport
andmongoimport
將數據導出並重新導入另一個獨立伺服器。這有很多缺點:
- 不保留索引,
- 夜間出口/重新進口是一個可能會失敗的長期過程,
- 數據不是連續同步的(不是絕對必要的)。
我研究了 MongoDb 副本集文件,但有些問題仍然沒有回答我:
- 我可以選擇複製哪些數據庫/集合嗎?
- 2 成員(主要和次要)副本集是否符合條件?
- 我可以讓我們的生產應用程序伺服器“總是”在主伺服器上讀寫,而我們的數據分析伺服器“總是”在輔助伺服器上讀取嗎?
我知道我有很多問題,它可能會違反 Stackoverflow Q/A 原則,但我希望問題標籤對其他人有用。
我可以選擇複製哪些數據庫/集合嗎?
副本集是一組維護相同數據集的mongodb實例,因此需要在節點之間複製整個數據集。
2 成員(主要和次要)副本集是否符合條件?
一個副本集應該有奇數個投票成員。如果您只想維護兩個承載數據的節點,您可能希望在副本集中包含一個仲裁器作為第三個投票成員。
我可以讓我們的生產應用程序伺服器“總是”在主伺服器上讀寫,而我們的數據分析伺服器“總是”在輔助伺服器上讀取嗎?
所有的寫入都必須指向副本集的 Primary 節點;不允許客戶端寫入處於“輔助”副本集狀態的數據承載節點。
指定讀取首選項是將查詢定向到副本集的不同節點的好方法。