《雷霆一號》夜間任務及裝備選擇技巧分享
搭建分片叢集和啟用分片是前後兩個步驟,搭建分片叢集是基礎,啟用分片才真正開始均衡分片的資料分佈。步驟包括:
1、啟動mongos;
2、使用客戶端mongo連線到mongos;
3、使用sh.addShard註冊分片,方法參見:
http://docs.mongodb.org/manual/reference/method/sh.addShard/
4、使用sh.enableSharding啟用某個庫的分片功能,方法參見:
http://docs.mongodb.org/manual/reference/method/sh.enableSharding/
5、使用sh.shardCollection均衡某個集合的資料分佈,注意選擇合理的片鍵,方法 參見:
http://docs.mongodb.org/manual/reference/method/sh.shardCollection/
6、使用sh.status檢視集合的資料分佈,方法參見:
http://docs.mongodb.org/manual/reference/method/sh.status/
如何遷移資料到MongoDB?
可以通過以下方法遷移資料到MongoDB,包括:
1、使用mongodump和mongorestore工具匯出源資料,再匯入到副 本集的primary或者分片叢集的mongos;
2、如果源db是部署在uhost上,可以在內網通過副本集的複製機制同步資料到UCloud的MongoDB;
MongoDB的記憶體是如何管理?
MongoDB使用mmap管理記憶體,記憶體使用率經常是100%,也有時候經過備份 操作(自動備份和手動備份),記憶體也會立即升到100%,通常情況下無需擔心。記憶體上升後,通常情況下是不會主動釋 放的。
如果是平時的工作載荷,記憶體使用出現瓶頸,建議是線上升級記憶體。
MongoDB的磁碟是如何管理?
MongoDB採用預分配機制分配大檔案用於存放資料,drop、remove、 compact等操作是不會釋放磁碟空間的,但是可以使預分配的空間重用。如果磁碟使用率過高,這時候需要注意 是否會100%。如果磁碟空間使用率接近100%,建議採用以下方法克服:
1、升級磁碟;
2、建立secondary,通過複製方式將資料從primary同步到 secondary,這時候secondary的儲存空間往往會較小一些,然後執行一次主從切換;
3、修復db,執行db.repairDatabase,這會阻塞住整個例項的讀寫服務,不建議使用;