1. 程式人生 > >MySQL資料庫主從同步延遲分析及解決方案

MySQL資料庫主從同步延遲分析及解決方案

一、MySQL的資料庫主從複製原理

圖片

1.主庫對所有DDL和DML產生的日誌寫進binlog;
2.主庫生成一個 log dump 執行緒,用來給從庫I/O執行緒讀取binlog;
3.從庫的I/O Thread去請求主庫的binlog,並將得到的binlog日誌寫到relay log檔案中;
4.從庫的SQL Thread會讀取relay log檔案中的日誌解析成具體操作,將主庫的DDL和DML操作事件重放。

二、主從複製存在的問題

1.主庫宕機後,資料可能丟失;

2.主從同步延遲。

三、MySQL資料庫主從同步延遲產生原因

MySQL的主從複製都是單執行緒的操作,主庫對所有DDL和DML產生的日誌寫進binlog,由於binlog是順序寫,所以效率很高。
Slave的SQL Thread執行緒將主庫的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是隨即的,不是順序的,成本高很多。
另一方面,由於SQL Thread也是單執行緒的,當主庫的併發較高時,產生的DML數量超過slave的SQL Thread所能處理的速度,或者當slave中有大型query語句產生了鎖等待那麼延時就產生了。

常見原因有:Master負載過高、Slave負載過高、網路延遲、機器效能太低、MySQL配置不合理。

四、主從延時排查方法

通過監控 show slave status 命令輸出的Seconds_Behind_Master引數的值來判斷:

NULL,表示io_thread或是sql_thread有任何一個發生故障;

0,該值為零,表示主從複製良好;

正值,表示主從已經出現延時,數字越大表示從庫延遲越嚴重。

五、解決方案

解決資料丟失的問題:
1.半同步複製;
2.主庫配置sync_binlog=1,innodb_flush_log_at_trx_commit=1

解決從庫複製延遲的問題:
1.優化網路
2.升級Slave硬體配置
3.Slave調整引數,關閉binlog,修改innodb_flush_log_at_trx_commit引數值
4.升級MySQL版本到5.7,使用並行複製

相關推薦

MySQL資料庫主從同步延遲分析解決方案

一、MySQL的資料庫主從複製原理 1.主庫對所有DDL和DML產生的日誌寫進binlog; 2.主庫生成一個 log dump 執行緒,用來給從庫I/O執行緒讀取binlog; 3.從庫的I/O 

談談Mysql主從同步延遲分析解決方案

一、MySQL的資料庫主從複製原理 MySQL主從複製實際上基於二進位制日誌,原理可以用一張圖來表示: 分為四步走: 1. 主庫對所有DDL和DML產生的日誌寫進binlog; 2. 主庫生成一個 log dump 執行緒,用來給從庫I/O執行緒讀取binlog;

解析Mysql 主從同步延遲原理解決方案

  MySQL的主從同步是一個很成熟的架構,優點為:①在從伺服器可以執行查詢工作(即我們常說的讀功能),降低主伺服器壓力;②在從主伺服器進行備份,避免備份期間影響主伺服器服務;③當主伺服器出現問題時,可以切換到從伺服器。 相信大家對於這些好處已經非常瞭解了,在專案的部署中也採用

mysql主從同步延遲原因解決方法

解決方案 數據庫 master 朋友 mysql MySQL主從延遲原因以及解決方案:談到MySQL數據庫主從同步延遲原理,得從mysql的數據庫主從復制原理說起,mysql的主從復制都是單線程的操作(mysql5.6版本之前),主庫對所有DDL和DML產生binlog,binlog是順序

MYSQL主從同步延遲原理分析解決方案

run 步長 syn class ati 可能 16px 一點 表示 1.網絡的延遲由於mysql主從復制是基於binlog的一種異步復制,通過網絡傳送binlog文件,理所當然網絡延遲是主從不同步的絕大多數的原因,特別是跨機房的數據同步出現這種幾率非常的大,所以做讀寫分離

Redis快取維護方案-考慮資料庫與快取雙寫、redis和本地資料庫事務一致性、資料庫主從同步延遲的情況怎麼解決快取與資料庫不一致

一般常用的快取方案有兩種: 第一種 讀的時候,先讀快取,快取沒有的話,讀資料庫,取出資料後放入快取,同時返回響應。 更新的時候,

MySQL Err 1418 的原因分析解決方法

mysql 1418 MySQL的有個參數log_bin_trust_function_creators,官方文檔對這個參數的介紹、解釋如下所示: This variable applies when binary logging is enabled. It controls whether st

MySQL主從 常見的錯誤解決方案

數據對比 線程 redirect 創建 主鍵 不一致 執行 如果 避免 一、錯誤日誌解析: (1) 【ERROR】1452:無法在外鍵的表插入參考主鍵沒有的數據 1452:無法在外鍵的表插入或更新參考主鍵沒有的數據。由於item_discovery.it

高併發架構系列:資料庫主從同步的3種一致性方案實現,優劣比較

在高併發場景下,資料主從同步是必然的方式,除了資料庫主從同步外,還會涉及到分散式環境下的資料同步(文末有介紹~)。 今天分享資料庫主從同步解決方案。 資料主從同步的由來 網際網路的很多業務,特別是在高併發的場景下,基本都是讀遠遠大於寫,如果資料庫讀和寫的壓力都同在一臺主機上,這顯然不太合理。

MySQL死鎖問題例項分析解決方法(主要是SQL語句可能會產生的問題)

from: http://database.51cto.com/art/201108/286325.htm MySQL死鎖問題的相關知識是本文我們主要要介紹的內容,接下來我們就來一一介紹這部分內容,希望能夠對您有所幫助。 1、MySQL常用儲存引擎的鎖機制 MyISAM

Linux下MySQL資料庫主從同步配置

Linux下MySQL資料庫主從同步配置 一.配置mysql主資料庫#172.30.65.122 mysql -u root-p#進入控制檯 create databasecesudb#建立資料庫測速db insert intomysql.user(Host,User,Pa

造成資料庫表死鎖的原因分析解決方案

        在聯機事務處理(OLTP)的資料庫應用系統中,多使用者、多工的併發性是系統最重要的技術指標之一。為了提高併發性,目前大部分RDBMS都採用加鎖技術。然而由於現實環境的複雜性,使用加鎖技術又不可避免地產生了死鎖問題。因此如何合理有效地使用加鎖技術,最小化死鎖是

教程:Visual Studio 連線 MySQL 資料庫(包含常見錯誤解決方法)

步驟①:確保 VS2012 和 Mysql 軟體能正常執行VS2015/VS2010等其它版本應該都行,Mysql也是步驟②:新增<mysql.h>標頭檔案到VS庫之後新增包含目錄如下一般的mysql都預設在C://program files裡面,之後按照圖中的路

資料庫主從同步延遲導致坑

背景: 線上出現了使用者註冊了多條重複記錄 排查問題: 第一種一開始懷疑是不是併發問題造成,後來查了大多數都是隔了幾秒鐘,併發出現概率小 第二種就是看出現重複資料的時間,然後線上看到從庫出現了延遲複製的問題,這就問題出現的關鍵 原來程式碼邏輯

MySQL資料庫主從同步

一、主從同步的原因      為了減輕伺服器處理海量併發訪問所產生的效能問題,其中最主流的方案之一就是讀寫分離。 二、MySQL主從同步流程圖                   &nb

AppStore IPv6-only審核被拒原因分析解決方案

穩定 eip ios 穩定性 only 應用服務器 http 一個 搭建 AppStore IPv6-only審核被拒原因分析及解決方案 http://www.jianshu.com/p/8edfdfa20b29 自2016年6月1日起,蘋果要求所有提交App St

U-Mail郵件系統詳解郵件收發延遲原因解決方案

郵件系統 郵件是現代社會辦公最常見、最頻繁的通聯工具,但使用郵件系統時,用戶普遍最關心兩個安全,一個是安全性,郵件會不會被竊密?自己的郵箱賬號會不會被盜取被攻占呢?保存的數據會不會丟失呢?關於這個問題,國內知名通聯解決方案提供商U-Mail資深專家馬工已反復闡述過很多次。 另一個問題是關於郵件傳輸的,郵

Vue資料繫結後文本閃爍問題分析解決方案

Vue文字閃爍問題 一、問題描述 程式碼示例: <div id="app"> <span>{{user.userName}}</span> </div> 頁面顯示: {{user.userName}} 問題詳情:在載

製造業MES系統需求分析解決方案

MES系統面向生產管理人員,滿足排產、排程,瞭解整體生產資訊的需求,支援線上生產資訊廣播,提供廠內精益物料管理,物料拉動,生產質量管控。排產和跟蹤系統制定上線順序,並下發到車間控制PLC裡負責執行。MES生成系統內部訂單數量範圍內的計劃,所以MES不用關心,由於生產模式造成的插單問題(上次訂單未生產完成,造成

制造業MES系統需求分析解決方案

及其 情況 系統架構 看板 分類 生產訂單 活性 軟件源代碼 一周 MES系統面向生產管理人員,滿足排產、調度,了解整體生產信息的需求,支持在線生產信息廣播,提供廠內精益物料管理,物料拉動,生產質量管控。排產和跟蹤系統制定上線順序,並下發到車間控制PLC裏負責執行。MES生