MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 MySQL數(shù)據(jù)庫(kù)架構(gòu)與運(yùn)維實(shí)踐分享大綱:樂(lè)視數(shù)據(jù)庫(kù)介紹揭秘私有云RDS架構(gòu)及實(shí)踐一、樂(lè)視數(shù)據(jù)庫(kù)概述1、數(shù)據(jù)庫(kù)平臺(tái)介紹我們數(shù)據(jù)庫(kù)部門(mén)的數(shù)據(jù)庫(kù)種類(lèi)較多:有MySQL、Oracle、MongoDB、Redis等。從另一角度,可分為傳統(tǒng)的DB (MySQL、MongoDB.) 及云數(shù)據(jù)庫(kù)RDS。其中,MySQL在公司內(nèi)部廣泛使用,今天將就樂(lè)視MySQL的運(yùn)維情況進(jìn)行分享。2、數(shù)據(jù)庫(kù)產(chǎn)品現(xiàn)狀MySQL版本較多,有官方MySQL5.5、MariaDB10、PXC5.6等;架構(gòu)有1主多從、1主多層、PXC(Percona-XtraDB-Cluster)等結(jié)構(gòu);硬件有SAS盤(pán)、SATA SSD,主要使用SA

2、TA SSD。3、數(shù)據(jù)庫(kù)架構(gòu)Master-Slave 結(jié)構(gòu)有:1主N從1主N從+MB (master-backup)1主N從+Relay提個(gè)問(wèn)題,圖中1主N從+Relay結(jié)構(gòu),引入relay有什么優(yōu)缺點(diǎn)??jī)?yōu)點(diǎn):在跨機(jī)房高可用時(shí),布署一臺(tái)同步用的relay 在異地機(jī)房可減少跨機(jī)房同步帶寬。缺點(diǎn): 增加了架構(gòu)復(fù)雜度,主從關(guān)系變成多層樹(shù)結(jié)構(gòu)。若是使用不當(dāng),比較亂,易出錯(cuò)。我見(jiàn)過(guò)超過(guò)4層的主從,梳理關(guān)系就很麻煩,建議不超過(guò)3層。4、數(shù)據(jù)庫(kù)監(jiān)控我們的數(shù)據(jù)庫(kù)監(jiān)控以開(kāi)源軟件為主,有天兔Lepus、Prometheus、Open-Falcon等。(1)天兔Lepus是一個(gè)由Python+PHP開(kāi)發(fā)的數(shù)據(jù)庫(kù)企業(yè)

3、級(jí)監(jiān)控系統(tǒng)支持MySQL/Oracle/MongoDB/Redis等數(shù)據(jù)庫(kù)的監(jiān)控對(duì)于不是特別大的DB規(guī)模,天兔監(jiān)控就夠用,也挺好用,可省去大量開(kāi)發(fā)成本。(2)Prometheus Prometheus是一個(gè)開(kāi)源的服務(wù)監(jiān)控系統(tǒng),它通過(guò)HTTP協(xié)議從遠(yuǎn)程的機(jī)器收集數(shù)據(jù)并存儲(chǔ)在本地的時(shí)序數(shù)據(jù)庫(kù)上。它提供簡(jiǎn)單的網(wǎng)頁(yè)界面、一個(gè)功能強(qiáng)大的查詢(xún)語(yǔ)言以及HTTP接口等。(3)Open-Falcon 我們用Open-Falcon來(lái)做服務(wù)器基礎(chǔ)監(jiān)控。對(duì)Open-Falcon進(jìn)行了一些2次開(kāi)發(fā),如增加電話(huà)報(bào)警功能、IDC 的概念。(4)作為補(bǔ)充還有Zabbix、微信告警等此外,公司監(jiān)控平臺(tái)提供email報(bào)警,短信報(bào)

4、警,電話(huà)語(yǔ)音報(bào)警。作為補(bǔ)充,數(shù)據(jù)庫(kù)平臺(tái)增加了微信告警。 優(yōu)點(diǎn)是方便,成本低。 重要性大于郵件的,不到電話(huà)或短信級(jí)別的可以用微信。5、數(shù)據(jù)庫(kù)備份數(shù)據(jù)備份是非常重要的,我們的DBA也非常重視數(shù)據(jù)庫(kù)的備份工作。在這我把備份概念略微擴(kuò)展,我認(rèn)為數(shù)據(jù)庫(kù)實(shí)時(shí)從庫(kù)也是一種備份。實(shí)時(shí)從庫(kù)大存儲(chǔ)機(jī)器 單機(jī)多實(shí)例布署(20-30+)重要業(yè)務(wù) 異地機(jī)房從庫(kù)多源復(fù)制從庫(kù)說(shuō)明:我們找了一些大磁盤(pán)存儲(chǔ)10T+,在具布署了30+左右的MySQL數(shù)據(jù)庫(kù),不提供線(xiàn)上服務(wù)。 這樣相當(dāng)于在一臺(tái)機(jī)器上有30個(gè)DB的熱備份。對(duì)重要業(yè)務(wù),進(jìn)行異地跨機(jī)房從庫(kù)制作??杀苊鈫我籌DC異常,引發(fā)故障。樂(lè)視有一些統(tǒng)計(jì)分析數(shù)據(jù)庫(kù),使用MariaDB

5、多源復(fù)制,一個(gè)實(shí)例同時(shí)同步多個(gè)主庫(kù)。某些情況也可以使用分析庫(kù)來(lái)恢復(fù)數(shù)據(jù)。冷備份xtrabackup 物理熱備份全備+增備Mount 掛載大存儲(chǔ)定期清理歷史備份主要使用xtrabackup來(lái)物理備份MySQL。使用了全備+增備,每周至少一次全備,多個(gè)增備。為了簡(jiǎn)便,增備只做基于全備份的增備,并沒(méi)有使用增備的增備。利用Mount 掛載大的存儲(chǔ) 30T,做為備份存儲(chǔ)。為避免存儲(chǔ)容量滿(mǎn),會(huì)有腳本定期壓縮,清理歷史備份。二、私有云RDS實(shí)踐1、私有云RDS項(xiàng)目背景為什么做私有云RDS? 有各種理由: PaaS平臺(tái)的流行,老板提出需要把數(shù)據(jù)庫(kù)服務(wù)化、容器技術(shù)興起、成本優(yōu)化(硬件成本+管理成本)、用戶(hù)體驗(yàn)等

6、。但是最真實(shí)原因:忙!2、RDS介紹樂(lè)視云RDS基于Docker + Mcluster 開(kāi)發(fā)的一種高可用、可彈性伸縮的在線(xiàn)數(shù)據(jù)庫(kù)服務(wù)(Relational Database Service,簡(jiǎn)稱(chēng)RDS)。其中,Mcluster(MySQL Server Cluster)是MySQL數(shù)據(jù)庫(kù)集群。Mcluster是我們開(kāi)發(fā)出的一種私有云MySQL集群基于PXC (Percona Xtradb Cluster)封裝和調(diào)優(yōu)真正的多主架構(gòu)沒(méi)有單點(diǎn)故障,高可用性是RDS的根基良好的擴(kuò)展性PXC官方的鏈接: /doc/percona-xtradb-cluster/5.6/index.html3、私有云RDS

7、架構(gòu)(1)架構(gòu)圖RDS整體架構(gòu)主要分為以下幾大部分:Docker:樂(lè)視云RDS是跑在Docker容器內(nèi)部Database:為具體的數(shù)據(jù)庫(kù)??梢允荕ySQL,也可以是PostgreSQL等任何數(shù)據(jù)庫(kù)Matrix:負(fù)責(zé)前端數(shù)據(jù)庫(kù)創(chuàng)建、管理、監(jiān)控、維護(hù)和相關(guān)資源調(diào)度BeeHive:負(fù)責(zé)資源的調(diào)度管理,BeeHive類(lèi)似KuberneteData Analysis:負(fù)責(zé)數(shù)據(jù)庫(kù)日志的分析還有用戶(hù)行為分析(2)RDS架構(gòu)圖2普通用戶(hù)登錄私有云平臺(tái)matrix,申請(qǐng)創(chuàng)建RDS。 BeeHive計(jì)算分析機(jī)群中的資源情況,選擇合適的3臺(tái)機(jī)器布署Mcluster DB,同時(shí)還會(huì)額外布署一個(gè)VIP容器來(lái)做DB高可用

8、和負(fù)戴均衡。用戶(hù)可以通過(guò)此VIP來(lái)訪(fǎng)問(wèn)MySQL。RDS管理員可通過(guò)matrix后臺(tái)對(duì)平臺(tái)全部的RDS進(jìn)行管理、監(jiān)控運(yùn)行狀態(tài)等。4、Mcluster架構(gòu)Mcluster是樂(lè)視云基于PXC (Percona XtraDB Cluster)封裝和調(diào)優(yōu)的私有云MySQL集群。因?yàn)榛赑XC封裝,故Mcluster具有和PXC 相同的特點(diǎn)。多點(diǎn)讀寫(xiě)機(jī)群中任一DB節(jié)點(diǎn)都可以寫(xiě)入并行復(fù)制可以多個(gè)線(xiàn)程復(fù)制,以事務(wù)為單位,多個(gè)事務(wù)同時(shí)并行推送到所有集群節(jié)點(diǎn)強(qiáng)一致性各節(jié)點(diǎn)數(shù)據(jù)強(qiáng)一致性高可用性單一節(jié)點(diǎn)故障不會(huì)影響機(jī)群的可用性兼容傳統(tǒng)MySQL與傳統(tǒng)MySQL幾乎完全兼容,數(shù)據(jù)可以直接使用不需要任何轉(zhuǎn)換Mclust

9、er和主從MySQL對(duì)比RDS界面RDS界面用戶(hù)前端類(lèi)似阿里云、AWS的RDS用戶(hù)平臺(tái)頁(yè)面。用戶(hù)選擇RDS的配置,主要是磁盤(pán)及內(nèi)存,點(diǎn)下一步,就可以提交RDS申請(qǐng)。(每個(gè)用戶(hù)可以免費(fèi)建3個(gè),超出需要DBA審核)RDS界面管理后臺(tái)RDS管理員可登錄管理后臺(tái)進(jìn)行RDS管理,主要功能如下:用戶(hù)、宿主機(jī)資源管理RDS日常管理 申請(qǐng)審核,RDS信息查詢(xún),人員變更等Docker 容器管理RDS備份RDS監(jiān)控 RDS運(yùn)行狀態(tài)監(jiān)控DockerFileDockerFilek完成的工作:安裝及配置MySQL安裝相關(guān)軟件啟動(dòng)mcluter-managerMcluster-Manager大家可以看到在DockerFi

10、le最后一行,會(huì)啟動(dòng)mcluster-manager。Mclustre-Manager功能:tornado的web服務(wù)啟動(dòng)、停止初始化MySQL監(jiān)控、管理MySQLmcluster-manager安裝在Docker容器中,用來(lái)管理MySQL。外部系統(tǒng)不直接操作MySQL,而是通過(guò)mcluster-manager API 調(diào)用。包括啟動(dòng)、停止、初始化、監(jiān)控、備份、管理MySQL等功能。RDS運(yùn)用私有云RDS上線(xiàn)后大大減輕了DBA工作量,降低了服務(wù)器成本和人力成本。 目前在樂(lè)視體系各子公司得到廣范使用。運(yùn)維和坑數(shù)據(jù)庫(kù)規(guī)范、流程非常重要私有云 可節(jié)省大量機(jī)器成本及人力成本私有云RDS產(chǎn)品設(shè)計(jì)、管理該異與公有云RDS用戶(hù)在線(xiàn)修改大表,引發(fā)故障多節(jié)點(diǎn)同時(shí)大量寫(xiě),容易引起死鎖組件較多,相互間依賴(lài)太強(qiáng)運(yùn)維工具待完善 如宿主機(jī)器故障,恢復(fù)工作量大數(shù)據(jù)庫(kù)規(guī)范、流程非常重要,因?yàn)檫@是運(yùn)維自動(dòng)化的基礎(chǔ)。我們吃過(guò)這個(gè)虧,數(shù)據(jù)庫(kù)版本眾多,并且安裝目錄不同,帶來(lái)很大的麻煩。使用私有云確實(shí)是可節(jié)省大量機(jī)器成本及人力成本,這個(gè)在樂(lè)視云是可以確認(rèn)的經(jīng)驗(yàn),因?yàn)槲覀兠颗_(tái)機(jī)器上安裝了2030個(gè)Docker,即跑了20-30個(gè)MySQL,較傳統(tǒng)的MySQL布署節(jié)省大量成本。若是有個(gè)別業(yè)務(wù)寫(xiě)入量特別大,因?yàn)镻XC多份寫(xiě)的原因,這時(shí)我們也可能遷移到傳統(tǒng)的主從

溫馨提示

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

評(píng)論

0/150

提交評(píng)論