看到此報(bào)錯(cuò)心里有數(shù),mysql出現(xiàn)"the table is full"的問(wèn)題,一般有兩個(gè)常見原因:
一個(gè)是使用MEMORY 存儲(chǔ)引擎時(shí)臨時(shí)表大小設(shè)置太小導(dǎo)致,一般調(diào)整MySQL的配置文件兩個(gè)參數(shù)重啟即可:
tmp_table_size
max_heap_table_size
但是看報(bào)錯(cuò)日志中顯然很多業(yè)務(wù)表都不是memory存儲(chǔ)引擎而是innodb存儲(chǔ)引擎的,故排除此原因。
另一種原因便是硬盤空間滿了,清理硬盤即可。但是檢查數(shù)據(jù)目錄空間發(fā)現(xiàn)還有大量磁盤空間可用:
可以看出除了 ①磁盤空間滿;②超過(guò)文件系統(tǒng)限制;③超過(guò)innodb單表表空間限制之外,其余全是關(guān)于MyISAM存儲(chǔ)引擎和memory存儲(chǔ)引擎引起的原因。顯然這些都不符合我們現(xiàn)場(chǎng)的情況。
文檔提示當(dāng)磁盤空間還有較大盈余的時(shí)候,可能是ibdata1系統(tǒng)表空間文件無(wú)法繼續(xù)擴(kuò)展導(dǎo)致,此時(shí)無(wú)論是因?yàn)樵O(shè)置原因還是文件系統(tǒng)限制原因都會(huì)在SQL層拋出the table XXX is full的異常,遂馬上檢查ibdata1文件:
發(fā)現(xiàn)系統(tǒng)表空間文件ibdata2 已經(jīng)5G ,達(dá)到最大限制了,迅速另行添加一個(gè)新的共享表空間文件,使數(shù)據(jù)庫(kù)恢復(fù)正常。
Ibdata1系統(tǒng)表空間在設(shè)置了innodb_file_per_table(建議設(shè)置)的情況下會(huì)儲(chǔ)存innodb表的元數(shù)據(jù)、change buffer、doublewrite buffer和undo log,如果多帶帶設(shè)置undo表空間的話,存儲(chǔ)內(nèi)容會(huì)更少,出現(xiàn)問(wèn)題的頻率也很低,所以平時(shí)運(yùn)維極易忽略ibdata1,在巡檢時(shí)也應(yīng)添加上對(duì)該表空間的檢查,自動(dòng)擴(kuò)展的值也應(yīng)依據(jù)業(yè)務(wù)進(jìn)行合理設(shè)置。
參考文檔:
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129893.html
摘要:常見錯(cuò)誤分析與解決方法總結(jié)一翻譯不能連接到上的分析這說(shuō)明計(jì)算機(jī)是存在的,但在這臺(tái)機(jī)器上卻沒(méi)提供服務(wù)。解決同樣對(duì)癥下藥,不同的原因不同的處理方法。九翻譯有一個(gè)語(yǔ)法錯(cuò)誤在你的中分析論壇標(biāo)準(zhǔn)的程序是沒(méi)有語(yǔ)法錯(cuò)誤的。表名,可以暫時(shí)解決問(wèn)題。MySQL常見錯(cuò)誤分析與解決方法總結(jié) 一、Cant connect to MySQL server on localhost (10061)翻譯:不能連接到 ...
閱讀 1459·2023-01-11 13:20
閱讀 1814·2023-01-11 13:20
閱讀 1263·2023-01-11 13:20
閱讀 2006·2023-01-11 13:20
閱讀 4226·2023-01-11 13:20
閱讀 2879·2023-01-11 13:20
閱讀 1488·2023-01-11 13:20
閱讀 3807·2023-01-11 13:20