高可用分布式RDBMS(MySQL)&NoSQL(MongoDB等)數(shù)據(jù)庫設(shè)計(jì)與實(shí)踐
我要報(bào)名編輯日期 2018-06-14 閱讀次數(shù):544 次
【課程簡介】
隨著移動(dòng)互聯(lián)時(shí)代的到來,數(shù)據(jù)量、并發(fā)量急劇增加,針對海量數(shù)據(jù)的特點(diǎn),如何設(shè)計(jì)滿足企業(yè)應(yīng)用的高可用分布式數(shù)據(jù)庫架構(gòu)也變得越來越具有挑戰(zhàn)性。企業(yè)在規(guī)劃和設(shè)計(jì)高可用分布式數(shù)據(jù)庫架構(gòu),涉及到方方面面的知識點(diǎn),可選的方案也很多,如何在各種各樣,紛繁復(fù)雜的技術(shù)中構(gòu)建適合企業(yè)的高可用分布式數(shù)據(jù)庫技術(shù)架構(gòu),變成了一件很具挑戰(zhàn)的事情。一個(gè)好的高可用分布式數(shù)據(jù)庫技術(shù)架構(gòu)可以以較低的成本、更靈活的方式,滿足企業(yè)用戶需求。相反,糟糕的架構(gòu),不但花費(fèi)了重金,而且架構(gòu)過于復(fù)雜、過于笨重,線上故障不斷,架構(gòu)靈活性差,阻礙業(yè)務(wù)的發(fā)展。
我個(gè)人一直從事分布式RDBMS(MySQL)&NoSQL(MongoDB、Redis、Memcached等)數(shù)據(jù)庫架構(gòu)設(shè)計(jì)工作,根據(jù)在百度、58同城等六年內(nèi)滿足海量用戶請求的數(shù)據(jù)庫架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),帶領(lǐng)大家一起學(xué)習(xí)數(shù)據(jù)庫架構(gòu)如何玩?理論結(jié)合實(shí)踐,并重點(diǎn)講述案例,深入剖析海量分布式數(shù)據(jù)庫架構(gòu)設(shè)計(jì)的高可用性。并一同探討如何滿足貴企業(yè)的高可用的分布式數(shù)據(jù)庫架構(gòu)設(shè)計(jì)。
來吧,一起揭開“高可用分布式RDBMS&NoSQL數(shù)據(jù)庫設(shè)計(jì)與實(shí)踐”的神秘面紗!
【目標(biāo)收益】
本課程會(huì)采用理論結(jié)合實(shí)踐的方式,循序漸進(jìn)的講述。學(xué)習(xí)完本課程,可以系統(tǒng)了解互聯(lián)網(wǎng)高可用分布式數(shù)據(jù)庫架構(gòu)是如何設(shè)計(jì)和實(shí)踐的。課程中講述的高可用分布式數(shù)據(jù)庫架構(gòu)實(shí)踐方法會(huì)對個(gè)人架構(gòu)能力提升和貴公司的架構(gòu)優(yōu)化提供較好的參考依據(jù),從而能讓大家系統(tǒng)性的掌握高可用分布式數(shù)據(jù)庫架構(gòu)設(shè)計(jì)的方法論,并應(yīng)用于實(shí)際工作中。
【培訓(xùn)對象】
本課程適用于對RDBMS(MySQL等)、NoSQL(MongoDB等)感興趣的學(xué)員。本次課程,將會(huì)通過循序漸進(jìn)、步步深入的方式講解,理論結(jié)合實(shí)踐,每節(jié)課的講解都會(huì)基于線上億級別實(shí)際的使用實(shí)踐來展開,使同學(xué)們可以熟練掌握RDBMS、NoSQL。因此學(xué)員有一定的數(shù)據(jù)存儲(chǔ)的基礎(chǔ)更好。
【課程大綱】
RDBMS(MySQL)
第一課:MySQL體系架構(gòu)&常用部署
1. MySQL體系架構(gòu)組成;
2. MySQL單點(diǎn)部署方式及其適用場景;
3. MySQL復(fù)制部署方式及其適用場景;
4. MySQL分布式集群部署方式及其適用場景;
第二課:MySQL存儲(chǔ)引擎
1. MySQL存儲(chǔ)引擎概述;
2. MySQL存儲(chǔ)引擎原理;
3. MySQL MyISAM引擎;
4. MySQL InnoDB引擎;
5. MySQL存儲(chǔ)引擎適用場景;
第三課:MySQL數(shù)據(jù)庫開發(fā)設(shè)計(jì)規(guī)范
1. MySQL Schema設(shè)計(jì)規(guī)范;
2. MySQL命名規(guī)則;
3. MySQL字段類型設(shè)計(jì)規(guī)范;
4. MySQL索引設(shè)計(jì)規(guī)范;
5. MySQL鎖設(shè)計(jì)規(guī)范;
6. MySQL事務(wù)設(shè)計(jì)規(guī)范;
7. MySQL其他設(shè)計(jì)規(guī)范;
第四課:MySQL鎖和事務(wù)設(shè)計(jì)
1. MySQL事務(wù)概述;
2. MySQL鎖機(jī)制概述;
3. MySQL MyISAM表鎖及其使用;
4. MySQL InnoDB行鎖及其使用;
5. MySQL InnoDB 鎖實(shí)現(xiàn)及其借鑒;
第五課:MySQL索引設(shè)計(jì)
1. MySQL數(shù)據(jù)庫索引是什么;
2. MySQL數(shù)據(jù)庫索引類型;
3. MySQL索引存儲(chǔ);
4. MySQL索引更新;
5. 我們的實(shí)踐案例;
第六課:MySQL庫設(shè)計(jì)
1. MySQL庫設(shè)計(jì)原則;
2. MySQL海量數(shù)據(jù)如何分庫;
3. 我們的實(shí)踐案例;
第七課:MySQL表設(shè)計(jì)
1. MySQL表設(shè)計(jì)原則;
2. MySQL海量數(shù)據(jù)如何分表;
3. 我們的實(shí)踐案例;
第八課:MySQL高可用架構(gòu)設(shè)計(jì)
1. MySQL異步復(fù)制機(jī)制是什么;
2. MySQL集群Replication實(shí)現(xiàn)機(jī)制及其配置;
3. MySQL一主多從高可用架構(gòu);
4. MySQL一主多從(級聯(lián))高可用架構(gòu);
5. MySQL多主高可用架構(gòu);
6. MySQL雙主多從高可用架構(gòu);
7. 我們的實(shí)踐案例;
第九課:MySQL性能優(yōu)化方法
1. MySQL性能評估方法;
2. MySQL索引優(yōu)化方法;
3. MySQL SQL語句優(yōu)化方法;
4. MySQL Schema設(shè)計(jì)優(yōu)化方法;
5. MySQL Server性能優(yōu)化方法;
6. 我們的實(shí)踐案例;
第十課:MySQL監(jiān)控
1. MySQL監(jiān)控的重要性;
2. MySQL監(jiān)控的手段是什么;
3. MySQL進(jìn)程監(jiān)控、語義監(jiān)控、錯(cuò)誤監(jiān)控、慢查詢監(jiān)控、數(shù)據(jù)波動(dòng)監(jiān)控方法;
4. 我們的實(shí)踐案例;
第十一課:MySQL數(shù)據(jù)備份與恢復(fù)
1. MySQL數(shù)據(jù)備份的重要性;
2. MySQL數(shù)據(jù)備份的方法;
3. MySQL數(shù)據(jù)快速恢復(fù)的方法;
4. 我們的實(shí)踐案例;
NoSQL(MongoDB等)
第一課:NoSQL小生態(tài)
1. NoSQL產(chǎn)生背景;
2. NoSQL數(shù)據(jù)模型及其操作模型;
3. NoSQL數(shù)據(jù)可靠性;
4. NoSQL數(shù)據(jù)擴(kuò)展性;
5. NoSQL數(shù)據(jù)一致性;
6. NoSQL數(shù)據(jù)持久化;
7. 我們的MongoDB實(shí)踐
第二課:MongoDB入門
1. NoSQL簡介;
2. MongoDB是什么;
3. MongoDB的關(guān)鍵特性都有哪些;
4. MongoDB適用場景是什么;
5. MongoDB版本回顧;
第三課: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庫如何設(shè)計(jì)
1. MongoDB Autosharding是否靠譜;
2. MongoDB 庫級sharding是否需要開啟;
3. MongDB 庫設(shè)計(jì)原則;
4. 我們的MongoDB庫設(shè)計(jì)實(shí)踐;
第五課:MongoDB 表如何設(shè)計(jì)
1. collection sharding 是否靠譜;
2. collection sharding 是否需要開啟;
3. free scheme 真的free?怎么應(yīng)對;
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適用場景是什么;
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集群如何無縫擴(kuò)容擴(kuò)展
1. 什么情況下我們需要擴(kuò)容MongoDB集群;
2. 常用的MongoDB集群擴(kuò)容方案都有哪些;
3. 如何做到無縫的MongoDB集群擴(kuò)容擴(kuò)展;
4. 我們的MongoDB集群擴(kuò)容擴(kuò)展實(shí)踐;
第十三課:MongoDB集群如何無縫版本升級
1. 什么情況下我們需要做版本的升級;
2. 如何無縫對MongoDB集群版本升級;
3. 我們的MongoDB集群無縫升級實(shí)踐;
第十四課:MongoDB 3.0及其應(yīng)對方案
1. MongoDB 3.0關(guān)鍵特性是什么;
2. 我們?nèi)绾螒?yīng)對;