主從複製延遲及原因

2022-06-25 02:42:13 字數 579 閱讀 9553

1.主庫方面原因

(1) binlog寫入不及時     sync_binlog=1

(2) 預設情況下dump_t 是序列傳輸binlog *****

在併發事務量大時或者大事務,由於dump_t 是串型工作的,導致傳送日誌較慢

如何解決問題?

必須gtid,使用group commit方式.可以支援dump_t並行

(3) 主庫極其繁忙

慢語句、鎖等待、從庫個數、網路延時

2. 從庫方面原因

(1) 傳統複製(classic)中 *****

如果主庫併發事務量很大,或者出現大事務

由於從庫是單sql執行緒,導致,不管傳的日誌有多少,只能一次執行乙個事務.

5.6 版本,有了gtid,可以實現多sql執行緒,但是只能基於不同庫的事務進行併發回放.(database)

5.7 版本中,有了增強的gtid,增加了seq_no,增加了新型的併發sql執行緒模式(logical_clock),mts技術

(2) 主從硬體差異太大

(3) 主從的引數配置

(4) 從庫和主庫的索引不一致

(5) 版本有差異

主從複製延遲導致坑

背景 線上出現了使用者註冊了多條重覆記錄 排查問題 原來 邏輯 先查詢傳過來的openid是否在從庫中存在,不存在就進行主庫插入。出現問題關鍵點 前端第一次請求時候,判斷從庫不存在,然後主庫插入註冊資料。由於出現複製延遲,前端第二請求過來,因為延遲了從庫查詢還是不存在,那就gg了,又重複插了一條。解...

mysql讀寫分離,主從複製,主從延遲

為了提公升資料庫的效能,一般會採用讀寫分離,即寫請求去主庫,讀請求去從庫。支援開啟多個io執行緒,可以提公升效率。開啟mysql的semi sync 半同步複製功能,即資料落庫,寫入binlog,並至少同步給一台從庫的relay日誌,才算寫成功。從庫開啟多個sql執行緒,可以併發讀取relay日誌,...

mysql 主從複製延遲產生的原因有哪些?

在某些部署環境中,備庫所在的機器效能要比主庫所在的機器效能差。此時如果機器的資源不足的話就會影響備庫同步的效率 備庫充當了讀庫,一般情況下主要寫的壓力在於主庫,那麼備庫會提供一部分讀的壓力,而如果備庫的查詢壓力過大的話,備庫的查詢消耗了大量的cpu資源,那麼必不可少的就會影響同步的速度 大事務執行,...