今天分析了另外一個關于數據庫延遲跳動的問題,也算是比較典型,這個過程中也有一些分析問題的方法和技巧工參考。
首先在高可用檢測中,有一套環境的檢測時斷時續,經過排查發現是數據庫產生了延遲,在登錄到從庫show slave status查看,會發現Seconds_behind_master的值是不斷跳動的,即從0~39~0~39這樣的頻率不斷跳動,讓人很搓火。
查看數據庫的相關日志發現竟然沒有任何可以參考的日志記錄,怎么分析這個問題呢,我們先來復現,于是我按照節奏抓取了3次問題出現的日志,即通過show slave status連續監測,抓取show slave status輸出的結果保存下來,這樣我們就得到了一個問題發生過程中的偏移量變化,而這個變化則是在SQLThread在回放過程中產生的問題。
比如下面的一段輸出,我截取的是Slave端的relay log進行分析,相應的字段為Relay_Log_Pos
所以很快得到了偏移量的變化情況:385983806 ,386062813 ,386125580
接著我使用mysqlbinlog開始分析這些日志過程中的明細,根據如下的命令可以很快得到轉儲的日志中相關的表有3張。
我逐步分析了每張表的數據操作情況,得到的信息還是比較有限,繼續做更進一步的分析,比如我們分析一下整個日志中的事務量大小:
可以看到是5K左右,算是比較大了,而這些額外的信息從哪里獲得呢,我在主庫開啟了general_log,這樣就能夠得到更細粒度的操作日志了。
進一步分析發現,整個業務使用了顯示事務的方式:SET autocommit=0,整個事務中包含了幾個大SQL,里面存儲了很多操作日志明細,而且在事務操作過程中還基于Mybatis框架調用了多次select count(1) from xxx的操作。
經過和業務溝通也基本明確了以上問題。
-
數據庫
+關注
關注
7文章
3848瀏覽量
64691 -
延遲
+關注
關注
1文章
70瀏覽量
13586 -
MySQL
+關注
關注
1文章
829瀏覽量
26745
發布評論請先 登錄
相關推薦
從Delphi、C++ Builder和Lazarus連接到MySQL數據庫
![從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>](https://file1.elecfans.com/web3/M00/06/A5/wKgZO2eN5IqANOPPAAAbvvhWjM0611.png)
適用于MySQL和MariaDB的Python連接器:可靠的MySQL數據連接器和數據庫
![適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數據</b>連接器和<b class='flag-5'>數據庫</b>](https://file1.elecfans.com/web3/M00/06/57/wKgZPGeJ2kmAcWpWAAAh1ecL_LM122.png)
MySQL數據庫的安裝
![<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>的安裝](https://file1.elecfans.com/web3/M00/05/E2/wKgZPGeF2XWAe83fAAAW9lhgvGk652.jpg)
構建數據庫解決方案,基于華為云 Flexus X 實例容器化 MySQL 主從同步架構
![構建<b class='flag-5'>數據庫</b>解決方案,基于華為云 Flexus X 實例容器化 <b class='flag-5'>MySQL</b> 主從同步架構](https://file1.elecfans.com//web3/M00/05/2A/wKgZO2d88lOAXpycAAEA43MSbXE954.png)
云數據庫是哪種數據庫類型?
數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例
香港云服務器怎么部署MySQL數據庫?
數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—通過拼接<b class='flag-5'>數據庫</b>碎片恢復SQLserver<b class='flag-5'>數據庫</b>](https://file1.elecfans.com/web1/M00/F4/07/wKgaoWcjE32AbQdWAAJD_hojvJc119.png)
數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—SQL Server<b class='flag-5'>數據庫</b>出現823錯誤的<b class='flag-5'>數據</b>恢復案例](https://file1.elecfans.com/web2/M00/07/F4/wKgaombs78mANJ1GAAPeSoXHVPE244.png)
華納云:MySQL初始化操作如何創建新的數據庫
恒訊科技分析:跨境電商網站有哪些數據庫系統是推薦使用的?
恒訊科技分析:sql數據庫怎么用?
數據庫數據恢復—raid5陣列上層Sql Server數據庫數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—raid5陣列上層Sql Server<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復案例](https://file.elecfans.com/web2/M00/A2/AD/pYYBAGRLbSSAHhFWAAI9vWNRQec919.png)
評論