我想實現我們的MongoDB數據庫分片,這是該方案在數據庫中實現水平MongoDB的分片和離開的集合unsharded
,我們有一臺服務器運行配置服務器
我們有2臺服務器上運行mongod的情況下,所謂的節點1和節點
我們有一個服務器運行mongos
我已經添加了服務器節點1和節點作爲mongos碎片服務器外殼使用命令
db.runCommand({addshard:「serverhostname [:port]」});
後來我在節點1創建數據庫,並從Mongos
啓用拆分該數據庫現在我們有2級碎片的服務器上,每個MongoDB的文檔,mongos應該把其中創建節點1(在數據庫實際駐留)的一些收藏品和節點2上的一些集合。
我創造了300個集的mongos但仍然是所有藏品都將只有一臺服務器什麼是錯在上述支撐
注: - 由於我在應用層我不能碎片升級的位置是不在集合級別上,我有一個腳本,可根據需要動態創建多個集合。
請提供您的建議,關於如何在數據庫級別進行分片,以便集合在所有分片服務器之間平均分配。
我正在尋找像
一些解決辦法,如果我自動創建300個集mongos應分別在兩個分片服務器上創建大約150或100的集合。
提前感謝您加入並幫助我解決此問題。
感謝您提供有價值的信息亞當,但我們動態地創建集合讓我們每天說300個集合在這種情況下該做什麼如果我們在集合層次中分片,如何分割這些東西,我們最終將分割數百個集合。我們只需要在數據庫級別分片。對於這種情況,每天都有創建集合(比如每個網站用戶)的方案。 –
這實際上並不是真正在MongoDB中如何工作,並且沒有辦法自動完成您描述的內容。您可以創建2個數據庫,以便在每個分片上至少有一個數據庫,然後在創建數據庫時對其進行交替或循環掃描,以便均勻分割,但不會自動平衡,也無法輕鬆添加其他分片。 –
嘿,這是一個非常好的建議,我提到了kristina是一個mongodb開發人員給出的答案,在這裏她說這發生了,但它不會發生在我們身上[Stack overflow posting](http://stackoverflow.com/questions/ 10329484 /定義一個分片鍵自動爲動態收集和建議對) –