程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 減少mysql主從數據同步延遲問題的詳解

減少mysql主從數據同步延遲問題的詳解

編輯:關於MYSQL數據庫

基於局域網的master/slave機制在通常情況下已經可以滿足'實時'備份的要求了。如果延遲比較大,就先確認以下幾個因素:
1. 網絡延遲
2. master負載
3. slave負載
一般的做法是,使用多台slave來分攤讀請求,再從這些slave中取一台專用的服務器,只作為備份用,不進行其他任何操作,就能相對最大限度地達到'實時'的要求了

另外,再介紹2個可以減少延遲的參數

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

 slave_net_timeout單位為秒 默認設置為 3600秒
| slave_net_timeout               | 3600 

  –master-connect-retry=seconds
參數含義:當重新建立主從連接時,如果連接建立失敗,間隔多久後重試。

   master-connect-retry單位為秒 默認設置為 60秒

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

一般網絡問題的錯誤是:

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved