溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

解決MySQL主從復(fù)制不一致問題的主要幾個方法

發(fā)布時間:2020-05-19 11:47:15 來源:PHP中文網(wǎng) 閱讀:419 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面講講關(guān)于解決MySQL主從復(fù)制不一致問題的主要幾個方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完解決MySQL主從復(fù)制不一致問題的主要幾個方法這篇文章你一定會有所受益。                                                  

1.網(wǎng)絡(luò)的延遲

由于mysql主從復(fù)制是基于binlog的一種異步復(fù)制,通過網(wǎng)絡(luò)傳送binlog文件,理所當然網(wǎng)絡(luò)延遲是主從不同步的絕大多數(shù)的原因,特別是跨機房的數(shù)據(jù)同步出現(xiàn)這種幾率非常的大,所以做讀寫分離,注意從業(yè)務(wù)層進行前期設(shè)計。

2.主從兩臺機器的負載不一致

由于mysql主從復(fù)制是主數(shù)據(jù)庫上面啟動1個io線程,而從上面啟動1個sql線程和1個io線程,當中任何一臺機器的負載很高,忙不過來,導(dǎo)致其中的任何一個線程出現(xiàn)資源不足,都將出現(xiàn)主從不一致的情況。

3.max_allowed_packet設(shè)置不一致

主數(shù)據(jù)庫上面設(shè)置的max_allowed_packet比從數(shù)據(jù)庫大,當一個大的sql語句,能在主數(shù)據(jù)庫上面執(zhí)行完畢,從數(shù)據(jù)庫上面設(shè)置過小,無法執(zhí)行,導(dǎo)致的主從不一致。

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

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

6.mysql本身的bug引起的主從不同步。

7.版本不一致,特別是高版本是主,低版本為從的情況下,主數(shù)據(jù)庫上面支持的功能,從數(shù)據(jù)庫上面不支持該功能。

以上就是常見的一些主從不同步的情況?;蛟S還有其他的一些不同步的情況,請說出你所遇到的主從不一致的情況。

基于以上情況,先保證max_allowed_packet、自增鍵開始點和增長點設(shè)置一致,再者犧牲部分性能在主上面開啟sync_binlog,對于采用innodb的庫,推薦配置下面的內(nèi)容

1、innodb_flush_logs_at_trx_commit = 1
2、innodb-support_xa = 1 # Mysql 5.0 以上
3、innodb_safe_binlog      # Mysql 4.0

同時在從數(shù)據(jù)庫上面推薦加入下面兩個參數(shù)

1、skip_slave_start
2、read_only

對于以上解決MySQL主從復(fù)制不一致問題的主要幾個方法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI