故障的機器修好後重啟,狂拉主庫binlog,導致網路問題,造成一定影響

84223932發表於2016-01-22
本文主要記錄一次簡單的、典型的故障,發生問題的原因很簡單,這個問題發生也很簡單,各位同學一定要注意,一不留神就會對主庫造成影響。
 

歡迎轉載,請註明作者、出處。

作者:張正
blog:http://space.itpub.net/26355921 
QQ:176036317
如有疑問,歡迎聯絡。

       
問題簡述:
一週前,有一臺mysql伺服器發生硬體故障,停機了。我們給專門負責這塊的同學提交了申請,他們負責去報修這臺伺服器。今天這臺伺服器修好後,他們將其開機啟動。伺服器上的4個mysql例項在開機後自動啟動,開始拉主庫的binlog。由於這臺伺服器停機時間比較久,日誌丟的比較多,狂拉主庫的binlog,導致主庫網路出現問題。

現象:
首先,我們完全沒有意識到是因為一臺壞掉的伺服器重啟拉主庫binlog導致的,因為我們壓根不知道 這臺伺服器什麼情況,只知道1周前,我們報修了1臺伺服器。具體什麼情況,有沒有修好,有沒有開機,我們完全不知道。
在這樣的情況下,忽然聽到網路的同學說mysql有一臺機器網路流量過大,導致業務感覺很慢,總共持續了17分鐘。其實這樣,是沒有多大頭緒的。

排查:
檢視processlist、全日誌、慢日誌都沒有發現有什麼問題。
檢視監控,發現那段時間的伺服器的讀IO驟然升高。
透過檢視processlist的歷史記錄,發現有一段時間,主從複製的使用者 狀態是 waiting for net,透過其IP發現該伺服器是1周前壞掉的一個slave伺服器。

結論:
這臺伺服器上有4個例項,伺服器啟動後,mysql例項自動啟動,開始向主庫上拉binlog,每個主庫每天的binlog量大概6G,4個例項1個星期大概160多G的binlog。

問題:
1、壞掉的伺服器什麼時候修好,什麼時候開機,我們不可控,也不知道,也沒有關注
2、這種案例其實是很簡單、很典型的可能造成影響或故障的case,我們提前沒有對這個現象有警覺,雖然知道這是個很容易出現的問題,但是在我們的case中,完全沒有這方面的意識。因此導致該事件發生
3、對於網路流量這塊,缺乏有效監控

解決方法:
1、所有伺服器,取消開機自動啟動mysql,伺服器開機後,人為啟動例項,停slave。(這樣,如果伺服器很多,可能過於麻煩,暫且先這樣記錄下來,總比造成影響強)
2、意識到該問題,將該問題納入避免問題的常識庫工作手冊中去。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26355921/viewspace-1980663/,如需轉載,請註明出處,否則將追究法律責任。

相關文章