mysql擴展:主從原理及延遲

1.  主從複製:     (異步單線程)web

主庫-->binlog-->-->relaylog-->從庫sql

Master 上的 一個I/O線程,負責向Slave傳輸binary log (binlog)多線程

Slave 上2個線程:IO線程和執行sql的線程:架構

  • IO線:將獲取的日誌信息,追加到relay log上;併發


  • 執行SQL的線程:檢測到relay log中內容有更新,則在Slave上執行sql;異步

clipboard.png

1.png


執行全部命令 只能在主庫上執行,從庫只有讀的功能,(若是從庫有寫功能,則主從很容易就中斷)ide


2.主從當出現錯誤時,主要先檢查從庫日誌:show slave status \G;優化


3.MySQL 集羣,常見方式:主從集羣spa

  • Master 節點,負責全部的「寫請求」線程

  • Slave 節點,負責大部分的「讀請求」

主從集羣可以下降訪問壓力,下降master的壓力,提升系統可用性。


常見的主從架構:

  • 一主一從:一個 Master,一個 Slave

  • 一主多從:一個 Master,多個 Slave


主從延遲

如何監控

監控主從延遲的方法有多種:

  1. Slave 使用本機當前時間,跟 Master 上 binlog 的時間戳比較

  2.  

  3. pt-heartbeatmt-heartbeat

本質:同一條 SQL,Master執行結束的時間 vs. Slave執行結束的時間。


主從延遲的緣由:

master

a.大事務。

b.sql執行速度慢

c.批量DML操做


減弱延遲:

  1. 細化事務:將大事務拆爲小事務,沒必要要的地方移除事務     

    1. 提高 SQL 執行速度:優化索

    2. 減小批量操做:批量 DML 的耗時較多,減小沒必要要的批量 DML

  2. 下降多線程大事務併發的機率:優化業務邏輯


MySQL雙主(主主)

能夠使用keepalived作兩臺主作高可用,高可用策略的時候,masterA或masterB均不因宕機恢復後而搶佔VIP(非搶佔模式)

相關文章
相關標籤/搜索