亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL主從同步機制與同步延時問題追查過程

2024-07-25 19:09:37
字體:
來源:轉載
供稿:網友

前言

作為一名DBA,在工作中會經常遇到一些MySQL主從同步延遲的問題,這些同步慢的問題,其實原因非常多,可能是因為主從的網絡問題導致,可能是因為網絡帶寬問題導致,可能是因為大事務導致,也可能是因為單線程復制導致的延遲。

今天遇到一個問題,Mysql持續報錯,主從同步延時數過大或錯誤。所以這篇文章給大家分享下主從同步的機制原理以及問題排查思路。

故障表現

最直觀的表現為:

mysql> show slave status/G; // 狀態一 Seconds_Behind_Master: NULL // 狀態二 Seconds_Behind_Master: 0 // 狀態三 Seconds_Behind_Master: 79

連續查詢,大部分時間該屬性值=0,偶發性出現Null或者79等延時值。導致觀察主從同步延時的監控持續報警。

故障原因及解決方案

多臺備機的server-id一致,導致主機無法長時間同某一臺備機連接,進而無法正常同步。

修改server-id后,重啟數據庫恢復。

主從同步機制

MySQL,主從同步機制,同步延時

MySQL的主從同步,又稱為復制(replication),是一種內置的高可用高性能集群解決方案,主要功能有:

  • 數據分布:同步不需要很大帶寬,可以實現多數據中心復制數據。
  • 讀取的負載均衡:通過服務器集群,可以通過DNS輪詢、Linux LVS等GSLB(全局負載均衡)方式,降低主服務器的讀壓力。
  • 數據庫備份:復制是備份的一部分,但并不能代替備份。還需要與快照相結合。
  • 高可用性和故障轉移:從服務器可以快速切換為主服務器,減少故障的停機時間和恢復時間。

主從同步分為3步:

  1. 主服務器(master)把數據更改記錄到二進制日志(binlog)中。
  2. 從服務器(slave)把主服務器的二進制日志復制到自己的中繼日志(relay log)中。
  3. 從服務器重做中繼日志中的日志,把更改應用到自己的數據庫上,達到數據的一致性。

主從同步是一個異步實時的同步,會實時的傳輸,但存在執行上的延時,如果主服務器壓力很大,延時也會相應擴大。

通過上面的圖,可以看到一共需要3個線程:

  1. 主服務器的日志傳送線程:負責將二進制日志增量傳送到備機
  2. 從服務器的I/O線程:負責讀取主服務器的二進制日志,并保存為中繼日志
  3. 從服務器的SQL線程,負責執行中繼日志

查看MySQL線程

我們可以使用show full processlist;命令來查看MySQL的狀態:

主機的狀態:

MySQL,主從同步機制,同步延時

備機的狀態:

MySQL,主從同步機制,同步延時

可以看到,我的集群架構為1臺主機、4臺備機,所以在主機中有4個同步線程(已經發送所有的binlog數據到備機,等待binlog日志更新),1個查看命令線程(show full processlist)。在備機中有1個查看命令線程,1個I/O線程(等待主機發送同步數據事件),1個SQL線程(已經讀取了所有中繼日志,等待I/O線程來更新它)。

查看同步狀態

因為主從同步是異步實時的,也就是會存在延時的情況,我們可以通過show slave status;來查看備機上的同步延時:

MySQL,主從同步機制,同步延時

在主從同步中我們需要關注的一些屬性,已經給大家標紅了:

  • Slave_IO_State: 當前I/O線程的狀態
  • Master_Log_File: 當前同步的主服務器的二進制文件
  • Read_Master_Log_Pos: 當前同步的主服務器的二進制文件的偏移量,單位為字節,如圖中為已經同步了12.9M(13630580/1024/1024)的內容
  • Relay_Master_Log_File: 當前中繼日志同步的二進制文件
  • Slave_IO_Running: 從服務器中I/O線程的運行狀態,YES為運行正常
  • Slave_SQL_Running: 從服務器中SQL線程的運行狀態,YES為運行正常
  • Exec_Master_Log_Pos: 表示同步完成的主服務器的二進制日志偏移量
  • Seconds_Behind_Master: 表示從服務器數據比主服務器落后的持續時長

同樣可以通過show master status;命令來查看主服務器的運行狀態:

MySQL,主從同步機制,同步延時

正常運行的主從同步狀態:

Slave_IO_Running: YES
Slave_SQL_Running: YES
Seconds_Behind_Master: 0

問題排查

在理解了主從同步的機制后,再來看今天遇到的問題,通過查看備機狀態,我們觀察在三種狀態下的幾個關鍵屬性值:

mysql> show slave status/G;#狀態一: Slave_IO_State: Reconnecting after a failed master event read Slave_IO_Running: No Slave_SQL_Running: Yes Seconds_Behind_Master: NULL#狀態二: Slave_IO_State: Waiting for master to send event Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0#狀態三: Slave_IO_State: Queueing master event to the relay log Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 636

通過MySQL主從復制線程狀態轉變,我們可以看到三種狀態的不同含義:

# 狀態一# 線程正嘗試重新連接主服務器,當連接重新建立后,狀態變為Waiting for master to send event。Reconnecting after a failed master event read# 狀態二# 線程已經連接上主服務器,正等待二進制日志事件到達。如果主服務器正空閑,會持續較長的時間。如果等待持續slave_read_timeout秒,則發生超時。此時,線程認為連接被中斷并企圖重新連接。Waiting for master to send event# 狀態三# 線程已經讀取一個事件,正將它復制到中繼日志供SQL線程來處理。Queueing master event to the relay log

在這里,我們可以猜測,由于某些原因,從服務器不斷的和主服務器進行斷開并嘗試重連,重連成功后又再次斷開。

我們再看看主機的運行情況:

MySQL,主從同步機制,同步延時

發現問題出在10.144.63.*和10.144.68.*兩臺機器上,我們查看其中一臺的錯誤日志:

190214 11:33:20 [Note] Slave: received end packet from server, apparent master shutdown: 
190214 11:33:20 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.005682' at postion 13628070

拿到關鍵字Slave: received end packet from server, apparent master shutdown: Google搜索一下,在文章Confusing MySQL Replication Error Message中可以看到原因為兩臺備機的server-id重復。

One day it happen to me, and took me almost an hour to find that out.
Moving foward I always use a base my.cnf to I copy to any other server and the first thing is to increase the server-id.
Could MySQL just use the servername intead of a numeric value?

問題修復

定位了問題,我們確認下是否重復,發現兩臺備機的該字段確實相同:

vim my.cnf#replicationlog-bin=mysql-bin# 這個隨機數字相同導致的server-id=177230069sync_binlog=1

更改一個其他不同的數字,保存,重啟MySQL進程,報警恢復。

總結

最終來看,這個問題的解決非常簡單,但從剛開始的迷茫到最后的思路清晰,都是我們排查問題所常見的,這篇文章的主要收獲是讓你明白主從同步的機制和追查問題的思路,希望下次我們都能很快的解決主從同步帶給我們的問題。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。

參考資料

  • 《MySQL基礎內幕 InnoDB存儲引擎 第2版》P8.7 復制
  • MySQL主從復制線程狀態轉變
  • Confusing MySQL Replication Error Message

注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品中文| 久久婷婷国产麻豆91天堂| 国产视频福利一区| 国内成人精品视频| 欧美性xxxx18| 欧美激情成人在线视频| 国产日韩欧美一二三区| 欧美理论电影在线播放| 91精品国产色综合久久不卡98口| 欧美成在线视频| 97国产suv精品一区二区62| 亚洲无亚洲人成网站77777| 91高清视频在线免费观看| 2018日韩中文字幕| 亚洲国产美女久久久久| 亚洲qvod图片区电影| 欧美日韩色婷婷| 亚洲综合一区二区不卡| 国产精品免费一区| 精品国产91久久久久久| 国产精品久久久久久av| 亚洲aa中文字幕| 亚洲欧美中文日韩v在线观看| 欧美激情乱人伦一区| 国产精品福利在线观看网址| 国产免费成人av| 亚洲自拍偷拍一区| 日韩有码在线视频| 久久天天躁狠狠躁夜夜av| 91欧美激情另类亚洲| 国产精品嫩草影院久久久| 久久久999精品| 亚洲综合国产精品| 亚洲最大福利视频| 国产精品视频精品视频| 亚洲区中文字幕| 亚洲精品www久久久久久广东| 亚洲欧美一区二区精品久久久| 国产va免费精品高清在线观看| 欧美xxxx14xxxxx性爽| 久久精品国产欧美激情| 亚洲电影av在线| 国产精品一区二区性色av| 亚洲一区国产精品| 91av视频在线播放| 久久成人免费视频| 国产精品视频网站| 中文字幕在线精品| 国产精自产拍久久久久久蜜| 亚洲2020天天堂在线观看| 永久免费精品影视网站| 欧美成人午夜剧场免费观看| 中文字幕在线视频日韩| 国产亚洲一区精品| 精品伊人久久97| 成人精品久久久| 国产成人一区二区在线| 国产精品毛片a∨一区二区三区|国| 国产精品video| 精品久久久一区| 成人免费看黄网站| 国产免费成人av| 国模gogo一区二区大胆私拍| 97视频免费在线观看| 最近日韩中文字幕中文| 91在线观看免费网站| 国产精品白嫩初高中害羞小美女| 欧美巨大黑人极品精男| 久久久在线视频| 91精品国产综合久久香蕉| 日本午夜精品理论片a级appf发布| 亚洲国模精品一区| 91视频国产一区| 播播国产欧美激情| 日韩在线欧美在线| 岛国av午夜精品| 九九久久国产精品| 欧美一级bbbbb性bbbb喷潮片| 成人福利在线观看| 欧美日韩国产影院| 国产在线拍偷自揄拍精品| 日韩www在线| 亚洲丝袜在线视频| 6080yy精品一区二区三区| 成人国产精品色哟哟| 国外成人在线视频| 欧美精品少妇videofree| 日韩电影免费观看中文字幕| 欧美中文在线免费| 久久偷看各类女兵18女厕嘘嘘| 亚洲欧美一区二区三区四区| 97视频com| 精品国产拍在线观看| 亚洲欧美日本另类| 91欧美日韩一区| 亚洲精品日韩久久久| 亚洲精品视频在线观看视频| 日本aⅴ大伊香蕉精品视频| 久久久久久亚洲精品| 国产精品久久99久久| 这里只有精品丝袜| 亲爱的老师9免费观看全集电视剧| 日韩欧美综合在线视频| 欧美日韩国产丝袜美女| 亚洲第一国产精品| 欧美成aaa人片免费看| 精品一区二区三区电影| 国产欧美日韩精品专区| 国产精品久久久久久久久久尿| www高清在线视频日韩欧美| 欧美自拍视频在线观看| 色婷婷亚洲mv天堂mv在影片| 成人有码在线视频| 91福利视频在线观看| 亚洲xxxx做受欧美| 欧美激情一区二区三区成人| 日韩美女激情视频| 中文字幕欧美精品在线| 欧美专区在线观看| 亚洲视频自拍偷拍| 疯狂做受xxxx高潮欧美日本| 欧美日韩中国免费专区在线看| 日韩精品极品视频免费观看| 精品亚洲一区二区三区四区五区| 亚洲在线第一页| 91精品国产高清| 日韩资源在线观看| 国产69久久精品成人看| 亚洲午夜激情免费视频| 亚洲午夜未删减在线观看| 国产精品福利网站| 欧美乱大交做爰xxxⅹ性3| 亚洲第一二三四五区| 亚洲国产成人精品久久| 国语自产精品视频在线看抢先版图片| 亚洲欧美国产精品久久久久久久| 久久福利视频导航| 亚洲欧美日韩一区二区三区在线| 国产欧美日韩免费看aⅴ视频| 红桃av永久久久| 亚洲欧美国产一本综合首页| 国产成+人+综合+亚洲欧美丁香花| 91高清视频在线免费观看| 欧美疯狂性受xxxxx另类| 精品动漫一区二区三区| 久热精品视频在线观看| 亚洲视频欧洲视频| 久久免费视频网站| www.久久撸.com| 2018中文字幕一区二区三区| 成人乱色短篇合集| 成人福利免费观看| 国产精品久久久久久久久久新婚| 综合网日日天干夜夜久久| 日韩黄色高清视频| 在线激情影院一区| 欧美性猛交xxxx| 精品久久中文字幕| 亚洲图片在线综合| 国产精品香蕉在线观看| 日韩一区二区福利| 日韩在线观看免费全| 欧美性一区二区三区| 亚洲欧美中文字幕在线一区|