作者介紹:王松磊,現任職於UCloud,從事MySQL資料庫內核研發工作。主要負責UCloud雲資料庫udb的內核故障排查工作以及資料庫新特性的研發工作。
原文鏈接:https://yq.aliyun.com/articles/80365
一、概述
我們在考慮MySQL資料庫的高可用架構時,主要考慮如下幾方面:
- 如果資料庫發生了宕機或者意外中斷等故障,能儘快恢復資料庫的可用性,儘可能的減少停機時間,保證業務不會因為資料庫的故障而中斷。
- 用作備份、只讀副本等功能的非主節點的數據應該和主節點的數據實時或者最終保持一致。
- 當業務發生資料庫切換時,切換前後的資料庫內容應當一致,不會因為數據缺失或者數據不一致而影響業務。
關於對高可用的分級我們暫不做詳細的討論,這裡只討論常用高可用方案的優缺點以及選型。
二、高可用方案
2.1、主從或主主半同步複製
使用雙節點資料庫,搭建單向或者雙向的半同步複製。在5.7以後的版本中,由於lossless replication、logical多線程複製等一些列新特性的引入,使得MySQL原生半同步複製更加可靠。
常見架構如下: