程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql復制的一例錯誤:Relay_Log_Pos不變

mysql復制的一例錯誤:Relay_Log_Pos不變

編輯:MySQL綜合教程

最近公司的一台Mysql從機延遲了18W秒,兩天前發現延遲時,觀察SLAVE STATUS,一切正常,以為近期業務調整造成寫操作過多,從機延遲的比較厲害,就沒有做過多注意。元旦放假回來後發下延遲時間竟然已經有18W。

具體的情況描述如下:IO線程和SQL線程運行正常,master日志拷貝正常。唯一不正常的問題就是Relay_Log_Pos一直不變,且SLAVE STATUS狀態並沒有報錯。以為某一條語句長時間鎖住的某張表造成的,但觀察processlist發現數據庫中並沒有任何語句在運行。為了不影響業務運行,我們將所有讀操作遷移到了另外一台,並對這台機器進行原因分析。SLAVE STATUS狀態如下圖:

\

我們經過幾次SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1操作(跳過當前執行位置),發現依然會存在卡住的問題。於是我們想找出卡住的原因,根據上圖給出的位置,我們隊relay_log進行了分析

mysqlbinlog relaylog.008077 --start-position=223496095 -f -d xxx | more 結果如下圖: \

我們發現每次卡住的位置都在unkown event事件前面,每次跳過後碰到這個就會卡住。中繼日志中產生這樣的時間的原因無從得知,可能是我們調整了表結構分區造成的。最後我們多次執行SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1操作後不再存在卡住的情況。

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