成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:MySQL雙主架構有什么優缺點?

數據庫 MySQL
本文介紹了 MySQL 雙主架構的多種復制架構,雙主架構需要注意解決循環復制、單點故障問題,同時做好數據權限劃分。

大家好,我是君哥。

雙主架構是 MySQL 常見的一種架構模式,它的特點是有兩個主節點對外提供服務,并且這兩個主節點互為主備。今天來學習一下雙主架構。

1.雙主復制

這種架構的特點配置兩個主庫,每個主庫都提供讀寫服務,并且這兩個主庫互為主備。如下圖:

在 M1 寫入的數據要同步到 M2,在 M2 寫入的數據要同步到 M1。這種兩個主庫同時支持寫入,這種架構模式一個明顯的優勢寫入效率高。比如一個應用在不同的城市部署了兩個主節點,請求可以就近選擇寫入數據庫。

但這種架構在數據同步時很容易出問題。

案例一:M1 和 M2 同時收到一張表的插入請求,這張表是自增主鍵,兩張表插入后主鍵相同。這時發生數據同步,這條插入語句在 binlog 里面記錄的是 row 格式,同步時發生主鍵沖突。

MySQL binlog 有三種格式:

  • STATEMENT:記錄的是 SQL 語句本身;
  • ROW:記錄的是數據的變化;
  • MIXED:STATEMENT 和 ROW 格式的結合,MySQL 會根據 SQL 語句特性選擇使用 STATEMENT 還是 ROW 格式。

MySQL 5.0 后可以通過設置 auto_increment_increment 和 auto_increment_offset 這兩個選項來解決這個問題。

案例二:在 M1 上執行了一條語句,生成 binlog 后發給 M2 進行同步,M2 執行完成后又生成 binlog 同步給 A,導致一條語句循環復制。

這個問題的解決方法是要求 M1 和 M2 的 server id不相同,M1 產生的 binlog 記錄 server id 是 M1,M2 執行同步時生成的 binlog 也記錄 server id 為 M1。這樣同步給 M1 是,M1 判斷到 server id 跟自己相同,就丟棄這個日志,不做同步。

案例三:同步過程中會有數據不一致的問題。比如用戶 xiaoming 的賬戶余額是 100。M1 執行了 update 操作把賬戶余額更新成 150,M2 執行了 update 操作更新成 130。

解決這種數據不一致問題的一個思路是嚴格劃分數據和設置權限,比如案例中小明的所有數據只能在 M1 上操作。

案例四:因為節點發生故障,M1 不能復制了,但是應用可以寫數據庫,M2 能正常寫和復制,這個問題就很難解決了。

解決這個問題,需要給 M1 和 M2 配置從節點,主節點故障后切換到從節點進行工作。

2.主備復制

這個架構模式的特點是雙主節點中,同一時刻只有一個主節點提供寫服務,另一個主節點只能提供讀服務。如下圖:

這個架構相當于比單主節點架構多了一個熱備,有如下優勢:

  • 因為 M1 和 M2 配置對稱,切換主備比較容易;
  • 有助于故障轉移和恢復;
  • 可以在不影響應用的情況下進行數據庫升級和維護;
  • 不用考慮循環復制問題和主備不一致問題。

當然,主備架構也有缺點,那就是寫性能不能得到提升。

3.主主架構擁有備庫

主主架構中每個主庫也可以擁有備庫,如下圖:

這種配置為每個主庫增加了一個備份,可以防止單點故障,同時備庫也可以處理讀請求,提高數據庫整體讀效率。

這個架構的缺點是增加了機器成本。

4.環形復制

環形復制架構是 MySQL 集群中擁有多個主庫,主庫之間形成一個環形,前面一個節點是當前節點的主庫,當前節點是前面節點的備庫,也是后面一個節點的主庫。如下圖:

環形復制這種架構其實并不推薦,因為它很難做到故障轉移,高可用特性依賴于每個節點不出故障。但是如果一個節點出了故障,去掉這個節點,這個節點產生的 binlog 將一直循環復制下去,因為只有通過這個節點的 server id 才能做出判斷停止復制。

5.總結

本文介紹了 MySQL 雙主架構的多種復制架構,雙主架構需要注意解決循環復制、單點故障問題,同時做好數據權限劃分。

責任編輯:姜華 來源: 君哥聊技術
相關推薦

2025-03-26 01:25:00

MySQL優化事務

2022-12-05 08:12:31

net/http庫http連接池

2021-10-19 08:07:21

微信小程序代碼

2025-04-01 00:00:00

項目CRUD單例模式

2021-12-20 10:30:33

forforEach前端

2021-07-06 07:27:45

React元素屬性

2023-02-17 08:10:24

2022-08-24 07:06:36

SpringSetter項目

2021-12-10 12:01:37

finalfinallyfinalize

2024-04-03 15:33:04

JWTSession傳輸信息

2021-11-30 07:44:50

FinalFinallyFinalize

2024-09-19 08:42:43

2024-09-09 08:30:56

代碼

2020-08-24 10:55:41

數據庫雙寫代碼

2023-02-20 08:08:48

限流算法計數器算法令牌桶算法

2021-06-01 08:25:06

Node.jsJavaScript運行

2021-09-07 10:44:33

Java 注解開發

2023-07-11 08:40:02

IO模型后臺

2024-08-28 11:58:02

2022-07-26 08:40:42

Java并發工具類
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品久久二区二区 | 久久精品一区二区三区四区 | 操皮视频 | 国产成人99久久亚洲综合精品 | 羞羞视频在线观看网站 | 中文在线一区 | 日韩有码一区 | 成人在线精品视频 | 午夜久草 | 欧美视频成人 | 国产欧美日韩一区二区三区 | 日韩成人国产 | 91综合网| 天天看片天天干 | 羞羞色视频| 国产日韩久久久久69影院 | 97精品超碰一区二区三区 | 免费在线一区二区 | 精品国产精品三级精品av网址 | 欧美日韩国产精品激情在线播放 | 久久精品欧美一区二区三区不卡 | 国产精品久久久久久久久久久免费看 | 91精品国产色综合久久不卡蜜臀 | 97久久精品午夜一区二区 | 亚洲成人一区 | 日本一区二区三区在线观看 | 国产欧美一区二区三区在线看 | 毛片在线免费 | 国产在线一区二区三区 | av在线免费观看网站 | 久久人操 | 国产精品国产精品国产专区不蜜 | 国产精品a一区二区三区网址 | 91一区二区 | 欧美中文在线 | 欧美日韩视频在线 | 在线日韩视频 | 精品久| 视频二区在线观看 | 日韩一区二区三区视频 | 超碰一区二区 |