天天看點

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

作者: xuexiaogang ​
上周測試環境一台實體機主機闆壞了,CPU上的穩壓器有問題,然後一下子停機了。恰好我的一個單機簡易叢集tidb在上面。我們公司不用tidb,是以這個有且僅有這麼一台練習環境給到我,隻能安裝簡易版的。

   今天我登入時候發現指令行不能登入。檢查叢集狀态是這樣的。      
一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

兩個主要的元件沒起來,連不上正常。想到了估計是上周的問題導緻,第一感覺由于平時沒有讀寫。這種情況下理論上即使斷電也不影響影響。

其他元件啟動成功,但是tikv和tidb兩個元件沒啟動。我第一想法是整體關閉再重新開機一下。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

非常吃驚,ssh的密碼過期,無法啟動。如果不是因為這次斷電重新開機一直不會報這個錯。恰巧重新開機驗證賬戶。留給大家一個經驗,tidb所在的機器不要給賬戶設定過期密碼,否則就是給自己挖坑。

再請管理虛拟化的同僚幫忙恢複密碼。現在問題是這樣的,tikv和tidb依舊無法啟動。由于啟動順序是先tikv是以tikv不成功,tidb也無從談起。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

根據提示看日志。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

這個是作業系統的錯誤碼。經過檢視具體情況是這樣。OS層面的這個第一次遇見,其實沒有方向。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

經過查找資料發現這種多數都是由于斷電導緻。這裡就帶來我的第二個思考。虛拟機這種多了一層,出了問題增加排障難度。tidb雖然是多節點,但是我覺得tikv等這些主要的,還是實體機部署比較好。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

我嘗試進行修複,但是發現無法修複。即使我把全部叢集停止,都無法修複。可能有人遇到過類似的問題,但是我實際上無法參考那些文章處理。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考
一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

最後采用重建解決。好在tidb的全局管理做的非常好。重建隻需要兩個指令。

一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考
一次斷電故障引起TiDB無法啟動的問題帶來的幾點思考

總結一下:

繼續閱讀