那些原因會導致Mysql主從數據不一致

1.網絡的延遲
由於mysql主從複製是基於binlog的一種異步複製,通過網絡傳送binlog文件,理所當然網絡延遲是主從不同步的絕大多數的原因,特別是跨機房的數據同步出現這種機率非常的大,所以做讀寫分離,注意從業務層進行前期設計。

2.主從兩臺機器的負載不一致
由於mysql主從複製是主數據庫上面啓動1個io線程,而從上面啓動1個sql線程和1個io線程,當中任何一臺機器的負載很高,忙不過來,導致其中的任何一個線程出現資源不足,都將出現主從不一致的情況。

3.max_allowed_packet設置不一致
主數據庫上面設置的max_allowed_packet比從數據庫大,當一個大的sql語句,能在主數據庫上面執行完畢,從數據庫上面設置過小,無法執行,導致的主從不一致。

4.key自增鍵開始的鍵值跟自增步長設置不一致引起的主從不一致。

5.mysql異常宕機情況下,如果未設置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出現binlog或者relaylog文件出現損壞,導致主從不一致。

6.mysql本身的bug引起的主從不同步。
7.版本不一致,特別是高版本是主,低版本爲從的情況下,主數據庫上面支持的功能,從數據庫上面不支持該功能。

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