今天收到阿里云磁盤告警通知,查看了一個100G的空間已達(dá)到80G的使用量,如果決定刪除2018年1月1日之前的數(shù)據(jù),可delete后,再去查看發(fā)現(xiàn)磁盤可用空間并沒有減少,還飛速的上漲,這可把我急壞了,不一會兒數(shù)據(jù)庫就鎖死了。
敢忙找度娘,原來delete后,磁盤不會減少,還得執(zhí)行一下 OPTIMIZE TABLE +表名
,以后找到救星了,可執(zhí)行此命信不成功,原來是空間不足,數(shù)據(jù)庫存補鎖不能執(zhí)行這條指令,一下沒了頭緒,如是決定先把服務(wù)器暫停,就在暫停時奇跡發(fā)生了,可用空間有5G多了,這下可以執(zhí)行OPTIMIZE TABLE
來優(yōu)化表了,可執(zhí)行3分鐘后,指令返回錯誤,一看空間又不足了,又表鎖住了。
最張決定,先導(dǎo)出一個表,轉(zhuǎn)存sql文件,足足導(dǎo)了40分鐘才導(dǎo)完,然后刪除了這個表,服務(wù)器一下可用空間多了50G,于是再執(zhí)行運行sql文件,將數(shù)據(jù)還原,足足執(zhí)行了150分鐘。執(zhí)行完后磁盤使了70G, 再執(zhí)行 OPTIMIZE TABLE +表名
,由于其中一張表太大了,執(zhí)行了接近40分鐘,此間磁盤使用率一度飆到100%,好在還是剛才度過。
delete 數(shù)據(jù)后mysql空間并不會減少,要執(zhí)行OPTIMIZE TABLE
才行,OPTIMIZE TABLE其間會產(chǎn)生大量臨時文件,如果原表體量很大,會占用大量的空間,所以執(zhí)行這條時,一定要在磁盤空間充足時。不然執(zhí)行其它會引起磁盤不足,鎖死數(shù)據(jù)庫,而導(dǎo)致,執(zhí)行失敗
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接