【課程背景】
隨著大數(shù)據(jù)時(shí)代的到來(lái),各種NoSql數(shù)據(jù)存儲(chǔ)產(chǎn)品蜂擁而至,MongoDB作為一支市場(chǎng)占有率非常高的分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù),它具備了易用性、Auto Sharding、高可擴(kuò)展性、豐富的查詢支持等特性,相比較傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),MongoDB具有了較大的誘惑力。伴隨著MongoDB 3.0版本的發(fā)布,此版本在寫入效率、數(shù)據(jù)壓縮率等方面進(jìn)一步提升,在運(yùn)維成本上進(jìn)一步縮減,隨著版本迭代MongoDB會(huì)更加穩(wěn)定,因此有理由相信MongoDB占有市場(chǎng)份額會(huì)進(jìn)一步提升,為大家在分布式海量數(shù)據(jù)存儲(chǔ)方面提供靠譜的數(shù)據(jù)庫(kù)!
本次課程,將會(huì)通過循序漸進(jìn)、步步深入的方式講解,理論結(jié)合實(shí)踐,每節(jié)課的講解都會(huì)基于線上億級(jí)別實(shí)際的使用實(shí)踐來(lái)展開,使同學(xué)可以熟練掌握MongoDB的特性、MongoDB集群如何部署、MongoDB庫(kù)&表如何高效設(shè)計(jì)、GridFS如何選擇和使用、MongoDB集群的監(jiān)控手段、線上真實(shí)問題案例分析及其解決方案、如何提升集群服務(wù)性能、如何無(wú)縫擴(kuò)容擴(kuò)展以及版本升級(jí)。通過本次課程的學(xué)習(xí),同學(xué)們可以真正掌握MongoDB,從而應(yīng)用于線上生產(chǎn)環(huán)境!
來(lái)吧,一起揭開MongoDB的神秘面紗!
【環(huán)境準(zhǔn)備】
硬件:物理機(jī)盡量4g以上內(nèi)存
OS:Centos 5.9及以上 64位
MongoDB:2.0.0及以上 64位
【培訓(xùn)對(duì)象】
本課程適用于對(duì)MongoDB(NoSQL、數(shù)據(jù)存儲(chǔ)等)感興趣的學(xué)員。本次課程,將會(huì)通過循序漸進(jìn)、步步深入的方式講解,理論結(jié)合實(shí)踐,每節(jié)課的講解都會(huì)基于線上億級(jí)別實(shí)際的使用實(shí)踐來(lái)展開,使同學(xué)們可以熟練掌握MongoDB。因此學(xué)員有一定的數(shù)據(jù)存儲(chǔ)的基礎(chǔ)更好。
【課程大綱】
第一課:MongoDB入門
1. NoSQL簡(jiǎn)介;
2. MongoDB是什么;
3. MongoDB的關(guān)鍵特性都有哪些;
4. MongoDB適用場(chǎng)景是什么;
5. MongoDB版本回顧;
6. 學(xué)完MongoDB課程能具備什么樣的技能、達(dá)到什么樣的高度;
7. 本次課程學(xué)員需要前期準(zhǔn)備的基礎(chǔ)軟硬件環(huán)境;
第二課:MongoDB部署
1. MongoDB的體系架構(gòu)解讀;
2. MongoDB生態(tài)系統(tǒng)節(jié)點(diǎn)類型;
3. MongoDB主從復(fù)制模式解讀;
4. MongoDB副本集復(fù)制模式解讀;
5. MongoDB分片解讀;
6. MongoDB集群部署方式都有哪些?如何做選擇;
7. 我們的MongoDB集群部署實(shí)踐;
第三課:MongoDB庫(kù)如何設(shè)計(jì)
1. MongoDB Autosharding是否靠譜;
2. MongoDB 庫(kù)級(jí)sharding是否需要開啟;
3. MongDB 庫(kù)設(shè)計(jì)原則;
4. 我們的MongoDB庫(kù)設(shè)計(jì)實(shí)踐;
第四課:MongoDB 表如何設(shè)計(jì)
1. collection sharding 是否靠譜;
2. collection sharding 是否需要開啟;
3. free scheme 真的free?怎么應(yīng)對(duì);
4. collection 字段名如何選??;
5. collection 索引如何設(shè)計(jì);
6. collection 空間地理索引是否靠譜?如何設(shè)計(jì);
7. collection 設(shè)計(jì)原則;
8. collection 單表數(shù)據(jù)量大如何sharding;
9. 我們的MongoDB 表設(shè)計(jì)實(shí)踐;
第五課:MongoDB GridFS
1. GridFS是什么;
2. GridFS適用場(chǎng)景是什么;
3. GridFS如何使用;
4. 我們的GridFS使用實(shí)踐;
第六課:MongoDB Map Reduce
1. MongoDB集群Map Reduce原理;
2. MongoDB集群上如何做Map Reduce;
3. 我們的MongoDB Map Reduce實(shí)踐;
第七課:MongoDB集群監(jiān)控
1. MongoDB集群監(jiān)控的方式都有哪些;
2. Mongosniff能監(jiān)控什么,如何監(jiān)控;
3. Mongostat能監(jiān)控什么,如何監(jiān)控;
4. MongoDB內(nèi)部工具能監(jiān)控什么,如何監(jiān)控;
5. MMS能監(jiān)控什么,如何監(jiān)控;
6. 第三方監(jiān)控能監(jiān)控什么,如何監(jiān)控;
7. 我們的MongoDB集群監(jiān)控實(shí)踐;
第八課:MongoDB集群數(shù)據(jù)安全性和一致性
1. MongoDB集群會(huì)出現(xiàn)數(shù)據(jù)是否會(huì)丟失;
2. MongoDB集群數(shù)據(jù)安全性如何保證;
3. MongoDB集群是否會(huì)出現(xiàn)數(shù)據(jù)不一致;
4. MongoDB集群一致性如何保證;
5. 我們的MongoDB集群數(shù)據(jù)安全性和一致性實(shí)踐;
第九課:MongoDB集群線上典型問題案例分析及解決
1. 大量刪除數(shù)據(jù)問題及其解決方案;
2. 大量數(shù)據(jù)空洞問題及其解決方案;
3. 存儲(chǔ)量&并發(fā)量增大,CPU飆升問題及其解決方案;
4. Sharding遷移數(shù)據(jù)抖動(dòng)問題及其解決方案;
5. 內(nèi)存頻繁swap、磁盤IO性能不足問題及其解決方案;
6. 地理空間索引查詢和重構(gòu)消耗過多CPU資源問題及其解決方案;
第十課:MongoDB集群性能優(yōu)化方案
1. 導(dǎo)致MongoDB集群性能低下原因是什么;
2. 如何盡早發(fā)現(xiàn)MongoDB集群性能問題;
3. 如何收縮數(shù)據(jù)提升性能;
4. 如何Scale Up方式提升性能;
5. 如何Scale Out方式提升性能;
6. 我們的MongoDB集群性能優(yōu)化實(shí)踐;
第十一課:MongoDB集群如何無(wú)縫擴(kuò)容擴(kuò)展
1. 什么情況下我們需要擴(kuò)容MongoDB集群;
2. 常用的MongoDB集群擴(kuò)容方案都有哪些;
3. 如何做到無(wú)縫的MongoDB集群擴(kuò)容擴(kuò)展;
4. 我們的MongoDB集群擴(kuò)容擴(kuò)展實(shí)踐;
第十二課:MongoDB集群如何無(wú)縫版本升級(jí)
1. 什么情況下我們需要做版本的升級(jí);
2. 如何無(wú)縫對(duì)MongoDB集群版本升級(jí);
3. 我們的MongoDB集群無(wú)縫升級(jí)實(shí)踐;
第十三課:MongoDB 3.0及其應(yīng)對(duì)方案
1. MongoDB 3.0關(guān)鍵特性是什么;
2. 我們?nèi)绾螒?yīng)對(duì);