MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路_第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、技術(shù)創(chuàng)新,變革未來(lái)MySQL數(shù)據(jù)庫(kù)在高可用演進(jìn)之路大綱什么是高可用第一代傳統(tǒng)復(fù)制: MHA及使用架構(gòu)第二代基于GTID復(fù)制:GTID+Binlog serverAt Booking & Facebook 4.第三代增強(qiáng)半同步復(fù)制:GTID+增強(qiáng)半同步及多IDC架構(gòu)及使用架構(gòu)第四代MySQL原生高可用 : MySQL InnoDB ClusterMySQL Replication Auto Failover 7.高可用選擇建議&趨勢(shì)高可用: High availibility 縮寫(xiě)HA , IT術(shù)語(yǔ),指系統(tǒng)無(wú)中斷地執(zhí)行其功能 的能力,代表系統(tǒng)的可用性程度??捎眯阅旯收蠒r(shí)間99.9999%32秒9

2、9.999%5分15秒99.99%52分34秒99.9%8小時(shí)46分99%3天15小時(shí)36分引: /wiki/%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7 /document/product/236/8459什么是高可用什么是高可用數(shù)據(jù)庫(kù)高可用又面臨數(shù)據(jù)一致RPO 業(yè)務(wù)連接續(xù)性RTO容易混淆的概念: 數(shù)據(jù)庫(kù)可用區(qū)災(zāi)備復(fù)制一致性能& 一致性半同步增強(qiáng)半同步?MGR幻讀幽靈事務(wù)MHA及使用架構(gòu)適用場(chǎng)景 :MySQL版本=5.5 , 異步復(fù)制 一主多從環(huán)境基于傳統(tǒng)復(fù)制的高可用 解決問(wèn)題:盡最大能力做數(shù)據(jù)補(bǔ)償(并不保證)最大努力實(shí)現(xiàn) RPO,有RTO概念支持 存在的問(wèn)題:G

3、TID模型強(qiáng)依賴(lài)binlog server對(duì)于5.7后binlog不能識(shí)別,對(duì)并行復(fù)制支持不好;服務(wù)IP切換依賴(lài)自行編寫(xiě)的腳本,也可以和DNS結(jié)合使用運(yùn)維上需要做SSH信任, 切換判斷,現(xiàn)在項(xiàng)目基本無(wú)維護(hù)MHA及使用架構(gòu)優(yōu)點(diǎn)MySQL=5.5, MySQL高可王者可以利用原始主庫(kù)上binlog, slave上的relay log進(jìn)行數(shù)據(jù)補(bǔ)償為了絕對(duì)保證RPO, 需要把binlog放到共享存儲(chǔ)上缺點(diǎn)運(yùn)行中不在管理從庫(kù)是不是復(fù)制如果使用了共享存儲(chǔ)存binlog,會(huì)把幽靈事務(wù)補(bǔ)償?shù)綇膸?kù)上對(duì)于 MySQL 5.7的Binlog解析報(bào)錯(cuò) & MySQL 8.0不用考慮第二代基于GTID復(fù)制Monitor

4、Consulbinlog半同步,保證數(shù)據(jù)安全,一般至少兩個(gè),保證RPO異步復(fù)制,保障性能,通過(guò)監(jiān)控延遲,保證RTO多個(gè)IDC中Monitor組成分布式監(jiān)控, 把健康的MySQL注冊(cè)到consul中, 同時(shí)對(duì)于從庫(kù)復(fù)制 延遲情況,也同步到consul中配置中心,對(duì)外提供健康的MySQL服務(wù)IDC1IDC2IDC3IDC4第二代基于GTID復(fù)制特性基于MySQL 5.6 + GTIDbinlog server使用半同步(是否允許半同步退化)缺點(diǎn)存在幻讀問(wèn)題MySQL 5.6本身半同步ack確認(rèn)在Dump_thread中,dump_thread 存在IO瓶頸問(wèn)題第三代增強(qiáng)半同步復(fù)制這代產(chǎn)品對(duì)于MyS

5、QL版有強(qiáng)依賴(lài): MySQL 5.7以后版本代表產(chǎn)品: MySQL Replication Manager / github orchestrator 國(guó)內(nèi)青云開(kāi)源的: Xenon(MySQL Plus)MySQL 5.7增強(qiáng)點(diǎn):增強(qiáng)半同步, 主從為了增強(qiáng)半同步都獨(dú)立出來(lái)線(xiàn)程主庫(kù)binlog group commit從庫(kù): 并行復(fù)制,基于事務(wù)的并行復(fù)制, sql_thread: writeset 從庫(kù)上的并行提升第三代增強(qiáng)半同步復(fù)制特點(diǎn):每個(gè)節(jié)點(diǎn)上都有一個(gè)獨(dú)立的agent利用raft構(gòu)建集群,利用GTID做index選主Leader對(duì)外提供寫(xiě)服務(wù)Follow節(jié)點(diǎn)可以對(duì)外提供讀服務(wù)適合結(jié)合Doc

6、ker工作GTID+增強(qiáng)半同步及多IDC架構(gòu)及使用架構(gòu)第三代增強(qiáng)半同步復(fù)制MySQL層面參數(shù)配置set global slave_net_timeout=4;change maser to master_connect_retry=1, master_retry_count=86400;Orchestrator監(jiān)控M,當(dāng)為M掛掉獲取Slave上Show slave status輸出, 依據(jù)io_thread狀態(tài)對(duì) Master進(jìn)一步判斷因?yàn)榛贕TID+增強(qiáng)半同步,master_auto_position=1的特性, 兩個(gè)s間,非常好處理數(shù)據(jù)一致性。第三代增強(qiáng)半同步復(fù)制特點(diǎn)利用MySQL自特性

7、,復(fù)制并行度高,dump_thread讀取binlog可并行, 半同步ack線(xiàn)程 獨(dú)立,實(shí)現(xiàn)binlog group commit, writeset等基本不用擔(dān)心復(fù)制延遲,主庫(kù)能并行的,從庫(kù)也能并行強(qiáng)依賴(lài)于增強(qiáng)半同步(依賴(lài)多個(gè)slave),利用半同步保證RPO, RTO依賴(lài)賴(lài)于復(fù)制延遲缺點(diǎn)增強(qiáng)半同步中存在幽靈事務(wù)(local commit)增強(qiáng)半同步運(yùn)維上可能出現(xiàn)影響第三代增強(qiáng)半同步復(fù)制這代產(chǎn)品的特點(diǎn)簡(jiǎn)單,方便運(yùn)維充分利用MySQL自身的特性,并行復(fù)制,增強(qiáng)半同步擴(kuò)展靈活,都可以支持調(diào)用外部腳本第四代MySQL原生高可用利用MGR MySQL原生高可用特點(diǎn)MySQL Router默認(rèn)包含在M

8、ySQL發(fā)行包中, MySQL Router可 以部署多個(gè)MySQL Router提供基于端口號(hào)的讀寫(xiě)分離mysql shell 支持快速構(gòu)建MGR開(kāi)源社區(qū)可以利用ProxySQL替代MySQL Router第四代MySQL原生高可用優(yōu)點(diǎn):原生高可用,官方推薦Single master ,但實(shí)際建議使用multi master模式,單 點(diǎn)寫(xiě)入推薦ProxySQL+MGR結(jié)合, 性能為王環(huán)境: mysql router缺點(diǎn):使用上有一些限制運(yùn)維方面有難度,特別對(duì)于multi master模式,需要控制寫(xiě)入及并發(fā)(更新丟失)MySQL Replication Auto Failover使用要求:必

9、須使用GTID復(fù)制&master_auto_position=1Change master to中啟用: SOURCE_CONNECTION_AUTO_FAILOVER所有節(jié)點(diǎn)必須存在一樣的復(fù)制用戶(hù)及密碼復(fù)制用的用戶(hù)名和密碼必須寫(xiě)到change master to 語(yǔ)句中實(shí)現(xiàn)原理:從庫(kù)以change master to中master_connect_retry(2-4s)定義的時(shí)間間隔總共重試 master_retry_count(3-5次)定義次數(shù),后認(rèn)為原始主庫(kù)掛掉;從asynchronous_connection_failover_add_source定義的可以用服務(wù)器列表中,選擇權(quán)可用

10、 權(quán)重高的節(jié)點(diǎn)自動(dòng)連接過(guò)去小結(jié)從第二代高可用開(kāi)始后,整個(gè)高可用技術(shù)中出現(xiàn): 配置中心 (consul), DNS, Proxy或LVS類(lèi)技術(shù)等綜合應(yīng)用從原來(lái)的單集群運(yùn)維擴(kuò)展到: 數(shù)據(jù)庫(kù)托管服務(wù), RDS平臺(tái)從實(shí)現(xiàn)上看,更偏重于自我定制高可用平臺(tái)高可用選擇建議&趨勢(shì)MySQL版本可用軟件存在問(wèn)題第一代MySQL 5.5MHA傳統(tǒng)復(fù)制, 主庫(kù)存在沒(méi)把日志傳輸?shù)綇膸?kù)上的風(fēng) 險(xiǎn),數(shù)據(jù)補(bǔ)償, 不能處理MySQL本身的幽靈事務(wù)第二代MySQL 5.6Facebook開(kāi)源的mysql, Maxscale利用binlog server和主庫(kù)做半同步,保證數(shù)據(jù)安全, binlog server沒(méi)太好的開(kāi)源解決方案第三代MySQL 5.7xenon,mysql replication manager Github orchestrator增強(qiáng)半同步,基本完美第四代MySQL 8.0MySQL 5.7mysql-router 、proxysql mgr原生高可用解決方案現(xiàn)在選擇高

溫馨提示

  • 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)論