MySQL高可用架構設計分析
MySQL高可用架構設計分析
高可用HA(High Availability)是分散式系統架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統不能提供服務的時間。
假設系統一直能夠提供服務,我們說系統的可用性是100%。如果系統每執行100個時間單位,會有1個時間單位無法提供服務,我們說系統的可用性是99%。很多公司的高可用目標是4個9,也就是99.99%,這就意味著,系統的年停機時間為8.76個小時。
百度的搜尋首頁,是業內公認高可用保障非常出色的系統,甚至人們會通過www.baidu.com 能不能訪問來判斷“網路的連通性”,百度高可用的服務讓人留下啦“網路通暢,百度就能訪問”,“百度打不開,應該是網路連不上”的印象,這其實是對百度HA最高的褒獎。
1. MySQL高可用
說到MySQL的高可用,不得不提到複製,複製是MySQL高可用的基礎。複製解決了什麼問題呢?
-
實現資料備份
-
如果有從伺服器,主伺服器發生故障之後,開通從伺服器的寫入功能,從而提供高可用的使用功能
-
異地容災
-
分攤負載(scale out )主伺服器:寫、從伺服器:讀
1.1 主從複製流程
不同的複製協議:
1.2 高可用複製架構
1.3.mysql 高可用架構
1.3.1 MySQL Cluster架構
限制儲存引擎為NDB儲存引擎:
1.3.2 MySQL+MMM架構
MMM即Master-Master Replication Manager for MySQL(mysql主主複製管理器),是關於mysql主主複製配置的監控、故障轉移和管理的一套可伸縮的指令碼套件(在任何時候只有一個節點可以被寫入),這個套件也能基於標準的主從配置的任意數量的從伺服器進行讀負載均衡,所以你可以用它來在一組居於複製的伺服器啟動虛擬ip,除此之外,它還有實現資料備份、節點之間重新同步功能的指令碼。
MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現伺服器的故障轉移,從而實現mysql的高可用。
此方案特點:
1、安全、穩定性較高,可擴充套件性好
2、 對伺服器數量要求至少三臺及以上
3、 對雙主(主從複製性要求較高)
4、 同樣可實現讀寫分離
1.3.3 MySQL+MHA架構
MHA目前在MySQL高可用方案中應該也是比較成熟和常見的方案,它由日本人開發出來,在MySQL故障切換過程中,MHA能做到快速自動切換操作,而且還能最大限度保持資料的一致性。
此架構特點:
1、安裝佈署簡單,不影響現有架構
2、自動監控和故障轉移
3、保障資料一致性
4、故障切換方式可使用手動或自動多向選擇
5、適應範圍大(適用任何儲存引擎)
2.MySQL高可用帶給我們對高可用架構設計的思考
為了保證資料的一致性,MySQL提出了複製的概念。
為了滿足acid,MySQL提供了兩種日誌 redo和undo日誌 ,redo log是重做日誌,提供前滾操作,undo log是回滾日誌,提供回滾操作。 undo log不是redo log的逆向過程,其實它們都算是用來恢復的日誌: redo log通常是物理日誌,記錄的是資料頁的物理修改,而不是某一行或某幾行修改成怎樣怎樣,它用來恢復提交後的物理資料頁(恢復資料頁,且只能恢復到最後一次提交的位置)。 undo用來回滾行記錄到某個版本。undo log一般是邏輯日誌,根據每行記錄進行記錄。 為了高可用的保證,有了多主或者主從切換。
資料庫的高可用架構一般在系統的底層,這方面的技術要求比較高,整個高可用系統大致如下:
3.總結
我們都知道,單點是系統高可用的大敵,單點往往是系統高可用最大的風險和敵人,應該儘量在系統設計的過程中避免單點。
方法論上,高可用保證的原則是“叢集化”,或者叫“冗餘”:只有一個單點,掛了服務會受影響;如果有冗餘備份,掛了還有其他backup能夠頂上。冗餘的最大難道是一致性即複製技術,MySQL提供了一個思路。
有了冗餘之後,還不夠,每次出現故障需要人工介入恢復勢必會增加系統的不可服務實踐。所以,又往往是通過“自動故障轉移”來實現系統的高可用。災備的恢復一般通過日誌來做,日誌的設計也是難點, MySQL 提供了一個思路。
【1】 http://uat.severalnines.com/blog/comparing-replication-solutions-oracle-and-mysql
【2】 https://mysqlhighavailability.com/mysql-group-replication-hello-world/
【3】 https://www.cnblogs.com/youkanyouxiao/p/8335159.html
【4】 http://www.sohu.com/a/197271694_505827
【5】 https://www.cnblogs.com/f-ck-need-u/archive/2018/05/08/9010872.html
【6】 https://www.cnblogs.com/youkanyouxiao/p/9834791.html
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 (滿) 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ) ,註明新增緣由 ● 於 2019-07-01 06:00 ~ 2019-07-31 24:00 在西安完成 ● 最新修改時間:2019-07-01 06:00 ~ 2019-07-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端 掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2651506/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql高可用架構方案MySql架構
- MySQL 高可用架構之 MMM 架構MySql架構
- MySQL高可用架構對比MySql架構
- mysql高可用架構MHA搭建MySql架構
- 高可用架構設計全面詳解(8大高可用方案)架構
- 如何做高可用的架構設計?架構
- MySQL高可用架構:mysql+keepalived實現MySql架構
- MQ系列9:高可用架構分析MQ架構
- MySQL 實現高可用架構之 MHAMySql架構
- MySQL高可用架構-MMM、MHA、MGR、PXCMySql架構
- MySQL高可用架構之Keepalived+主從架構部署MySql架構
- 高可用架構架構
- MySQL主從原理, 高可用架構與高效能架構MySql架構
- MySQL資料庫架構——高可用演進MySql資料庫架構
- 架構成長之路:常見的五種MySQL高可用方案分析架構MySql
- mysql高可用架構MHA搭建(centos7+mysql5.7.28)MySql架構CentOS
- 構建MHA實現MySQL高可用叢集架構MySql架構
- MySQL高可用架構之MHA 原理與實踐MySql架構
- MySQL高可用架構案例篇:UCloud最佳實踐MySql架構Cloud
- MySQL 高可用架構 - MHA環境部署記錄MySql架構
- 大型網際網路高可用架構設計實踐2019架構
- Canal高可用架構部署架構
- MySQL 中常見的幾種高可用架構部署方案MySql架構
- 如何設計和實現高可用MySQLMySql
- MySQL叢集架構:MHA+MySQL-PROXY+LVS實現MySQL叢集架構高可用/高效能MySql架構
- 京東智聯雲物件儲存高可用架構設計思考物件架構
- AWS 高可用AWS架構方案架構
- 【DB寶45】MySQL高可用之MGR+Consul架構部署MySql架構
- 如何設計和實現高可用的MySQLMySql
- 億級流量系統架構之如何設計全鏈路99.99%高可用架構【石杉的架構筆記】架構筆記
- MySQL 高可用架構:主從備份及讀寫分離MySql架構
- 基於MySQL Cluster + LVS + KeepAlived部署負載均衡高可用架構MySql負載架構
- 基於Centos7.x 搭建MySQL Galera Cluster高可用架構CentOSMySql架構
- k8s高可用架構K8S架構
- 深度解析KubeEdge EdgeMesh 高可用架構架構
- 億級流量網站架構設計之高可用、高併發知識棧網站架構
- java程式設計—如何搭建Keepalived+Nginx+Tomcat高可用負載均衡架構Java程式設計NginxTomcat負載架構
- 用 Hystrix 構建高可用服務架構架構