【MongoDB】在windows平台下mongodb的分區叢集(六),mongodb叢集

來源:互聯網
上載者:User

【MongoDB】在windows平台下mongodb的分區叢集(六),mongodb叢集

在本篇部落格中我們主要討論下部落格的管理。由於已經在前面五篇中寫了詳細的執行個體,因此這裡就不再舉例說明。 

一、監控 

分區叢集是整個體系中比較複雜的一塊,因此更應該需要監控。

主要命令: serverstatus和currentOp()

二、手動分區 

 手動分區意思就是手動對線上分區叢集的塊進行拆分和遷移。一般而言,一個分區寫的越多,它越大。 movechunk命令在這種情況下同樣有協助

三、增加一個分區

sh.addShard("computername:port")

使用這種方式增加容量,要注意向新分區遷移資料所花費的時間。預計遷移速度是每分鐘100~200M。最好在索引和工作集達到現有計劃添加新分區。

四、刪除分區

在一些很少見的情況下,你可能想刪除一個分區,可以通過命令removeshard命令進行刪除。一旦分區被清空,你還要確認將要刪除的分區不是資料庫的主分區,可以通過命令config.databases集合進行查詢;

db.databases.find()

五、集合去分區

雖然可以刪除一個分區,但是沒有正式的路徑去掉集合的分區。做法就是先用mongodump命令匯出資料然後再用mongorestore來恢複資料。

六、備份分區集合 

要備份分區叢集,就是需要配置資料以及每個分區資料的副本;一種方式是利用monodump命令來匯出資料。另一方式就是從每個分區的一個成員裡複製資料檔案,再從另一台伺服器中複製資料檔案。 

無論那種方式,要確認再備份系統的時候沒有塊處在移動過程中。

停止均衡器:use config; db.setting.update({_id:"balancer"},{$set:{stopped:true},true})

備份之前重新確認: use config, db.locks.find({"_id":"balancer"})

備份之後別忘了啟動均衡器

sh.setBalancerState()

sh.isBalancerRunning()

七、容錯移轉和恢複

分區成員故障,自動會轉移到其他複本集一員。如果有不正常的表現,可以利用重啟mongos進行進行重設 

設定管理員故障:一個分區叢集一般有三台設定管理員,如果有兩台發生故障,那麼剩餘的設定管理員變為唯讀狀態,所有的拆分和均衡操作都會停止。這個對叢集的讀寫沒有影響,當三條設定管理員恢複後,均衡器就會它停止的地方那個重新開始工作

mongos故障:如果mongos進程發生故障,一般重啟應用伺服器;







相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.