1. 程式人生 > >mysql監控優化(二)主從復制

mysql監控優化(二)主從復制

如何 程序 延遲 負載均衡 state 帶來 客戶 備份 技術

復制解決的基本問題是讓一臺服務器的數據和其他服務器保持同步。一臺主服務器的數據可以同步到多臺從服務器上。並且從服務器也可以被配置為另外一臺服務器的主庫。主庫和從庫之間可以有多種不同的組合方式。

MySQL支持兩種復制方案:基於語句的復制(statement-based replication)和基於行的復制(Row-based replication)。基於語句的復制在MySQL3.23就已經存在,它是使用較多的復制方式。基於行的復制是MySQL5.1引入的。這2種復制方式都是通過記錄主服務器的二進制日誌,並在從服務器進行重放(replay)完成復制。它們都是異步的。也就是說,從服務器上的數據並非都是最新的。

復制通常不會增加主庫的開銷,主要是啟用二進制日誌帶來的開銷,但出於備份戒及時從崩潰中恢復的目的,這些開銷是必要的。通過復制可以將讀操作指向從庫來獲得更好的讀擴展,但對於寫操作,並不適合通過復制來擴展。

1、mysql復制用途

  • 分布數據

MySQL通常不會對帶寬造成很大的壓力。因此可以在不同的地理位置來分布數據,實現跨機房跨地域的數據分布。

  • 負載均衡

通過MySQL復制可以將讀操作分布到多個服務器上,實現對讀密集型應用的優化。

  • 備份

復制對備份很有幫助,但是從服務器並不是備份。

  • 高可用性和故障轉移

復制可以避免在應用程序中出現MySQL失效。好癿故隓轉移能顯著的減少停機時間,甚至讓用戶無感知。

  • 測試MySQL版本升級

一個常見的方法是先把從服務器升級到MySQL新版本,然後用它來測試查詢,確保無異常後再升級主服務器

2、案例:客戶投訴:修改了xx信息,提示修改成功。再查看還是舊數據。怎麽回事?

很有可能是數據庫主從延遲造成的

技術分享圖片

3、MySQL主從延時延時問題如何處理?

1.偶發性延時:控制寫入速度,削峰填谷。

2.頻發性延時:拆分數據庫實現多點寫入

3.最後一招:從庫磁盤硬件升級為ssd

4、 mysql主從復制的過程是怎樣的呢?如下圖所示

技術分享圖片

3個線程完成復制:

  • 主庫1個線程負責記錄數據庫變更日誌
  • 從庫1個線程負責拉取主庫的變更日誌
  • 從庫1個線程負責執行主庫的變更日誌
  • 實現了獲取事件和重放事件的解耦,允許異步進行。
  • 復制的瓶頸:主庫並行(多線程)寫入和從庫串行(單線程)寫入,會造成主從延遲。

mysql監控優化(二)主從復制