【mariadb主從架構的工做原理】sql
主節點寫入數據之後,保存到二進制文件中,從節點生成IO線程和sql線程,IO線程請求讀取二進制文件;主節點生成的dump線程,將數據發送到中繼日誌中,sql線程讀取中繼日誌,進行回放,保存在數據庫中進行同步。數據庫
mariadb主從架構只有一個從節點的時候會生成一個dump thread,主從架構至少三個thread。當從節點多的時候,主節點就要生成多個dump線程,會對主節點的性能形成影響。安全
所以,在主節點和從節點之間加入引擎blackhole(不可讀不可寫),只用來存儲二進制日誌文件(串行記錄),來減輕主節點的壓力。【解決方案】架構
在寫入二進制文件的時候有必定的延遲,數據大時從節點的同步也一定會有更大的延遲,可是有延遲並不必定表明很差,當有誤操做的時候,由於有延遲就能夠掐斷中間的鏈接,從而用從節點去恢復數據。異步
【異步】一個請求信息發出,不須要等待返回值,就能夠進行下一步操做。優勢:效率高 缺點:不安全性能
【實時同步】一個請求信息發出,必須有一個返回值,才能執行下一步,優勢:安全 缺點:效率低spa
異步與實時同步是相對的兩個概念。線程
注意:主從架構是異步的。日誌
1.【MHA】主機高可用,預防主節點單點故障的解決方案,部在另外的主機blog
master high avilable,經過配置文件監控主從架構的,能夠監控多個主從架構;當主節點down掉後,MHA會在從節點中選一個代替主節點。
2.【互爲主備】主主架構
主從架構互爲主備的缺點:當sql語句發生衝突時,可能會形成數據的不一致
優勢:解決單點故障
企業中讀的多的時候,或者只讀的時候,能夠用主主。
3.【galera集羣】多主
galera集羣多用於關鍵性業務,由於galera集羣爲了數據的一致性,採用的是同步的機制,這就使galera犧牲了一部分性能來換取數據一致性。
一條事務同時提交,預防單點故障
優勢:沒有延遲,保證數據的一致性(實時同步)
缺點:性能會降低
協議:wsrep