減少mysql主從數(shù)據(jù)同步延遲問題的詳解
基于局域網(wǎng)的master/slave機(jī)制在通常情況下已經(jīng)可以滿足'實(shí)時'備份的要求了。如果延遲比較大,就先確認(rèn)以下幾個因素:
1. 網(wǎng)絡(luò)延遲
2. master負(fù)載
3. slave負(fù)載
一般的做法是,使用多臺slave來分?jǐn)傋x請求,再從這些slave中取一臺專用的服務(wù)器,只作為備份用,不進(jìn)行其他任何操作,就能相對最大限度地達(dá)到'實(shí)時'的要求了
另外,再介紹2個可以減少延遲的參數(shù)
–slave-net-timeout=seconds
參數(shù)含義:當(dāng)slave從主數(shù)據(jù)庫讀取log數(shù)據(jù)失敗后,等待多久重新建立連接并獲取數(shù)據(jù)
slave_net_timeout單位為秒 默認(rèn)設(shè)置為 3600秒
| slave_net_timeout | 3600
–master-connect-retry=seconds
參數(shù)含義:當(dāng)重新建立主從連接時,如果連接建立失敗,間隔多久后重試。
master-connect-retry單位為秒 默認(rèn)設(shè)置為 60秒
通常配置以上2個參數(shù)可以減少網(wǎng)絡(luò)問題導(dǎo)致的主從數(shù)據(jù)同步延遲
一般網(wǎng)絡(luò)問題的錯誤是:
070401 16:16:55 [ERROR] Error reading packet from server: Lost connection to MySQL server during query (server_errno=2013)
070401 16:16:55 [ERROR] Slave I/O thread: Failed reading log event, reconnecting to retry, log ‘mysql_master-bin.000134′ position 115817861
相關(guān)文章
關(guān)于sql?count(列名)、count(常量)、count(*)之間的區(qū)別
這篇文章主要介紹了關(guān)于sql?count(列名)、count(常量)、count(*)之間的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08mysql數(shù)據(jù)庫如何實(shí)現(xiàn)億級數(shù)據(jù)快速清理
這篇文章主要介紹了mysql數(shù)據(jù)庫實(shí)現(xiàn)億級數(shù)據(jù)快速清理的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04Window 下安裝Mysql5.7.17 及設(shè)置編碼為utf8的方法
這篇文章主要介紹了Window 下安裝Mysql5.7.17 及設(shè)置編碼為utf8的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03Java的Struts框架中append標(biāo)簽與generator標(biāo)簽的使用
這篇文章主要介紹了Java的Struts框架中append標(biāo)簽與generator標(biāo)簽的使用方法,Struts是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12MySQL鎖等待超時問題的原因和解決方案(Lock wait timeout exceed
在數(shù)據(jù)庫開發(fā)和管理中,鎖等待超時是一個常見而棘手的問題,對于使用 MySQL 的應(yīng)用程序,尤其是采用 InnoDB 存儲引擎的場景,這一問題更是屢見不鮮,本文給大家介紹了MySQL鎖等待超時問題的原因和解決方案,需要的朋友可以參考下2024-11-11