mysql如何減少主從複製延遲

         mysql如何減少主從複製延遲:

如果延遲比較大,就先確認以下幾個因素:

1. 從庫硬件比主庫差,導致複製延遲

2. 主從複製單線程,如果主庫寫併發太大,來不及傳送到從庫,就會導致延遲。更高版本的mysql可以支持多線程複製

3. SQL語句過多

4. 網絡延遲
5. master負載

主庫讀寫壓力大,導致複製延遲,架構的前端要加buffer及緩存層
6. slave負載

一般的做法是,使用多臺slave來分攤讀請求,再從這些slave中取一臺專用的服務器,只作爲備份用,不進行其他任何操作.

另外, 2個可以減少延遲的參數:

–slave-net-timeout=seconds 單位爲秒 默認設置爲 3600

#參數含義:當slave從主數據庫讀取log數據失敗後,等待多久重新建立連接並獲取數據

–master-connect-retry=seconds 單位爲秒 默認設置爲 60

#參數含義:當重新建立主從連接時,如果連接建立失敗,間隔多久後重試。

通常配置以上2個參數可以減少網絡問題導致的主從數據同步延遲

MySQL數據庫主從同步延遲解決方案

最簡單的減少slave同步延時的方案就是在架構上做優化,儘量讓主庫的DDL快速執行。還有就是主庫是寫,對數據安全性較高,比如sync_binlog=1innodb_flush_log_at_trx_commit = 1 之類的設置,而slave則不需要這麼高的數據安全,完全可以講sync_binlog設置爲0或者關閉binloginnodb_flushlog也可以設置爲0來提高sql的執行效率。另外就是使用比主庫更好的硬件設備作爲slave




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章