云數(shù)據(jù)庫課件_第1頁
云數(shù)據(jù)庫課件_第2頁
云數(shù)據(jù)庫課件_第3頁
云數(shù)據(jù)庫課件_第4頁
云數(shù)據(jù)庫課件_第5頁
已閱讀5頁,還剩149頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

云數(shù)據(jù)庫云數(shù)據(jù)庫提綱1 云數(shù)據(jù)庫概述2 云數(shù)據(jù)庫產(chǎn)品3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)4AmazonAWS和云數(shù)據(jù)庫5 微軟云數(shù)據(jù)庫SQLAzure6云數(shù)據(jù)庫實(shí)踐提綱1 云數(shù)據(jù)庫概述1 云數(shù)據(jù)庫概述1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)1.2 云數(shù)據(jù)庫概念1.3 云數(shù)據(jù)庫的特性1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系1 云數(shù)據(jù)庫概述1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)通過整合、管理、調(diào)配分布在網(wǎng)絡(luò)各處的計算資源,通過互聯(lián)網(wǎng)以統(tǒng)一界面,同時向大量的用戶提供服務(wù)云計算概念云計算特點(diǎn)超大規(guī)模計算、虛擬化、高可靠性和安全性、通用性、動態(tài)擴(kuò)展性、按需服務(wù)、降低成本云計算應(yīng)用場景Google個人云服務(wù)企業(yè)應(yīng)用實(shí)例:AnimotoAmazon云計算示意圖1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)通過整合、管理、調(diào)配分布在1.2 云數(shù)據(jù)庫概念云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)據(jù)庫。云數(shù)據(jù)庫是在云計算的大背景下發(fā)展起來的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強(qiáng)了數(shù)據(jù)庫的存儲能力,消除了人員、硬件、軟件的重復(fù)配置,讓軟、硬件升級變得更加容易。云數(shù)據(jù)庫具有高可擴(kuò)展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點(diǎn)。1.2 云數(shù)據(jù)庫概念云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)1.3 云數(shù)據(jù)庫的特性云數(shù)據(jù)庫具有以下特性:(1)動態(tài)可擴(kuò)展(2)高可用性

(3)較低的使用代價

(4)易用性

(5)高性能

(6)免維護(hù)

(7)安全

表6-2騰訊云數(shù)據(jù)庫和自建數(shù)據(jù)庫的比較自建數(shù)據(jù)庫騰訊云數(shù)據(jù)庫數(shù)據(jù)安全性開發(fā)者自行解決,成本高昂15種類型備份數(shù)據(jù),保證數(shù)據(jù)安全服務(wù)可用性99.99%高可靠性數(shù)據(jù)備份0花費(fèi),系統(tǒng)自動多時間點(diǎn)數(shù)據(jù)備份維護(hù)成本0成本,專業(yè)團(tuán)隊(duì)7x24小時幫助維護(hù)實(shí)例擴(kuò)容一鍵式直接擴(kuò)容,安全可靠資源利用率按需申請,資源利用率高達(dá)99.9%技術(shù)支持專業(yè)團(tuán)隊(duì)一對一指導(dǎo)、QQ遠(yuǎn)程協(xié)助開發(fā)者1.3 云數(shù)據(jù)庫的特性云數(shù)據(jù)庫具有以下特性:(1)動態(tài)可擴(kuò)1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇企業(yè)類型不同,對于存儲的需求也千差萬別,而云數(shù)據(jù)庫可以很好地滿足不同企業(yè)的個性化存儲需求:首先,云數(shù)據(jù)庫可以滿足大企業(yè)的海量數(shù)據(jù)存儲需求其次,云數(shù)據(jù)庫可以滿足中小企業(yè)的低成本數(shù)據(jù)存儲需求另外,云數(shù)據(jù)庫可以滿足企業(yè)動態(tài)變化的數(shù)據(jù)存儲需求

到底選擇自建數(shù)據(jù)庫還是選擇云數(shù)據(jù)庫,取決于企業(yè)自身的具體需求對于一些大型企業(yè),目前通常采用自建數(shù)據(jù)庫對于一些財力有限的中小企業(yè)而言,IT預(yù)算比較有限,云數(shù)據(jù)庫這種前期零投入、后期免維護(hù)的數(shù)據(jù)庫服務(wù),可以很好滿足它們的需求

1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇企業(yè)類型不同,1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系從數(shù)據(jù)模型的角度來說,云數(shù)據(jù)庫并非一種全新的數(shù)據(jù)庫技術(shù),而只是以服務(wù)的方式提供數(shù)據(jù)庫功能云數(shù)據(jù)庫并沒有專屬于自己的數(shù)據(jù)模型,云數(shù)據(jù)庫所采用的數(shù)據(jù)模型可以是關(guān)系數(shù)據(jù)庫所使用的關(guān)系模型(微軟的SQLAzure云數(shù)據(jù)庫、阿里云RDS都采用了關(guān)系模型),也可以是NoSQL數(shù)據(jù)庫所使用的非關(guān)系模型(AmazonDynamo云數(shù)據(jù)庫采用的是“鍵/值”存儲)同一個公司也可能提供采用不同數(shù)據(jù)模型的多種云數(shù)據(jù)庫服務(wù)許多公司在開發(fā)云數(shù)據(jù)庫時,后端數(shù)據(jù)庫都是直接使用現(xiàn)有的各種關(guān)系數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫產(chǎn)品1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系從數(shù)據(jù)模型的角度來說,云數(shù)2 云數(shù)據(jù)庫產(chǎn)品2.1 云數(shù)據(jù)庫廠商概述2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品2.3 Google的云數(shù)據(jù)庫產(chǎn)品2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品2.5 其他云數(shù)據(jù)庫產(chǎn)品2 云數(shù)據(jù)庫產(chǎn)品2.1 云數(shù)據(jù)庫廠商概述2.1 云數(shù)據(jù)庫廠商概述表6-3云數(shù)據(jù)庫產(chǎn)品企業(yè)產(chǎn)品AmazonDynamo、SimpleDB、RDSGoogleGoogleCloudSQLMicrosoftMicrosoftSQLAzureOracleOracleCloudYahoo!PNUTSVerticaAnalyticDatabasev3.0fortheCloudEnerpriseDBPostgresPlusintheCloud阿里阿里云RDS百度百度云數(shù)據(jù)庫騰訊騰訊云數(shù)據(jù)庫2.1 云數(shù)據(jù)庫廠商概述表6-3云數(shù)據(jù)庫產(chǎn)品企業(yè)產(chǎn)品Ama2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品Amazon是云數(shù)據(jù)庫市場的先行者。Amazon除了提供著名的S3存儲服務(wù)和EC2計算服務(wù)以外,還提供基于云的數(shù)據(jù)庫服務(wù):Amazon

RDS:云中的關(guān)系數(shù)據(jù)庫AmazonSimpleDB:云中的鍵值數(shù)據(jù)庫Amazon

DynamoDB:云中的NoSQL數(shù)據(jù)庫Amazon

Redshift:云中的數(shù)據(jù)倉庫Amazon

ElastiCache:云中的分布式內(nèi)存緩存2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品Amazon是云數(shù)據(jù)庫市場2.3 Google的云數(shù)據(jù)庫產(chǎn)品GoogleCloudSQL是谷歌公司推出的基于MySQL的云數(shù)據(jù)庫使用CloudSQL,所有的事務(wù)都在云中,并由谷歌管理,用戶不需要配置或者排查錯誤谷歌還提供導(dǎo)入或?qū)С龇?wù),方便用戶將數(shù)據(jù)庫帶進(jìn)或帶出云谷歌使用用戶非常熟悉的MySQL,帶有JDBC支持(適用于基于Java的AppEngine應(yīng)用)和DB-API支持(適用于基于Python的AppEngine應(yīng)用)的傳統(tǒng)MySQL數(shù)據(jù)庫環(huán)境,因此,多數(shù)應(yīng)用程序不需過多調(diào)試即可運(yùn)行,數(shù)據(jù)格式對于大多數(shù)開發(fā)者和管理員來說也是非常熟悉的GoogleCloudSQL還有一個好處就是與GoogleAppEngine集成2.3 Google的云數(shù)據(jù)庫產(chǎn)品GoogleCloud2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品SQLAzure具有以下特性:屬于關(guān)系型數(shù)據(jù)庫:支持使用TSQL(TransactStructuredQueryLanguage)來管理、創(chuàng)建和操作云數(shù)據(jù)庫支持存儲過程:它的數(shù)據(jù)類型、存儲過程和傳統(tǒng)的SQLServer具有很大的相似性,因此,應(yīng)用可以在本地進(jìn)行開發(fā),然后部署到云平臺上支持大量數(shù)據(jù)類型:包含了幾乎所有典型的SQLServer2008的數(shù)據(jù)類型支持云中的事務(wù):支持局部事務(wù),但是不支持分布式事務(wù)2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品SQLAzure具3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)3.1 UMP系統(tǒng)概述3.2 UMP系統(tǒng)架構(gòu)3.3 UMP系統(tǒng)功能3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)3.1 UMP系統(tǒng)概述3.1 UMP系統(tǒng)概述總的來說,UMP系統(tǒng)架構(gòu)設(shè)計遵循了以下原則:保持單一的系統(tǒng)對外入口,并且為系統(tǒng)內(nèi)部維護(hù)單一的資源池消除單點(diǎn)故障,保證服務(wù)的高可用性保證系統(tǒng)具有良好的可伸縮,能夠動態(tài)地增加、刪減計算與存儲節(jié)點(diǎn)保證分配給用戶的資源也是彈性可伸縮的,資源之間相互隔離,確保應(yīng)用和數(shù)據(jù)安全UMP系統(tǒng)是低成本和高性能的MySQL云數(shù)據(jù)庫方案3.1 UMP系統(tǒng)概述總的來說,UMP系統(tǒng)架構(gòu)設(shè)計遵循了以下3.2 UMP系統(tǒng)架構(gòu)UMP系統(tǒng)中的角色包括:Controller服務(wù)器Proxy服務(wù)器Agent服務(wù)器Web控制臺日志分析服務(wù)器信息統(tǒng)計服務(wù)器愚公系統(tǒng)依賴的開源組件包括:MnesiaLVSRabbitMQZooKeeper3.2 UMP系統(tǒng)架構(gòu)UMP系統(tǒng)中的角色包括:3.2 UMP系統(tǒng)架構(gòu)1.Mnesia

Mnesia是一個分布式數(shù)據(jù)庫管理系統(tǒng)Mnesia支持事務(wù),支持透明的數(shù)據(jù)分片,利用兩階段鎖實(shí)現(xiàn)分布式事務(wù),可以線性擴(kuò)展到至少50個節(jié)點(diǎn)Mnesia的數(shù)據(jù)庫模式(schema)可在運(yùn)行時動態(tài)重配置,表能被遷移或復(fù)制到多個節(jié)點(diǎn)來改進(jìn)容錯性Mnesia的這些特性,使其在開發(fā)云數(shù)據(jù)庫時被用來提供分布式數(shù)據(jù)庫服務(wù)

3.2 UMP系統(tǒng)架構(gòu)1.MnesiaMnesia是一個3.2 UMP系統(tǒng)架構(gòu)2.RabbitMQRabbitMQ是一個工業(yè)級的消息隊(duì)列產(chǎn)品(功能類似于IBM公司的消息隊(duì)列產(chǎn)品IBMWebsphereMQ),作為消息傳輸中間件來使用,可以實(shí)現(xiàn)可靠的消息傳送UMP集群中各個節(jié)點(diǎn)之間的通信,不需要建立專門的連接,都是通過讀寫隊(duì)列消息來實(shí)現(xiàn)的3.2 UMP系統(tǒng)架構(gòu)2.RabbitMQRabbitMQ3.2 UMP系統(tǒng)架構(gòu)3.Zookeeper在UMP系統(tǒng)中,Zookeeper主要發(fā)揮三個作用:作為全局的配置服務(wù)器提供分布式鎖(選出一個集群的“總管”)監(jiān)控所有MySQL實(shí)例Zookeeper是高效和可靠的協(xié)同工作系統(tǒng),提供分布式鎖之類的基本服務(wù)(比如統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等),用于構(gòu)建分布式應(yīng)用,減輕分布式應(yīng)用程序所承擔(dān)的協(xié)調(diào)任務(wù)3.2 UMP系統(tǒng)架構(gòu)3.Zookeeper在UMP系統(tǒng)中3.2 UMP系統(tǒng)架構(gòu)4.LVSLVS(LinuxVirtualServer)即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng)UMP系統(tǒng)借助于LVS來實(shí)現(xiàn)集群內(nèi)部的負(fù)載均衡LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)調(diào)度器是LVS集群系統(tǒng)的唯一入口點(diǎn),調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序3.2 UMP系統(tǒng)架構(gòu)4.LVSLVS(LinuxVirt3.2 UMP系統(tǒng)架構(gòu)5.Controller服務(wù)器

Controller服務(wù)器向UMP集群提供各種管理服務(wù),實(shí)現(xiàn)集群成員管理、元數(shù)據(jù)存儲、MySQL實(shí)例管理、故障恢復(fù)、備份、遷移、擴(kuò)容等功能Controller服務(wù)器上運(yùn)行了一組Mnesia分布式數(shù)據(jù)庫服務(wù),其中存儲了各種系統(tǒng)元數(shù)據(jù),主要包括集群成員、用戶的配置和狀態(tài)信息,以及用戶名到后端MySQL實(shí)例地址的映射關(guān)系(或稱為“路由表”)等當(dāng)其它服務(wù)器組件需要獲取用戶數(shù)據(jù)時,可以向Controller服務(wù)器發(fā)送請求獲取數(shù)據(jù)為了避免單點(diǎn)故障,保證系統(tǒng)的高可用性,UMP系統(tǒng)中部署了多臺Controller服務(wù)器,然后,由Zookeeper的分布式鎖功能來幫助選出一個“總管”,負(fù)責(zé)各種系統(tǒng)任務(wù)的調(diào)度和監(jiān)控3.2 UMP系統(tǒng)架構(gòu)5.Controller服務(wù)器Co3.2 UMP系統(tǒng)架構(gòu)Web控制臺Web控制臺向用戶提供系統(tǒng)管理界面7.Proxy服務(wù)器

Proxy服務(wù)器向用戶提供訪問MySQL數(shù)據(jù)庫的服務(wù),它完全實(shí)現(xiàn)了MySQL協(xié)議,用戶可以使用已有的MySQL客戶端連接到Proxy服務(wù)器,Proxy服務(wù)器通過用戶名獲取到用戶的認(rèn)證信息、資源配額的限制(例如QPS、IOPS(I/OPerSecond)、最大連接數(shù)等),以及后臺MySQL實(shí)例的地址,然后,用戶的SQL查詢請求會被轉(zhuǎn)發(fā)到相應(yīng)的MySQL實(shí)例上。除了數(shù)據(jù)路由的基本功能外,Proxy服務(wù)器中還實(shí)現(xiàn)了很多重要的功能,主要包括屏蔽MySQL實(shí)例故障、讀寫分離、分庫分表、資源隔離、記錄用戶訪問日志等

3.2 UMP系統(tǒng)架構(gòu)Web控制臺3.2 UMP系統(tǒng)架構(gòu)8.Agent服務(wù)器

Agent服務(wù)器部署在運(yùn)行MySQL進(jìn)程的機(jī)器上,用來管理每臺物理機(jī)上的MySQL實(shí)例,執(zhí)行主從切換、創(chuàng)建、刪除、備份、遷移等操作,同時,還負(fù)責(zé)收集和分析MySQL進(jìn)程的統(tǒng)計信息、慢查詢?nèi)罩荆⊿lowQueryLog)和bin-log9.日志分析服務(wù)器日志分析服務(wù)器存儲和分析Proxy服務(wù)器傳入的用戶訪問日志,并支持實(shí)時查詢一段時間內(nèi)的慢日志和統(tǒng)計報表10.信息統(tǒng)計服務(wù)器信息統(tǒng)計服務(wù)器定期將采集到的用戶的連接數(shù)、QPS數(shù)值以及MySQL實(shí)例的進(jìn)程狀態(tài)用RRDtool進(jìn)行統(tǒng)計,可以在Web界面上可視化展示統(tǒng)計結(jié)果,也可以把統(tǒng)計結(jié)果作為今后實(shí)現(xiàn)彈性的資源分配和自動化的MySQL實(shí)例遷移的依據(jù)11.愚公系統(tǒng)愚公系統(tǒng)是一個全量復(fù)制結(jié)合bin-log分析進(jìn)行增量復(fù)制的工具,可以實(shí)現(xiàn)在不停機(jī)的情況下動態(tài)擴(kuò)容、縮容和遷移3.2 UMP系統(tǒng)架構(gòu)8.Agent服務(wù)器3.2 UMP系統(tǒng)架構(gòu)3.2 UMP系統(tǒng)架構(gòu)3.3 UMP系統(tǒng)功能UMP系統(tǒng)是構(gòu)建在一個大的集群之上的,通過多個組件的協(xié)同作業(yè),整個系統(tǒng)實(shí)現(xiàn)了對用戶透明的各種功能:容災(zāi)讀寫分離分庫分表資源管理資源調(diào)度資源隔離數(shù)據(jù)安全3.3 UMP系統(tǒng)功能UMP系統(tǒng)是構(gòu)建在一個大的集群之上的,3.3 UMP系統(tǒng)功能1.容災(zāi)

為了實(shí)現(xiàn)容災(zāi),UMP系統(tǒng)會為每個用戶創(chuàng)建兩個MySQL實(shí)例,一個是主庫,一個是從庫主庫和從庫的狀態(tài)是由Zookeeper負(fù)責(zé)維護(hù)的主從切換過程如下:Zookeeper探測到主庫故障,通知Controller服務(wù)器Controller服務(wù)器啟動主從切換時,會修改“路由表”,即用戶名到后端MySQL實(shí)例地址的映射關(guān)系把主庫標(biāo)記為不可用借助于消息中間件RabbitMQ通知所有Proxy服務(wù)器修改用戶名到后端MySQL實(shí)例地址的映射關(guān)系全部過程對用戶透明3.3 UMP系統(tǒng)功能1.容災(zāi)為了實(shí)現(xiàn)容災(zāi),UMP系統(tǒng)會3.3 UMP系統(tǒng)功能宕機(jī)后的主庫在進(jìn)行恢復(fù)處理后需要再次上線,過程如下:在主庫恢復(fù)時,會把從庫的更新復(fù)制給自己當(dāng)主庫的數(shù)據(jù)庫狀態(tài)快要達(dá)到和從庫一致的狀態(tài)時,Controller服務(wù)器就會命令從庫停止更新,進(jìn)入不可寫狀態(tài),禁止用戶寫入數(shù)據(jù)等到主庫更新到和從庫完全一致的狀態(tài)時,Controller服務(wù)器就會發(fā)起主從切換操作,并在路由表中把主庫標(biāo)記為可用狀態(tài)通知Proxy服務(wù)器把寫操作切回主庫上,用戶寫操作可以繼續(xù)執(zhí)行,之后再把從庫修改為可寫狀態(tài)1.容災(zāi)

3.3 UMP系統(tǒng)功能宕機(jī)后的主庫在進(jìn)行恢復(fù)處理后需要再次上3.3 UMP系統(tǒng)功能2.讀寫分離

充分利用主從庫實(shí)現(xiàn)用戶讀寫操作的分離,實(shí)現(xiàn)負(fù)載均衡UMP系統(tǒng)實(shí)現(xiàn)了對于用戶透明的讀寫分離功能,當(dāng)整個功能被開啟時,負(fù)責(zé)向用戶提供訪問MySQL數(shù)據(jù)庫服務(wù)的Proxy服務(wù)器,就會對用戶發(fā)起的SQL語句進(jìn)行解析,如果屬于寫操作,就直接發(fā)送到主庫,如果是讀操作,就會被均衡地發(fā)送到主庫和從庫上執(zhí)行3.3 UMP系統(tǒng)功能2.讀寫分離充分利用主從庫實(shí)現(xiàn)用戶3.3 UMP系統(tǒng)功能3.分庫分表UMP支持對用戶透明的分庫分表(shard/horizontalpartition)

當(dāng)采用分庫分表時,系統(tǒng)處理用戶查詢的過程如下:首先,Proxy服務(wù)器解析用戶SQL語句,提取出重寫和分發(fā)SQL語句所需要的信息其次,對SQL語句進(jìn)行重寫,得到多個針對相應(yīng)MySQL實(shí)例的子語句,然后把子語句分發(fā)到對應(yīng)的MySQL實(shí)例上執(zhí)行最后,接收來自各個MySQL實(shí)例的SQL語句執(zhí)行結(jié)果,合并得到最終結(jié)果3.3 UMP系統(tǒng)功能3.分庫分表UMP支持對用戶透明的分3.3 UMP系統(tǒng)功能4.資源管理

UMP系統(tǒng)采用資源池機(jī)制來管理數(shù)據(jù)庫服務(wù)器上的CPU、內(nèi)存、磁盤等計算資源,所有的計算資源都放在資源池內(nèi)進(jìn)行統(tǒng)一分配,資源池是為MySQL實(shí)例分配資源的基本單位整個集群中的所有服務(wù)器會根據(jù)其機(jī)型、所在機(jī)房等因素被劃分多個資源池,每臺服務(wù)器會被加入到相應(yīng)的資源池中對于每個具體MySQL實(shí)例,管理員會根據(jù)應(yīng)用部署在哪些機(jī)房、需要哪些計算資源等因素,為該MySQL實(shí)例具體指定主庫和從庫所在的資源池,然后,系統(tǒng)的實(shí)例管理服務(wù)會本著負(fù)載均衡的原則,從資源池中選擇負(fù)載較輕的服務(wù)器來創(chuàng)建MySQL實(shí)例3.3 UMP系統(tǒng)功能4.資源管理UMP系統(tǒng)采用資源池機(jī)3.3 UMP系統(tǒng)功能5.資源調(diào)度

UMP系統(tǒng)中有三種規(guī)格的用戶,分別是數(shù)據(jù)量和流量比較小的用戶、中等規(guī)模用戶以及需要分庫分表的用戶多個小規(guī)模用戶可以共享同一個MySQL實(shí)例對于中等規(guī)模的用戶,每個用戶獨(dú)占一個MySQL實(shí)例對于分庫分表的用戶,會占有多個獨(dú)立的MySQL實(shí)例3.3 UMP系統(tǒng)功能5.資源調(diào)度UMP系統(tǒng)中有三種規(guī)格3.3 UMP系統(tǒng)功能資源隔離表6-4UMP采用的兩種資源隔離方式方法應(yīng)用場合實(shí)現(xiàn)方式用Cgroup限制MySQL進(jìn)程資源適用于多個MySQL實(shí)例共享同一臺物理機(jī)的情況可以對用戶的MySQL進(jìn)程最大可以使用的CPU使用率、內(nèi)存和IOPS等進(jìn)行限制在Proxy服務(wù)器端限制QPS適用于多個用戶共享同一個MySQL實(shí)例的情況Controller服務(wù)器監(jiān)測用戶的MySQL實(shí)例的資源消耗情況,如果明顯超出配額,就通知Proxy服務(wù)器通過增加延遲的方法去限制用戶的QPS,以減少用戶對系統(tǒng)資源的消耗3.3 UMP系統(tǒng)功能資源隔離表6-4UMP采用的兩種資源3.3 UMP系統(tǒng)功能7.數(shù)據(jù)安全UMP系統(tǒng)設(shè)計了多種機(jī)制來保證數(shù)據(jù)安全:SSL數(shù)據(jù)庫連接:SSL(SecureSocketsLayer)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,它在傳輸層對網(wǎng)絡(luò)連接進(jìn)行加密。Proxy服務(wù)器實(shí)現(xiàn)了完整的MySQL客戶端/服務(wù)器協(xié)議,可以與客戶端之間建立SSL數(shù)據(jù)庫連接數(shù)據(jù)訪問IP白名單:可以把允許訪問云數(shù)據(jù)庫的IP地址放入“白名單”,只有白名單內(nèi)的IP地址才能訪問,其他IP地址的訪問都會被拒絕,從而進(jìn)一步保證賬戶安全記錄用戶操作日志:用戶的所有操作記錄都會被記錄到日志分析服務(wù)器,通過檢查用戶操作記錄,可以發(fā)現(xiàn)隱藏的安全漏洞SQL攔截:Proxy服務(wù)器可以根據(jù)要求攔截多種類型的SQL語句,比如全表掃描語句“select*”

3.3 UMP系統(tǒng)功能7.數(shù)據(jù)安全UMP系統(tǒng)設(shè)計了多種機(jī)制4AmazonAWS和云數(shù)據(jù)庫4.1Amazon和云計算的淵源4.2AmazonAWS4.3AmazonAWS平臺上的云數(shù)據(jù)庫4AmazonAWS和云數(shù)據(jù)庫4.1Amazon和云計4.1Amazon和云計算的淵源Amazon

Web

Services業(yè)務(wù)相當(dāng)于緊隨其后的4大競爭對手的總和亞馬遜在全球擁有12個區(qū)域性數(shù)據(jù)中心AmazonWebServices提供的多個亞馬遜數(shù)據(jù)庫都在與甲骨文(Oracle)激烈競爭,其中AmazonRDS有10萬多個活躍用戶亞馬遜數(shù)據(jù)庫Aurora,是AmazonWebServices歷史上增長最快的服務(wù)2016年3月14日,亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)十歲了亞馬遜云計算平臺滿10歲徹底改變科技界4.1Amazon和云計算的淵源Amazon

Web

Se4.1Amazon和云計算的淵源ServerStorageServerStorageVisualizationInfrastructurePlatformApplicationInfrastructureasaServicePlatformasaServiceSoftwareasaServiceSaaSPaaSIaaS亞馬遜的云服務(wù)提供了多達(dá)幾十種服務(wù),涵蓋了IaaS、PaaS、SaaS這三層4.1Amazon和云計算的淵源ServerStorage4.2AmazonAWSAmazonAWS架構(gòu)圖4.2AmazonAWSAmazonAWS架構(gòu)圖4.2AmazonAWSAWSGlobalInfrastructure(AWS全局基礎(chǔ)設(shè)施)在全局基礎(chǔ)設(shè)施中有3個很重要的概念。第一個是Region(區(qū)域),每個Region是相互獨(dú)立的,自成一套云服務(wù)體系,分布在全球各地。目前全球有10個Region(比如北京)第二個是AvailabilityZone(可用區(qū)),每個Region又由數(shù)個可用區(qū)組成,每個可用區(qū)可以看做一個數(shù)據(jù)中心,相互之間通過光纖連接第三個是EdgeLocations(邊緣節(jié)點(diǎn))。全球目前有50多個邊緣節(jié)點(diǎn),是一個內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN,ContentDistrubtionNetwork),可以降低內(nèi)容分發(fā)的延遲,保證終端用戶獲取資源的速度4.2AmazonAWSAWSGlobalInfra4.2AmazonAWSNetworking(網(wǎng)絡(luò))AWS提供的網(wǎng)絡(luò)服務(wù)主要有:DirectConnect:支持企業(yè)自身的數(shù)據(jù)中心直接與AWS的數(shù)據(jù)中心直連,充分利用企業(yè)現(xiàn)有的資源VPNConnection:通過VPN連接AWS,保證數(shù)據(jù)的安全性VirtualPrivateCloud:私有云,從AWS云資源中分一塊給你使用,進(jìn)一步提高安全性Route53:亞馬遜提供的高可用的可伸縮的云域名解析系統(tǒng)。AmazonRoute53高效地將用戶請求連接到AWS中運(yùn)行的基礎(chǔ)設(shè)施,例如AmazonEC2實(shí)例、ElasticLoadBalancing負(fù)載均衡器或AmazonS3存儲桶4.2AmazonAWSNetworking(網(wǎng)絡(luò))4.2AmazonAWSCompute(計算)亞馬遜的計算核心,包括了眾多的服務(wù)EC2:ElasticComputeCloud,亞馬遜的虛擬機(jī),支持Windows和Linux的多個版本,支持API創(chuàng)建和銷毀,有多種型號可供選擇,按需使用。并且有自動擴(kuò)展功能(5分鐘即可新建一個虛擬機(jī)),有效解決應(yīng)用程序性能問題ELB:ElasticLoadBalancing,亞馬遜提供的負(fù)載均衡器,可以和EC2無縫配合使用,橫跨多個可用區(qū),可以自動檢查實(shí)例的健康狀況,自動剔除有問題的實(shí)例,保證應(yīng)用程序的高可用性4.2AmazonAWSCompute(計算)4.2AmazonAWSStorage(存儲)S3:SimpleStorageService,簡單存儲服務(wù),是亞馬遜對外提供的對象存儲服務(wù)。不限容量,單個對象大小可達(dá)5TB,可實(shí)現(xiàn)高達(dá)99.999999999%的可用性EBS:ElasticBlockStorage,專門為AmazonEC2虛擬機(jī)設(shè)計的彈性塊存儲服務(wù),AmazonEBS可以為AmazonEC2的虛擬機(jī)創(chuàng)建卷volumns。EBS相當(dāng)于一個分布式塊設(shè)備,可以直接掛載在EC2實(shí)例上,用于替代EC2實(shí)例本地存儲,從而增強(qiáng)EC2可靠性Glacier:主要用于較少使用的存儲存檔文件和備份文件,價格便宜量又足,安全性高4.2AmazonAWSStorage(存儲)4.2AmazonAWSDatabase(數(shù)據(jù)庫)亞馬遜提供關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫,以及一些cache等數(shù)據(jù)庫服務(wù)SimpleDB:基于云的鍵/值數(shù)據(jù)存儲服務(wù)DynamoDB:DynamoDB是亞馬遜自主研發(fā)的NoSQL數(shù)據(jù)庫,性能高,容錯性強(qiáng),支持分布式RDS:RelationalDatabaseService,關(guān)系型數(shù)據(jù)庫服務(wù)。支持MySQL,SQLServer和Oracle等數(shù)據(jù)庫AmazonElastiCache:數(shù)據(jù)庫緩存服務(wù)4.2AmazonAWSDatabase(數(shù)據(jù)庫)4.2AmazonAWSApplicationService(應(yīng)用程序服務(wù))CloudSearch:一個彈性的搜索引擎,可用于企業(yè)級搜索AmazonSQS:隊(duì)列服務(wù),存儲和分發(fā)消息SimpleWorkflow:一個工作流框架CloudFront:世界范圍的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)EMR:ElasticMapReduce,一個Hadoop框架的實(shí)例,可用于大數(shù)據(jù)處理4.2AmazonAWSApplicationServ4.2AmazonAWSDeployment&Admin(部署和管理)ElasticBeanStalk:一鍵式創(chuàng)建各種開發(fā)環(huán)境和運(yùn)行時CloudFormation:采用JSON格式的模板文件來創(chuàng)建和管理一系列亞馬遜云資源OpsWorks:OpsWorks允許用戶將應(yīng)用程序的部署模塊化,可以實(shí)現(xiàn)對數(shù)據(jù)庫、運(yùn)行時、服務(wù)器軟件等自動化設(shè)置和安裝IAM:Identity&AccessManagement,認(rèn)證和訪問管理服務(wù)。用戶使用云服務(wù)最擔(dān)心的事情之一就是安全問題。亞馬遜通過IAM提供了立體化的安全策略,保證用戶在云上的資源絕對的安全4.2AmazonAWSDeployment&Adm4.2AmazonAWS總體而言,AmazonAWS的產(chǎn)品分為幾個部分:計算類彈性計算云EC2:EC2提供了云中的虛擬機(jī)彈性MapReduce:將HadoopMapReduce搬到云環(huán)境中,大量EC2實(shí)例動態(tài)地成為執(zhí)行大規(guī)模MapReduce計算任務(wù)的工作機(jī)存儲類彈性塊存儲EBS簡單消息存儲SQSBlob對象存儲S3NoSQL型數(shù)據(jù)庫:SimpleDB和DynamoDB關(guān)系數(shù)據(jù)庫RDS工具支持AWS支持多種開發(fā)語言,提供Java、Rupy、Python、PHP、Windows&.NET以及Android和iOS的工具集工具集中包含各種語言的SDK,程序自動部署以及各種管理工具AWS通過CloudWatch系統(tǒng)提供豐富的監(jiān)控功能4.2AmazonAWS總體而言,AmazonAWS的4.2AmazonAWSAmazonEC2架構(gòu)相比傳統(tǒng)的虛擬機(jī)托管,EC2的最大特點(diǎn)是允許用戶根據(jù)需求動態(tài)調(diào)整運(yùn)行的實(shí)例類型和數(shù)量,實(shí)現(xiàn)按需付費(fèi)AmazonEC2平臺主要包含如下部分:EC2實(shí)例(AMI)彈性塊存儲彈性負(fù)載均衡(自動縮放)4.2AmazonAWSAmazonEC2架構(gòu)相比傳統(tǒng)4.2AmazonAWSEC2存儲EC2本地存儲是實(shí)例自帶的磁盤空間,但它并不是持久的,也就是說這個實(shí)例所在的節(jié)點(diǎn)出現(xiàn)故障時,相應(yīng)的磁盤空間也會隨之清空為了解決本地存儲不可靠問題,EC2推出了EBSEBS通過卷來組織數(shù)據(jù),每個EBS卷只能掛載到一個EC2實(shí)例EBS卷并不與實(shí)例綁定,而是與用戶帳號綁定4.2AmazonAWSEC2存儲EC2本地存儲是實(shí)例自4.2AmazonAWSEBSS3服務(wù)對象系統(tǒng)管理員系統(tǒng)管理員/最終用戶服務(wù)場景作為虛擬機(jī)硬盤,在虛擬機(jī)看來就像EBS就像本地的硬盤;當(dāng)EC2實(shí)例失效時,EBS卷可以自動解除與該實(shí)例的關(guān)聯(lián),從而可以關(guān)聯(lián)到新的實(shí)例用戶可通過Http/RESTAPI

存取文件網(wǎng)站可將靜態(tài)文件存放到S3中,通過CDN網(wǎng)絡(luò)分發(fā)到不同的區(qū)域中以提升性能可作為虛擬機(jī)EBS卷的備份或快照服務(wù)機(jī)制塊設(shè)備,可格式化為任何OS可以識別的格式對象存儲,桶--對象二級結(jié)構(gòu)無需在其上建文件系統(tǒng)AmazonS3和EBS的區(qū)別4.2AmazonAWSEBSS3服務(wù)對象系統(tǒng)管理員系統(tǒng)4.2AmazonAWS在EC2中創(chuàng)建虛擬機(jī)實(shí)例時,會提示選擇鏡像(Images)的類型:S3-Hostedimages:鏡像需從S3存儲中拷貝到EC2實(shí)例的本地存儲。完成虛擬機(jī)鏡像拷貝后啟動EC2實(shí)例EBS-backedimages:虛擬機(jī)啟動要快得多,當(dāng)關(guān)閉虛擬機(jī)后,虛擬機(jī)的數(shù)據(jù)還在EBS上4.2AmazonAWS在EC2中創(chuàng)建虛擬機(jī)實(shí)例時,會提4.2AmazonAWS云平臺負(fù)責(zé)根據(jù)客戶的需求(并發(fā)數(shù)、吞吐量、數(shù)據(jù)存儲空間等)來彈性地分配資源,然后將不用的資源收回AmazonAWS云管理平臺運(yùn)行過程任何一個SaaS在提供服務(wù)的時候,云平臺都會通過4個階段對服務(wù)進(jìn)行資源的分配及調(diào)整:

1.

首先啟動服務(wù),當(dāng)有客戶進(jìn)行服務(wù)操作時,云平臺會啟動服務(wù)

2.

啟動后監(jiān)控服務(wù)的需求情況

3.

當(dāng)無人訪問時,停止服務(wù)

4.

回收不被使用的資源AWS云管理平臺4.2AmazonAWS云平臺負(fù)責(zé)根據(jù)客戶的需求(并發(fā)數(shù)4.2AmazonAWS一個典型的Hadoop作業(yè)執(zhí)行時,AWS具體的操作流程:消息平臺首先發(fā)送服務(wù)啟動的命令給啟動控制器,由啟動控制器首先將啟動信息放在SimpleDB的緩沖區(qū)里分配EC2的計算資源,啟動Hadoop等操作,將計算數(shù)據(jù)從S3中導(dǎo)入EC2,開始進(jìn)行計算和分析監(jiān)控控制器接收到監(jiān)控信息后,對應(yīng)用中所有的資源和錯誤進(jìn)行監(jiān)控,更新SimpleDB的緩沖區(qū)中的狀態(tài),并且根據(jù)用戶的需要隨時增減資源(計算節(jié)點(diǎn)和存儲節(jié)點(diǎn))關(guān)閉控制器在收到關(guān)閉消息后,會停止EC2、Hadoop等資源,將運(yùn)算結(jié)果放入S3或者客戶指定的存儲目標(biāo),并發(fā)消息給結(jié)算控制器4.2AmazonAWS一個典型的Hadoop作業(yè)執(zhí)行時4.3AmazonAWS平臺上的云數(shù)據(jù)庫時至今日,所有Amazon

Web

Services數(shù)據(jù)庫服務(wù)都已走上正軌,成為亞馬遜數(shù)十億美元業(yè)務(wù)的組成部分。這些數(shù)據(jù)庫服務(wù)包括:Amazon

RDS:云中的關(guān)系數(shù)據(jù)庫AmazonSimpleDB:云中的鍵值數(shù)據(jù)庫Amazon

DynamoDB:云中的NoSQL數(shù)據(jù)庫Amazon

Redshift:云中的數(shù)據(jù)倉庫Amazon

ElastiCache:云中的分布式內(nèi)存緩存4.3AmazonAWS平臺上的云數(shù)據(jù)庫時至今日,所有A4.3AmazonAWS平臺上的云數(shù)據(jù)庫SimpleDB是AWS上的第一個NoSQL數(shù)據(jù)庫服務(wù)(鍵值數(shù)據(jù)庫)記錄由主鍵和多個屬性組成可以把數(shù)據(jù)進(jìn)行多副本存儲,支持高并發(fā)讀取更新操作只能針對主副本進(jìn)行,但可以快速傳播到其他副本,提供最終一致性SimpleDB更適合存儲小型、碎片化的零散數(shù)據(jù)SimpleDBSimpleDB有單表限制。SimpleDB數(shù)據(jù)模型由域、項(xiàng)目、屬性和值組成,每個域最多只能保存10GB的數(shù)據(jù),所以得自己分區(qū)以免超過此限制性能不穩(wěn)定。SimpleDB以簡單為設(shè)計目標(biāo),SimpleDB并不需要用戶指定主鍵,也不需要用戶創(chuàng)建索引,會默認(rèn)對所有屬性創(chuàng)建索引。然而這種簡潔性也帶來了一些副作用一致性問題。SimpleDB設(shè)計時采用的是最終一致性模型缺陷如下:4.3AmazonAWS平臺上的云數(shù)據(jù)庫SimpleDB4.3AmazonAWS平臺上的云數(shù)據(jù)庫AmazonDynamoDB采納了SimpleDB中成功的托管服務(wù)形式及靈活的數(shù)據(jù)模型記錄由主鍵和多個屬性組成,這一點(diǎn)類似于SimpleDB與BigTable,這比簡單的KV模型更易用提供了一致性讀功能限制了系統(tǒng)的功能,只能通過主鍵去操作記錄,不能進(jìn)行批量更新,這使得系統(tǒng)可以保證可伸縮性及任何時候的高性能全面使用SSD來提升系統(tǒng)性能4.3AmazonAWS平臺上的云數(shù)據(jù)庫AmazonD4.3AmazonAWS平臺上的云數(shù)據(jù)庫AmazonRDSAmazonRDS有超過10萬活躍客戶和多個數(shù)據(jù)庫引擎可供選擇,已成為云中運(yùn)行關(guān)系數(shù)據(jù)庫的新常態(tài)MySQLOracleSQLServerPostgreSQLMariaDBAurora

借助AWS數(shù)據(jù)庫遷移服務(wù)及其附帶模式轉(zhuǎn)換工具,客戶可選擇從本地部署向AWS遷移相同數(shù)據(jù)庫引擎RDS可以建立3TB和3萬的DB實(shí)例4.3AmazonAWS平臺上的云數(shù)據(jù)庫AmazonR5微軟云數(shù)據(jù)庫SQLAzureSQLAzure是微軟的云關(guān)系型數(shù)據(jù)庫,后端存儲又稱為“云SQLServer”構(gòu)建在SQLServer之上,通過分布式技術(shù)提升傳統(tǒng)關(guān)系數(shù)據(jù)庫的可擴(kuò)展性和容錯能力一個邏輯數(shù)據(jù)庫稱為一個表格組表格組中所有劃分主鍵相同的行集合稱為行組(rowgroup)只支持同一個行組內(nèi)的事務(wù),同一個行組的數(shù)據(jù)邏輯上會分布到一臺服務(wù)器,以此規(guī)避分布式事務(wù)通過主備復(fù)制將數(shù)據(jù)復(fù)制到多個副本,保證高可用性1.邏輯模型

圖云SQLServer數(shù)據(jù)模型5微軟云數(shù)據(jù)庫SQLAzureSQLAzure是微5微軟云數(shù)據(jù)庫SQLAzure2.物理模型

在物理層面,每個有主鍵的表格組根據(jù)劃分主鍵列有序地分成多個數(shù)據(jù)分區(qū)。每個行組屬于唯一分區(qū)分區(qū)是SQLAzure復(fù)制、遷移、負(fù)載均衡的基本單位。每個分區(qū)包含多個副本(默認(rèn)為3),每個副本存儲在一臺物理的SQLServer上SQLAzure保證每個分區(qū)的多個副本分布到不同的故障域。每個分區(qū)有一個副本為主副本(Primary),其他副本為從副本(Secondary)。主副本處理所有的查詢、更新事務(wù),并以操作日志的形式,將事務(wù)同步到從副本,從副本接收主副本發(fā)送的事務(wù)日志并應(yīng)用到本地數(shù)據(jù)庫每臺物理SQLServer數(shù)據(jù)庫混合存放了來自不同邏輯分區(qū)的主副本和從副本5微軟云數(shù)據(jù)庫SQLAzure2.物理模型在物理層5微軟云數(shù)據(jù)庫SQLAzureSQLAzure分為四個主要部分:SQLServer實(shí)例、全局分區(qū)管理器、協(xié)議網(wǎng)關(guān)、分布式基礎(chǔ)部件。圖

云SQLServer的分層架構(gòu)每個SQLServer實(shí)例是一個運(yùn)行著SQLServer的物理進(jìn)程。每個物理數(shù)據(jù)庫包含多個子數(shù)據(jù)庫,它們之間相互隔離。子數(shù)據(jù)庫是一個分區(qū),包含用戶的數(shù)據(jù)以及schema信息全局分區(qū)管理器維護(hù)分區(qū)映射表信息協(xié)議網(wǎng)關(guān)負(fù)責(zé)將用戶的數(shù)據(jù)庫連接請求轉(zhuǎn)發(fā)到相應(yīng)的主分區(qū)上分布式基礎(chǔ)部件(Fabric)用于維護(hù)機(jī)器上下線狀態(tài),檢測服務(wù)器故障并為集群中的各種角色執(zhí)行選取主節(jié)點(diǎn)操作3.體系架構(gòu)5微軟云數(shù)據(jù)庫SQLAzureSQLAzure分為5微軟云數(shù)據(jù)庫SQLAzure圖SQLAzure的體系架構(gòu)SQLAzure的體系架構(gòu)中包含了一個虛擬機(jī)簇,可以根據(jù)工作負(fù)載的變化,動態(tài)增加或減少虛擬機(jī)的數(shù)量每臺虛擬機(jī)SQLServerVM(virtualmachine)安裝了SQLServer數(shù)據(jù)庫管理系統(tǒng),以關(guān)系模型存儲數(shù)據(jù)通常,一個數(shù)據(jù)庫會被散存儲到3~5臺SQLServerVM中3.體系架構(gòu)5微軟云數(shù)據(jù)庫SQLAzure圖SQLAzur6云數(shù)據(jù)庫實(shí)踐1 阿里云RDS簡介2 RDS中的概念3 購買和使用RDS數(shù)據(jù)庫4 將本地數(shù)據(jù)庫遷移到云端RDS數(shù)據(jù)庫6云數(shù)據(jù)庫實(shí)踐1 阿里云RDS簡介RDS是阿里云提供的關(guān)系型數(shù)據(jù)庫服務(wù),它將直接運(yùn)行于物理服務(wù)器上的數(shù)據(jù)庫實(shí)例租給用戶,是專業(yè)管理的、高可靠的云端數(shù)據(jù)庫服務(wù)RDS由專業(yè)數(shù)據(jù)庫管理團(tuán)隊(duì)維護(hù),還可以為用戶提供數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)、擴(kuò)展升級等管理功能,相對于用戶自建數(shù)據(jù)庫而言,RDS具有專業(yè)、高可靠、高性能、靈活易用等優(yōu)點(diǎn),能夠幫助用戶解決費(fèi)時費(fèi)力的數(shù)據(jù)庫管理任務(wù),讓用戶將更多的時間聚焦在核心業(yè)務(wù)上RDS具有安全穩(wěn)定、數(shù)據(jù)可靠、自動備份、管理透明、性能卓越,靈活擴(kuò)容等優(yōu)點(diǎn),可以提供專業(yè)的數(shù)據(jù)庫管理平臺、專業(yè)的數(shù)據(jù)庫優(yōu)化建議以及完善的監(jiān)控體系1阿里云RDS簡介RDS是阿里云提供的關(guān)系型數(shù)據(jù)庫服務(wù),它將直接運(yùn)行于物理服務(wù)2RDS中的概念RDS實(shí)例,是用戶購買RDS服務(wù)的基本單位。在實(shí)例中:可以創(chuàng)建多個數(shù)據(jù)庫可以使用常見的數(shù)據(jù)庫客戶端連接、管理及使用數(shù)據(jù)可以通過RDS管理控制臺或OPENAPI來創(chuàng)建、修改和刪除數(shù)據(jù)庫

RDS數(shù)據(jù)庫,是用戶在一個實(shí)例下創(chuàng)建的邏輯單元一個實(shí)例可以創(chuàng)建多個數(shù)據(jù)庫,在實(shí)例內(nèi)數(shù)據(jù)庫命名唯一,所有數(shù)據(jù)庫都會共享該實(shí)例下的資源,如CPU、內(nèi)存、磁盤容量等RDS不支持使用標(biāo)準(zhǔn)的SQL語句或客戶端工具創(chuàng)建數(shù)據(jù)庫,必須使用OPENAPI或RDS管理控制臺進(jìn)行操作2RDS中的概念RDS實(shí)例,是用戶購買RDS服務(wù)的基本單位2RDS中的概念地域指的是用戶所購買的RDS實(shí)例的服務(wù)器所處的地理位置RDS目前支持杭州、青島、北京、深圳和香港五個地域,服務(wù)品質(zhì)完全相同。用戶可以在購買RDS實(shí)例時指定地域,購買實(shí)例后暫不支持更改RDS可用區(qū)是指在同一地域下,電力、網(wǎng)絡(luò)隔離的物理區(qū)域,可用區(qū)之間內(nèi)網(wǎng)互通,可用區(qū)內(nèi)網(wǎng)絡(luò)延時更小,不同可用區(qū)之間故障隔離RDS可用區(qū)又分為單可用區(qū)和多可用區(qū)單可用區(qū)是指RDS實(shí)例的主備節(jié)點(diǎn)位于相同的可用區(qū),它可以有效控制云產(chǎn)品間的網(wǎng)絡(luò)延遲多可用區(qū)是指RDS實(shí)例的主備節(jié)點(diǎn)位于不同的可用區(qū),當(dāng)主節(jié)點(diǎn)所在可用區(qū)出現(xiàn)故障(如機(jī)房斷電等),RDS進(jìn)行主備切換后,會切換到備節(jié)點(diǎn)所在的可用區(qū)繼續(xù)提供服務(wù)。多可用區(qū)的RDS輕松實(shí)現(xiàn)了同城容災(zāi)2RDS中的概念地域指的是用戶所購買的RDS實(shí)例的服務(wù)器所2RDS中的概念磁盤容量是用戶購買RDS實(shí)例時,所選擇購買的磁盤大小實(shí)例所占用的磁盤容量,除了存儲表格數(shù)據(jù)外,還有實(shí)例正常運(yùn)行所需要的空間,如系統(tǒng)數(shù)據(jù)庫、數(shù)據(jù)庫回滾日志、重做日志、索引等RDS連接數(shù),是應(yīng)用程序可以同時連接到RDS實(shí)例的連接數(shù)量任意連接到RDS實(shí)例的連接均計算在內(nèi),與應(yīng)用程序或者網(wǎng)站能夠支持的最大用戶數(shù)無關(guān)用戶在購買RDS實(shí)例時所選擇的內(nèi)存大小決定了該實(shí)例的最大連接數(shù)2RDS中的概念磁盤容量是用戶購買RDS實(shí)例時,所選擇購買進(jìn)入阿里云首頁,阿里云官網(wǎng)(/)使用支付寶賬戶登錄阿里云,賬戶登錄成功后,點(diǎn)擊“云數(shù)據(jù)庫RDS“,即可進(jìn)入云數(shù)據(jù)庫RDS頁面。點(diǎn)擊“立即購買”,即可獲得RDS服務(wù)。新用戶可以免費(fèi)體驗(yàn)半年的RDS服務(wù)。購買成功后,可以通過管理控制臺對RDS實(shí)例進(jìn)行使用購買RDS實(shí)例管理RDS管理RDS實(shí)例新建RDS賬號新建RDS數(shù)據(jù)庫連接RDS數(shù)據(jù)庫操作RDS數(shù)據(jù)庫3購買和使用RDS數(shù)據(jù)庫進(jìn)入阿里云首頁,阿里云官網(wǎng)(http://www.aliyu3購買和使用RDS數(shù)據(jù)庫進(jìn)入RDS頁面后,點(diǎn)擊“立即購買”,即可跳到下圖的購買頁面如果已經(jīng)購買阿里云服務(wù)器ECS(ElasticComputeService),若選擇和ECS所在地域相同,ECS和RDS之間可以以內(nèi)網(wǎng)方式訪問購買RDS實(shí)例3購買和使用RDS數(shù)據(jù)庫進(jìn)入RDS頁面后,點(diǎn)擊“3購買和使用RDS數(shù)據(jù)庫購買RDS實(shí)例成功后,可以通過管理控制臺,查看已開通的產(chǎn)品與服務(wù)。點(diǎn)擊云數(shù)據(jù)庫RDS進(jìn)入管理界面如下圖。我們可以創(chuàng)建新實(shí)例、對已購買實(shí)例進(jìn)行管理、續(xù)費(fèi)和升級操作2.管理RDS3購買和使用RDS數(shù)據(jù)庫購買RDS實(shí)例成功后,可3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊已購買RDS實(shí)例的管理操作,可以查看該實(shí)例的基本信息如下圖一個實(shí)例可以創(chuàng)建多個數(shù)據(jù)庫,在實(shí)例內(nèi)數(shù)據(jù)庫命名唯一,所有數(shù)據(jù)庫都會共享該實(shí)例下的資源3.管理RDS實(shí)例3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊已購買RDS實(shí)例的管理操作,可3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊“創(chuàng)建新賬號”按鈕后,可創(chuàng)建新的RDS賬號,并選定需綁定的數(shù)據(jù)庫,以及輸入賬號密碼和賬號類型(讀寫權(quán)限)等信息MySQL實(shí)例支持最多創(chuàng)建50個賬號,SQLServer實(shí)例支持最多創(chuàng)建20個賬號創(chuàng)建完RDS賬號后,還可以對RDS賬號進(jìn)行重置密碼和修改操作4.新建RDS賬號3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊“創(chuàng)建新賬號”按鈕后,可創(chuàng)建新3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊“數(shù)據(jù)庫管理”按鈕后,可查看數(shù)據(jù)庫基本信息,并可對數(shù)據(jù)庫進(jìn)行創(chuàng)建、刪除(需至少有1個數(shù)據(jù)庫)的操作點(diǎn)擊“增加數(shù)據(jù)庫”后,在彈出的界面中填寫數(shù)據(jù)庫相關(guān)信息,提交后即可生效此外,RDS數(shù)據(jù)庫還可以是自建數(shù)據(jù)庫遷移來的或是從其他RDS實(shí)例中遷入的5.新建RDS數(shù)據(jù)庫3購買和使用RDS數(shù)據(jù)庫點(diǎn)擊“數(shù)據(jù)庫管理”按鈕后,可查看數(shù)3購買和使用RDS數(shù)據(jù)庫如果是在阿里云服務(wù)器ECS上連接RDS數(shù)據(jù)庫,就選擇內(nèi)網(wǎng)模式;如果是在其他服務(wù)器上連接RDS使用,就選擇外網(wǎng)模式,在控制臺的右上角有切換方式從本地對云端的RDS數(shù)據(jù)庫進(jìn)行遠(yuǎn)程訪問時使用外網(wǎng)模式,需要在“安全控制->白名單設(shè)置”位置填入本地機(jī)器的外網(wǎng)IP,從而讓RDS數(shù)據(jù)庫允許我們的本地機(jī)器訪問連接RDS數(shù)據(jù)庫3購買和使用RDS數(shù)據(jù)庫如果是在阿里云服務(wù)器ECS上連接R3購買和使用RDS數(shù)據(jù)庫使用客戶端MySQL-Front訪問使用數(shù)據(jù)庫管理工具Navicat_MySQL使用MySQL命令登錄

命令格式如下:mysql-uuser_name-h-P3306-pxxxx使用阿里云控制臺iDBCloud訪問RDS連接地址以及端口不需要再輸入,只需在“用戶名”中輸入數(shù)據(jù)庫的賬號,在“密碼”欄中輸入數(shù)據(jù)庫賬號的密碼,便可以登錄RDS。連接RDS數(shù)據(jù)庫3購買和使用RDS數(shù)據(jù)庫使用客戶端MySQL-Front3購買和使用RDS數(shù)據(jù)庫連接RDS數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作與直接對本機(jī)MySQL數(shù)據(jù)庫操作無異。iDBCloud登錄數(shù)據(jù)庫后的界面如下圖所示:在“iDBCloud登錄數(shù)據(jù)庫界面”(如右圖)的頂端可以看到iDBCloud提供以下三種創(chuàng)建表的方法:可視化界面SQL窗口命令窗口7.操作RDS數(shù)據(jù)庫3購買和使用RDS數(shù)據(jù)庫連接RDS數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作假設(shè)我們有一個本地應(yīng)用程序,它使用本地的MySQL數(shù)據(jù)庫存取和管理數(shù)據(jù)。現(xiàn)在,我們打算把本地MySQL數(shù)據(jù)庫中的數(shù)據(jù)全部遷移到遠(yuǎn)程的阿里云RDS數(shù)據(jù)庫中,本地應(yīng)用程序不遷移(依然運(yùn)行在本地),但是,我們希望本地應(yīng)用程序使用云端的RDS數(shù)據(jù)庫服務(wù)進(jìn)行數(shù)據(jù)存取和管理。為此,需要執(zhí)行以下兩步操作:第一步:把本地數(shù)據(jù)庫遷移到云端的RDS數(shù)據(jù)庫第二步:修改本地應(yīng)用程序配置,使用RDS數(shù)據(jù)庫服務(wù)4將本地數(shù)據(jù)庫遷移到云端RDS數(shù)據(jù)庫假設(shè)我們有一個本地應(yīng)用程序,它使用本地的MySQL數(shù)據(jù)庫存取4將本地數(shù)據(jù)庫遷移到云端RDS數(shù)據(jù)庫如何把本地數(shù)據(jù)庫遷移到云端的RDS數(shù)據(jù)庫?第1步:在本地數(shù)據(jù)庫中創(chuàng)建一個遷移賬號第2步:設(shè)置遷移賬號權(quán)限第3步:確認(rèn)本地數(shù)據(jù)庫中的配置文件是否正確,需要確認(rèn)本地數(shù)據(jù)庫中的MySQL配置文件f第4步:登錄本地數(shù)據(jù)庫,通過命令查看是否為“ROW”模式第5步:在RDS管理控制臺對應(yīng)的實(shí)例頁面,點(diǎn)擊“將數(shù)據(jù)遷移至RDS”按鈕,在彈出的頁面中,填寫待遷移的本地數(shù)據(jù)庫連接地址、數(shù)據(jù)庫連接端口、數(shù)據(jù)庫賬號、數(shù)據(jù)庫密碼,即可完成從本地遷移到云端4將本地數(shù)據(jù)庫遷移到云端RDS數(shù)據(jù)庫如何把本地數(shù)據(jù)庫遷移到云本章小結(jié)本章介紹了云數(shù)據(jù)庫的相關(guān)知識。云數(shù)據(jù)庫是在云計算興起的大背景下發(fā)展起來的,在云端為用戶提供數(shù)據(jù)服務(wù),用戶不需要自己投資建設(shè)軟硬件環(huán)境,只需要向云數(shù)據(jù)庫服務(wù)供應(yīng)商購買數(shù)據(jù)庫服務(wù),就可以方便、快捷、低成本地實(shí)現(xiàn)數(shù)據(jù)存儲和管理功能云數(shù)據(jù)庫具有動態(tài)可擴(kuò)展、高可用性、低成本、易用性、大規(guī)模并行處理等突出優(yōu)點(diǎn),是大數(shù)據(jù)時代企業(yè)實(shí)現(xiàn)低成本的大規(guī)模數(shù)據(jù)存儲的理想選擇云數(shù)據(jù)庫市場有很多代表性的產(chǎn)品可供選擇。Amazon是云數(shù)據(jù)庫市場的先行者,谷歌和微軟公司都開發(fā)了自己的云數(shù)據(jù)庫產(chǎn)品,都在市場上形成了自己的影響力本章最后以阿里云RDS為例,介紹了云數(shù)據(jù)庫的具體使用方法本章小結(jié)本章介紹了云數(shù)據(jù)庫的相關(guān)知識。云數(shù)據(jù)庫是在云計算興起77Thankyou!77Thankyou!云數(shù)據(jù)庫云數(shù)據(jù)庫提綱1 云數(shù)據(jù)庫概述2 云數(shù)據(jù)庫產(chǎn)品3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)4AmazonAWS和云數(shù)據(jù)庫5 微軟云數(shù)據(jù)庫SQLAzure6云數(shù)據(jù)庫實(shí)踐提綱1 云數(shù)據(jù)庫概述1 云數(shù)據(jù)庫概述1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)1.2 云數(shù)據(jù)庫概念1.3 云數(shù)據(jù)庫的特性1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系1 云數(shù)據(jù)庫概述1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)通過整合、管理、調(diào)配分布在網(wǎng)絡(luò)各處的計算資源,通過互聯(lián)網(wǎng)以統(tǒng)一界面,同時向大量的用戶提供服務(wù)云計算概念云計算特點(diǎn)超大規(guī)模計算、虛擬化、高可靠性和安全性、通用性、動態(tài)擴(kuò)展性、按需服務(wù)、降低成本云計算應(yīng)用場景Google個人云服務(wù)企業(yè)應(yīng)用實(shí)例:AnimotoAmazon云計算示意圖1.1 云計算是云數(shù)據(jù)庫興起的基礎(chǔ)通過整合、管理、調(diào)配分布在1.2 云數(shù)據(jù)庫概念云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)據(jù)庫。云數(shù)據(jù)庫是在云計算的大背景下發(fā)展起來的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強(qiáng)了數(shù)據(jù)庫的存儲能力,消除了人員、硬件、軟件的重復(fù)配置,讓軟、硬件升級變得更加容易。云數(shù)據(jù)庫具有高可擴(kuò)展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點(diǎn)。1.2 云數(shù)據(jù)庫概念云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)1.3 云數(shù)據(jù)庫的特性云數(shù)據(jù)庫具有以下特性:(1)動態(tài)可擴(kuò)展(2)高可用性

(3)較低的使用代價

(4)易用性

(5)高性能

(6)免維護(hù)

(7)安全

表6-2騰訊云數(shù)據(jù)庫和自建數(shù)據(jù)庫的比較自建數(shù)據(jù)庫騰訊云數(shù)據(jù)庫數(shù)據(jù)安全性開發(fā)者自行解決,成本高昂15種類型備份數(shù)據(jù),保證數(shù)據(jù)安全服務(wù)可用性99.99%高可靠性數(shù)據(jù)備份0花費(fèi),系統(tǒng)自動多時間點(diǎn)數(shù)據(jù)備份維護(hù)成本0成本,專業(yè)團(tuán)隊(duì)7x24小時幫助維護(hù)實(shí)例擴(kuò)容一鍵式直接擴(kuò)容,安全可靠資源利用率按需申請,資源利用率高達(dá)99.9%技術(shù)支持專業(yè)團(tuán)隊(duì)一對一指導(dǎo)、QQ遠(yuǎn)程協(xié)助開發(fā)者1.3 云數(shù)據(jù)庫的特性云數(shù)據(jù)庫具有以下特性:(1)動態(tài)可擴(kuò)1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇企業(yè)類型不同,對于存儲的需求也千差萬別,而云數(shù)據(jù)庫可以很好地滿足不同企業(yè)的個性化存儲需求:首先,云數(shù)據(jù)庫可以滿足大企業(yè)的海量數(shù)據(jù)存儲需求其次,云數(shù)據(jù)庫可以滿足中小企業(yè)的低成本數(shù)據(jù)存儲需求另外,云數(shù)據(jù)庫可以滿足企業(yè)動態(tài)變化的數(shù)據(jù)存儲需求

到底選擇自建數(shù)據(jù)庫還是選擇云數(shù)據(jù)庫,取決于企業(yè)自身的具體需求對于一些大型企業(yè),目前通常采用自建數(shù)據(jù)庫對于一些財力有限的中小企業(yè)而言,IT預(yù)算比較有限,云數(shù)據(jù)庫這種前期零投入、后期免維護(hù)的數(shù)據(jù)庫服務(wù),可以很好滿足它們的需求

1.4 云數(shù)據(jù)庫是個性化數(shù)據(jù)存儲需求的理想選擇企業(yè)類型不同,1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系從數(shù)據(jù)模型的角度來說,云數(shù)據(jù)庫并非一種全新的數(shù)據(jù)庫技術(shù),而只是以服務(wù)的方式提供數(shù)據(jù)庫功能云數(shù)據(jù)庫并沒有專屬于自己的數(shù)據(jù)模型,云數(shù)據(jù)庫所采用的數(shù)據(jù)模型可以是關(guān)系數(shù)據(jù)庫所使用的關(guān)系模型(微軟的SQLAzure云數(shù)據(jù)庫、阿里云RDS都采用了關(guān)系模型),也可以是NoSQL數(shù)據(jù)庫所使用的非關(guān)系模型(AmazonDynamo云數(shù)據(jù)庫采用的是“鍵/值”存儲)同一個公司也可能提供采用不同數(shù)據(jù)模型的多種云數(shù)據(jù)庫服務(wù)許多公司在開發(fā)云數(shù)據(jù)庫時,后端數(shù)據(jù)庫都是直接使用現(xiàn)有的各種關(guān)系數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫產(chǎn)品1.5 云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系從數(shù)據(jù)模型的角度來說,云數(shù)2 云數(shù)據(jù)庫產(chǎn)品2.1 云數(shù)據(jù)庫廠商概述2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品2.3 Google的云數(shù)據(jù)庫產(chǎn)品2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品2.5 其他云數(shù)據(jù)庫產(chǎn)品2 云數(shù)據(jù)庫產(chǎn)品2.1 云數(shù)據(jù)庫廠商概述2.1 云數(shù)據(jù)庫廠商概述表6-3云數(shù)據(jù)庫產(chǎn)品企業(yè)產(chǎn)品AmazonDynamo、SimpleDB、RDSGoogleGoogleCloudSQLMicrosoftMicrosoftSQLAzureOracleOracleCloudYahoo!PNUTSVerticaAnalyticDatabasev3.0fortheCloudEnerpriseDBPostgresPlusintheCloud阿里阿里云RDS百度百度云數(shù)據(jù)庫騰訊騰訊云數(shù)據(jù)庫2.1 云數(shù)據(jù)庫廠商概述表6-3云數(shù)據(jù)庫產(chǎn)品企業(yè)產(chǎn)品Ama2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品Amazon是云數(shù)據(jù)庫市場的先行者。Amazon除了提供著名的S3存儲服務(wù)和EC2計算服務(wù)以外,還提供基于云的數(shù)據(jù)庫服務(wù):Amazon

RDS:云中的關(guān)系數(shù)據(jù)庫AmazonSimpleDB:云中的鍵值數(shù)據(jù)庫Amazon

DynamoDB:云中的NoSQL數(shù)據(jù)庫Amazon

Redshift:云中的數(shù)據(jù)倉庫Amazon

ElastiCache:云中的分布式內(nèi)存緩存2.2 Amazon的云數(shù)據(jù)庫產(chǎn)品Amazon是云數(shù)據(jù)庫市場2.3 Google的云數(shù)據(jù)庫產(chǎn)品GoogleCloudSQL是谷歌公司推出的基于MySQL的云數(shù)據(jù)庫使用CloudSQL,所有的事務(wù)都在云中,并由谷歌管理,用戶不需要配置或者排查錯誤谷歌還提供導(dǎo)入或?qū)С龇?wù),方便用戶將數(shù)據(jù)庫帶進(jìn)或帶出云谷歌使用用戶非常熟悉的MySQL,帶有JDBC支持(適用于基于Java的AppEngine應(yīng)用)和DB-API支持(適用于基于Python的AppEngine應(yīng)用)的傳統(tǒng)MySQL數(shù)據(jù)庫環(huán)境,因此,多數(shù)應(yīng)用程序不需過多調(diào)試即可運(yùn)行,數(shù)據(jù)格式對于大多數(shù)開發(fā)者和管理員來說也是非常熟悉的GoogleCloudSQL還有一個好處就是與GoogleAppEngine集成2.3 Google的云數(shù)據(jù)庫產(chǎn)品GoogleCloud2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品SQLAzure具有以下特性:屬于關(guān)系型數(shù)據(jù)庫:支持使用TSQL(TransactStructuredQueryLanguage)來管理、創(chuàng)建和操作云數(shù)據(jù)庫支持存儲過程:它的數(shù)據(jù)類型、存儲過程和傳統(tǒng)的SQLServer具有很大的相似性,因此,應(yīng)用可以在本地進(jìn)行開發(fā),然后部署到云平臺上支持大量數(shù)據(jù)類型:包含了幾乎所有典型的SQLServer2008的數(shù)據(jù)類型支持云中的事務(wù):支持局部事務(wù),但是不支持分布式事務(wù)2.4 Microsoft的云數(shù)據(jù)庫產(chǎn)品SQLAzure具3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)3.1 UMP系統(tǒng)概述3.2 UMP系統(tǒng)架構(gòu)3.3 UMP系統(tǒng)功能3 云數(shù)據(jù)庫系統(tǒng)架構(gòu)3.1 UMP系統(tǒng)概述3.1 UMP系統(tǒng)概述總的來說,UMP系統(tǒng)架構(gòu)設(shè)計遵循了以下原則:保持單一的系統(tǒng)對外入口,并且為系統(tǒng)內(nèi)部維護(hù)單一的資源池消除單點(diǎn)故障,保證服務(wù)的高可用性保證系統(tǒng)具有良好的可伸縮,能夠動態(tài)地增加、刪減計算與存儲節(jié)點(diǎn)保證分配給用戶的資源也是彈性可伸縮的,資源之間相互隔離,確保應(yīng)用和數(shù)據(jù)安全UMP系統(tǒng)是低成本和高性能的MySQL云數(shù)據(jù)庫方案3.1 UMP系統(tǒng)概述總的來說,UMP系統(tǒng)架構(gòu)設(shè)計遵循了以下3.2 UMP系統(tǒng)架構(gòu)UMP系統(tǒng)中的角色包括:Controller服務(wù)器Proxy服務(wù)器Agent服務(wù)器Web控制臺日志分析服務(wù)器信息統(tǒng)計服務(wù)器愚公系統(tǒng)依賴的開源組件包括:MnesiaLVSRabbitMQZooKeeper3.2 UMP系統(tǒng)架構(gòu)UMP系統(tǒng)中的角色包括:3.2 UMP系統(tǒng)架構(gòu)1.Mnesia

Mnesia是一個分布式數(shù)據(jù)庫管理系統(tǒng)Mnesia支持事務(wù),支持透明的數(shù)據(jù)分片,利用兩階段鎖實(shí)現(xiàn)分布式事務(wù),可以線性擴(kuò)展到至少50個節(jié)點(diǎn)Mnesia的數(shù)據(jù)庫模式(schema)可在運(yùn)行時動態(tài)重配置,表能被遷移或復(fù)制到多個節(jié)點(diǎn)來改進(jìn)容錯性Mnesia的這些特性,使其在開發(fā)云數(shù)據(jù)庫時被用來提供分布式數(shù)據(jù)庫服務(wù)

3.2 UMP系統(tǒng)架構(gòu)1.MnesiaMnesia是一個3.2 UMP系統(tǒng)架構(gòu)2.RabbitMQRabbitMQ是一個工業(yè)級的消息隊(duì)列產(chǎn)品(功能類似于IBM公司的消息隊(duì)列產(chǎn)品IBMWebsphereMQ),作為消息傳輸中間件來使用,可以實(shí)現(xiàn)可靠的消息傳送UMP集群中各個節(jié)點(diǎn)之間的通信,不需要建立專門的連接,都是通過讀寫隊(duì)列消息來實(shí)現(xiàn)的3.2 UMP系統(tǒng)架構(gòu)2.RabbitMQRabbitMQ3.2 UMP系統(tǒng)架構(gòu)3.Zookeeper在UMP系統(tǒng)中,Zookeeper主要發(fā)揮三個作用:作為全局的配置服務(wù)器提供分布式鎖(選出一個集群的“總管”)監(jiān)控所有MySQL實(shí)例Zookeeper是高效和可靠的協(xié)同工作系統(tǒng),提供分布式鎖之類的基本服務(wù)(比如統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等),用于構(gòu)建分布式應(yīng)用,減輕分布式應(yīng)用程序所承擔(dān)的協(xié)調(diào)任務(wù)3.2 UMP系統(tǒng)架構(gòu)3.Zookeeper在UMP系統(tǒng)中3.2 UMP系統(tǒng)架構(gòu)4.LVSLVS(LinuxVirtualServer)即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng)UMP系統(tǒng)借助于LVS來實(shí)現(xiàn)集群內(nèi)部的負(fù)載均衡LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)調(diào)度器是LVS集群系統(tǒng)的唯一入口點(diǎn),調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序3.2 UMP系統(tǒng)架構(gòu)4.LVSLVS(LinuxVirt3.2 UMP系統(tǒng)架構(gòu)5.Controller服務(wù)器

Controller服務(wù)器向UMP集群提供各種管理服務(wù),實(shí)現(xiàn)集群成員管理、元數(shù)據(jù)存儲、MySQL實(shí)例管理、故障恢復(fù)、備份、遷移、擴(kuò)容等功能Controller服務(wù)器上運(yùn)行了一組Mnesia分布式數(shù)據(jù)庫服務(wù),其中存儲了各種系統(tǒng)元數(shù)據(jù),主要包括集群成員、用戶的配置和狀態(tài)信息,以及用戶名到后端MySQL實(shí)例地址的映射關(guān)系(或稱為“路由表”)等當(dāng)其它服務(wù)器組件需要獲取用戶數(shù)據(jù)時,可以向Controller服務(wù)器發(fā)送請求獲取數(shù)據(jù)為了避免單點(diǎn)故障,保證系統(tǒng)的高可用性,UMP系統(tǒng)中部署了多臺Controller服務(wù)器,然后,由Zookeeper的分布式鎖功能來幫助選出一個“總管”,負(fù)責(zé)各種系統(tǒng)任務(wù)的調(diào)度和監(jiān)控3.2 UMP系統(tǒng)架構(gòu)5.Controller服務(wù)器Co3.2 UMP系統(tǒng)架構(gòu)Web控制臺Web控制臺向用戶提供系統(tǒng)管理界面7.Proxy服務(wù)器

Proxy服務(wù)器向用戶提供訪問MySQL數(shù)據(jù)庫的服務(wù),它完全實(shí)現(xiàn)了MySQL協(xié)議,用戶可以使用已有的MySQL客戶端連接到Proxy服務(wù)器,Proxy服務(wù)器通過用戶名獲取到用戶的認(rèn)證信息、資源配額的限制(例如QPS、IOPS(I/OPerSecond)、最大連接數(shù)等),以及后臺MySQL實(shí)例的地址,然后,用戶的SQL查詢請求會被轉(zhuǎn)發(fā)到相應(yīng)的MySQL實(shí)例上。除了數(shù)據(jù)路由的基本功能外,Proxy服務(wù)器中還實(shí)現(xiàn)了很多重要的功能,主要包括屏蔽MySQL實(shí)例故障、讀寫分離、分庫分表、資源隔離、記錄用戶訪問日志等

3.2 UMP系統(tǒng)架構(gòu)Web控制臺3.2 UMP系統(tǒng)架構(gòu)8.Agent服務(wù)器

Agent服務(wù)器部署在運(yùn)行MySQL進(jìn)程的機(jī)器上,用來管理每臺物理機(jī)上的MySQL實(shí)例,執(zhí)行主從切換、創(chuàng)建、刪除、備份、遷移等操作,同時,還負(fù)責(zé)收集和分析MySQL進(jìn)程的統(tǒng)計信息、慢查詢?nèi)罩荆⊿lowQueryLog)和bin-log9.日志分析服務(wù)器日志分析服務(wù)器存儲和分析Proxy服務(wù)器傳入的用戶訪問日志,并支持實(shí)時查詢一段時間內(nèi)的慢日志和統(tǒng)計報表10.信息統(tǒng)計服務(wù)器信息統(tǒng)計服務(wù)器定期將采集到的用戶的連接數(shù)、QPS數(shù)值以及MySQL實(shí)例的進(jìn)程狀態(tài)用RRDtool進(jìn)行統(tǒng)計,可以在Web界面上可視化展示統(tǒng)計結(jié)果,也可以把統(tǒng)計結(jié)果作為今后實(shí)現(xiàn)彈性的資源分配和自動化的MySQL實(shí)例遷移的依據(jù)11.愚公系統(tǒng)愚公系統(tǒng)是一個全量復(fù)制結(jié)合bin-log分析進(jìn)行增量復(fù)制的工具,可以實(shí)現(xiàn)在不停機(jī)的情況下動態(tài)擴(kuò)容、縮容和遷移3.2 UMP系統(tǒng)架構(gòu)8.Agent服務(wù)器3.2 UMP系統(tǒng)架構(gòu)3.2 UMP系統(tǒng)架構(gòu)3.3 UMP系統(tǒng)功能UMP系統(tǒng)是構(gòu)建在一個大的集群之上的,通過多個組件的協(xié)同作業(yè),整個系統(tǒng)實(shí)現(xiàn)了對用戶透明的各種功能:容災(zāi)讀寫分離分庫分表資源管理資源調(diào)度資源隔離數(shù)據(jù)安全3.3 UMP系統(tǒng)功能UMP系統(tǒng)是構(gòu)建在一個大的集群之上的,3.3 UMP系統(tǒng)功能1.容災(zāi)

為了實(shí)現(xiàn)容災(zāi),UMP系統(tǒng)會為每個用戶創(chuàng)建兩個MySQL實(shí)例,一個是主庫,一個是從庫主庫和從庫的狀態(tài)是由Zookeeper負(fù)責(zé)維護(hù)的主從切換過程如下:Zookeeper探測到主庫故障,通知Controller服務(wù)器Controller服務(wù)器啟動主從切換時,會修改“路由表”,即用戶名到后端MySQL實(shí)例地址的映射關(guān)系把主庫標(biāo)記為不可用借助于消息中間件RabbitMQ通知所有Proxy服務(wù)器修改用戶名到后端MySQL實(shí)例地址的映射關(guān)系全部過程對用戶透明3.3 UMP系統(tǒng)功能1.容災(zāi)為了實(shí)現(xiàn)容災(zāi),UMP系統(tǒng)會3.3 UMP系統(tǒng)功能宕機(jī)后的主庫在進(jìn)行恢復(fù)處理后需要再次上線,過程如下:在主庫恢復(fù)時,會把從庫的更新復(fù)制給自己當(dāng)主庫的數(shù)據(jù)庫狀態(tài)快要達(dá)到和從庫一致的狀態(tài)時,Controller服務(wù)器就會命令從庫停止更新,進(jìn)入不可寫狀態(tài),禁止用戶寫入數(shù)據(jù)等到主庫更新到和從庫完全一致的狀態(tài)時,Controller服務(wù)器就會發(fā)起主從切換操作,并在路由表中把主庫標(biāo)記為可用狀態(tài)通知Proxy服務(wù)器把寫操作切回主庫上,用戶寫操作可以繼續(xù)執(zhí)行,之后再把從庫修改為可寫狀態(tài)1.容災(zāi)

3.3 UMP系統(tǒng)功能宕機(jī)后的主庫在進(jìn)行恢復(fù)處理后需要再次上3.3 UMP系統(tǒng)功能2.讀寫分離

充分利用主從庫實(shí)現(xiàn)用戶讀寫操作的分離,實(shí)現(xiàn)負(fù)載均衡UMP系統(tǒng)實(shí)現(xiàn)了對于用戶透明的讀寫分離功能,當(dāng)整個功能被開啟時,負(fù)責(zé)向用戶提供訪問MySQL數(shù)據(jù)庫服務(wù)的Proxy服務(wù)器,就會對用戶發(fā)起的SQL語句進(jìn)行解析,如果屬于寫操作,就直接發(fā)送到主庫,如果是讀操作,就會被均衡地發(fā)送到主庫和從庫上執(zhí)行3.3 UMP系統(tǒng)功能2.讀寫分離充分利用主從庫實(shí)現(xiàn)用戶3.3 UMP系統(tǒng)功能3.分庫分表UMP支持對用戶透明的分庫分表(shard/horizontalpartition)

當(dāng)采用分庫分表時,系統(tǒng)處理用戶查詢的過程如下:首先,Proxy服務(wù)器解析用戶SQL語句,提取出重寫和分發(fā)SQL語句所需要的信息其次,對SQL語句進(jìn)行重寫,得到多個針對相應(yīng)MySQL實(shí)例的子語句,然后把子語句分發(fā)到對應(yīng)的MySQL實(shí)例上執(zhí)行最后,接收來自各個MySQL實(shí)例的SQL語句執(zhí)行結(jié)果,合并得到最終結(jié)果3.3 UMP系統(tǒng)功能3.分庫分表UMP支持對用戶透明的分3.3 UMP系統(tǒng)功能4.資源管理

UMP系統(tǒng)采用資源池機(jī)制來管理數(shù)據(jù)庫服務(wù)器上的CPU、內(nèi)存、磁盤等計算資源,所有的計算資源都放在資源池內(nèi)進(jìn)行統(tǒng)一分配,資源池是為MySQL實(shí)例分配資源的基本單位整個集群中的所有服務(wù)器會根據(jù)其機(jī)型、所在機(jī)房等因素被劃分多個資源池,每臺服務(wù)器會被加入到相應(yīng)的資源池中對于每個具體MySQL實(shí)例,管理員會根據(jù)應(yīng)用部署在哪些機(jī)房、需要哪些計算資源等因素,為該MySQL實(shí)例具體指定主庫和從庫所在的資源池,然后,系統(tǒng)的實(shí)例管理服務(wù)會本著負(fù)載均衡的原則,從資源池中選擇負(fù)載較輕的服務(wù)器來創(chuàng)建MySQL實(shí)例3.3 UMP系統(tǒng)功能4.資源管理UMP系統(tǒng)采用資源池機(jī)3.3 UMP系統(tǒng)功能5.資源調(diào)度

UMP系統(tǒng)中有三種規(guī)格的用戶,分別是數(shù)據(jù)量和流量比較小的用戶、中等規(guī)模用戶以及需要分庫分表的用戶多個小規(guī)模用戶可以共享同一個MySQL實(shí)例對于中等規(guī)模的用戶,每個用戶獨(dú)占一個MySQL實(shí)例對于分庫分表的用戶,會占有多個獨(dú)立的MySQL實(shí)例3.3 UMP系統(tǒng)功能5.資源調(diào)度UMP系統(tǒng)中有三種規(guī)格3.3 UMP系統(tǒng)功能資源隔離表6-4UMP采用的兩種資源隔離方式方法應(yīng)用場合實(shí)現(xiàn)方式用Cgroup限制MySQL進(jìn)程資源適用于多個MySQL實(shí)例共享同一臺物理機(jī)的情況可以對用戶的MySQL進(jìn)程最大可以使用的CPU使用率、內(nèi)存和IOPS等進(jìn)行限制在Proxy服務(wù)器端限制QPS適用于多個用戶共享同一個MySQL實(shí)例的情況Controller服務(wù)器監(jiān)測用戶的MySQL實(shí)例的資源消耗情況,如果明顯超出配額,就通知Proxy服務(wù)器通過增加延遲的方法去限制用戶的QPS,以減少用戶對系統(tǒng)資源的消耗3.3 UMP系統(tǒng)功能資源隔離表6-4UMP采用的兩種資源3.3 UMP系統(tǒng)功能7.數(shù)據(jù)安全UMP系統(tǒng)設(shè)計了多種機(jī)制來保證數(shù)據(jù)安全:SSL數(shù)據(jù)庫連接:SSL(SecureSocketsLayer)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,它在傳輸層對網(wǎng)絡(luò)連接進(jìn)行加密。Proxy服務(wù)器實(shí)現(xiàn)了完整的MySQL客戶端/服務(wù)器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論