資料技術嘉年華 • ONLINE 萬里資料庫帶你get MySQL整個高可用發展史
11月26日下午2點,資料技術嘉年華 • ON LINE第四期如期而至。萬里資料庫開源生態負責人葉金榮老師受邀發表《MySQ高可用演進及實踐》主題演講,與人大金倉、南大通用、中興、雲和恩墨等業內知名的國產資料庫技術專家同臺論道,暢談資料庫領域的技術成果與應用實踐。
圖 | 資料技術嘉年華 • ON LINE第四期
數次躍升迭代
MySQL高可用發展史悉數呈現
葉老師表示,資料庫的高可用主要面臨兩方面挑戰:一是如何提升RPO資料一致性,即在做高可用切換的時候,如何儘可能地保證不丟資料或少丟資料;二是如何保障服務連續性,提高RTO指標。換句話說,在發生主從切換過程中,如何降低服務不可用的時間。
縱觀整個MySQL發展史,高可用的發展大致可分為4個階段:
一、遠古階段:原始主從複製架構
基本是MySQL5.5之前的版本,當時主要是基於非同步複製的解決方案。在網際網路發展早期階段,絕大多數是高可用+讀寫分離方案,常見的架構方案一般是一主一從或一主多從。
這個階段不僅存在非同步複製的問題,主從複製一定會存在延遲。並且,資料的一致性無法保障,沒有高可用的切換機制,需要通過自行寫指令碼等方式實現。此外,從節點的單執行緒,⼤事務、⽆主鍵等問題也容易造成複製延遲,可讀性較差。
二、古代階段:MHA元件/工具
這個階段,出現了MHA這樣的工具,可以利用MHA配合非同步複製,實現對整個主從複製架構的高可用管理。當出現意外時,會把某個從節點提升成新的主節點,然後MHA會在切換前嘗試資料補錄,之後再完成主從切換,儘可能地實現RPO=0,降低RTO,基本上可以保障99.99%的可用性,資料丟失最少。
這個階段存在的問題是對5.7版本後的並⾏複製⽀持不好,基本上是廢棄狀態,需要自行開發切換指令碼,並且需要構建ssh信任,存在一定的安全隱患。此外,專案已經處於不更新的狀態,目前不太建議再用MHA解決方案了。
三、近代階段:半同步複製工具
MySQL5.6版本以後,引入了GTID、binlog server、半同步複製等特性,尤其引入了新選項slave-rows-search-algorithms,對⽆主鍵的表⽀持更友好。並且還引⼊了增強半同步,通過半同步執行緒獨⽴減少瓶頸點,主庫group commit和從庫writeset提⾼效率,設定最少多少個從庫ack提⾼可靠性這些措施機制,配合ProxySQL、Orchestrator等⼯具,基本上可以保障99.9%的可⽤性。
這個階段存在的問題是半同步複製存在幻讀問題,並且ack確認在dump thread中,很容易造成瓶頸。半同步複製也可能會退化成一個非同步複製,特殊情況下會造成主從資料不一致。
四、現代階段:MGR
MGR是MySQL官⽅推出的新⼀代原⽣⾼可⽤⽅案,可以很好地保障資料一致性,並且出現故障會自動轉移,無需人工干預。MySQL InnoDB Cluster,簡稱MIC,包括MySQL Server、Shell、Router等元件,MySQL Shell包含豐富的介面、指令集,MySQL Router則⾃帶讀寫分離及MGR狀態感知,基本上可以保障99.99%的可用性。
作為研究MySQL十多年的技術專家,葉老師針對上述的高可用方案給出瞭如下建議:
-
針對一般業務,即不要求高一致性和高可靠性,以只讀為主的業務場景,選擇非同步複製、半同步複製和MGR三種方案都可以,但是建議使用MySQL5.7以上的版本;
-
針對重要業務,即對資料一致性、高可用保障都有較高要求的業務場景,可選擇半同步複製或MGR高可用方案,建議使用MySQL8.0以上的版本;
-
針對核心業務,即對資料一致性、高可用保障要求極高的業務場景,強烈建議使用MGR,且建議至少用8.0以上版本,然後採用多IDC和資料多副本的架構方案,配合MySQL Shell、Router原⽣⽅案。
圖 | 高可用架構方案選擇建議
並且,MGR還有同城跨IDC架構、跨城多IDC架構,可以根據不同的需求進行選擇。
最後,不得不提的是萬⾥資料庫目前正在維護的MySQL分⽀——GreatSQL,尤其適用於金融級應用。它專注於提升MGR的可靠性和效能,並且⽀持InnoDB並⾏查詢特性,讓CPU資源不再浪費。其擁有的地理標籤功能,可以提升多機房架構的資料可靠性;全新的流控機制,讓MGR運⾏時更流暢且不頻繁抖動。
簡單來說,相對官方社群版本,GreatSQL的運⾏更穩定、可靠。感興趣的小夥伴,可以點選下載試用。
資料技術嘉年華作為資料庫領域的技術盛會,匯聚國產資料庫廠商百花齊放。資料庫作為資訊系統底層的基礎軟體,技術含量高,工程難度大,在國內歷經幾十年和數代人的努力發展至今,先輩們為之付出了艱苦卓絕的努力,貢獻了卓越的智慧和一定階段的技術成果。
我們作為資料庫技術的繼承者,理應在先輩們成果和智慧的基礎上,繼續努力向前,為把資料庫發展為更先進、更易用、更安全、更穩定、更智慧、更融合的產品不懈努力奮進。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997641/viewspace-2844376/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從資料庫發展史看資料庫未來技術趨勢資料庫
- 資料庫高可用性簡史資料庫
- MySQL資料庫高可用方案MySql資料庫
- 資料庫發展史(上)資料庫
- 資料庫發展史(中)資料庫
- 資料庫發展史(下)資料庫
- 資料庫廠商的發展歷史之MySQL資料庫MySql
- 七、資料庫技術的發展及新技術資料庫
- MySQL資料庫架構——高可用演進MySql資料庫架構
- MySQL資料庫的高可用性分析MySql資料庫
- 中國資料庫40年發展簡史資料庫
- 【資料庫系統】資料庫系統概論====第十三章 資料庫技術發展資料庫
- ES資料庫高可用配置資料庫
- mysql資料庫分割槽技術MySql資料庫
- 郭憶:網易資料庫高可用架構最新進展!資料庫架構
- 一文讀懂資料庫發展史資料庫
- 分散式資料庫技術之路未來如何發展?分散式資料庫
- 簡單介紹資料庫技術發展階段!資料庫
- posgresql資料庫高可用方案-patroniSQL資料庫
- 大資料系列 1:大資料技術發展歷程大資料
- MySQL 資料高可用的實現思路MySql
- 資料庫廠商的發展歷史之Sybase資料庫
- mysql資料庫整體技術體系及框架概覽之一MySql資料庫框架
- 分散式資料庫技術的演進和發展方向分散式資料庫
- 參加資料庫嘉年華有感資料庫
- 自動同步整個 MySQL/Oracle 資料庫以進行資料分析MySqlOracle資料庫
- 資料庫MySQL(帶你零基礎入門MySQL)資料庫MySql
- 資料技術嘉年華歸來第一天
- 資料庫選型解讀,分散式資料庫帶來的技術革命資料庫分散式
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- 一文讀懂資料庫70年發展史資料庫
- 資料庫廠商的發展歷史之Oracle(2)資料庫Oracle
- 資料庫廠商的發展歷史之Oracle(1)資料庫Oracle
- Oracle資料庫發展Oracle資料庫
- MySQL 預設自帶的四個資料庫MySql資料庫
- 展會 | 萬里資料庫亮相2022DTCC 賦能數字經濟高質量發展資料庫
- 2019 資料技術嘉年華,資料英雄聚京華 - 誠邀論道
- Centos 7 搭建MariaDB 資料庫高可用CentOS資料庫