磁碟空間滿了之後MySQL會怎樣
導讀
當磁碟空間爆滿後,MySQL會發生什麼事呢?又應該怎麼應對?
會發生什麼事
當磁碟空間寫滿了之後,MySQL是無法再寫入任何資料的,包括對錶資料的寫入,以及binlog、binlog-index等檔案。
當然了,因為InnoDB是可以把髒資料先放在記憶體裡,所以不會立刻表現出來無法寫入,除非開啟了binlog,寫入請求才會被阻塞。
當MySQL檢測到磁碟空間滿了,它會:
應該怎麼辦
那麼,當發現磁碟空間滿了之後,我們應該怎麼處理呢,建議:
-
每分鐘:檢查空間是否得到釋放,以便寫入新資料。當發現有剩餘空間了,就會繼續寫入資料,一切照舊。
-
每十分鐘:如果還是發現沒剩餘空間,則會在日誌中寫入一條記錄,報告磁碟空間滿(這時候只寫入幾個位元組還是夠的)。
-
提高監控系統檢測頻率,預防再次發生;
-
及時刪除不用的檔案,釋放空間;
-
若有執行緒因磁碟滿的問題被阻塞了,可先殺掉,等到下一分鐘重新檢測時它可能又可以正常工作了;
-
可能因磁碟滿導致某些執行緒被阻塞,引發其他執行緒也被阻塞,可把導致阻塞的執行緒殺掉,其他被阻塞的執行緒也就能繼續工作了。
例外
有個例外的情況是:
當執行 REPAIR TABLE 或者 OPTIMIZE TABLE 操作時,或者執行完 LOAD DATA INFILE 或 ALTER TABLE 之後批量更新索引時,這些操作會建立臨時檔案,當執行這些操作過程中mysqld發現磁碟空間滿了,就會把這個涉及到的表標記為crashed,刪掉臨時檔案(除了 ALTER TABLE 操作,MySQL會放棄正在執行的操作,刪除臨時檔案,釋放磁碟空間)。
備註:當執行這些命令過程中mysqld程式被意外被殺掉的話,其所生成臨時檔案不會自動刪除,需要手工刪掉才能釋放磁碟空間。
相關文章
- FAQ系列|磁碟空間滿了之後MySQL會怎樣MySql
- 伺服器磁碟空間滿了伺服器
- Linux空間不足怎麼辦?Linux磁碟滿了怎麼清理?Linux
- 虛擬磁碟空間滿後的擴充套件方法套件
- MySQL ibdata1撐爆佔滿磁碟空間MySql
- Linux磁碟空間爆滿,MySQL無法啟動LinuxMySql
- Linux空間不足怎麼辦?磁碟滿了如何清理?Linux
- undo表空間佔用磁碟空間滿案例處理
- 解決docker容器存放目錄磁碟空間滿了問題Docker
- Linux磁碟如何管理?滿了以後怎麼清理?Linux
- dataguard standby備庫磁碟空間滿(ZT)
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- 記一次Oracle故障:磁碟空間滿Oracle
- MySQL伺服器異常關閉,重啟後,無法啟動----因為磁碟空間滿MySql伺服器
- 如何檢查Mac磁碟空間,mac磁碟空間其他怎麼清理Mac
- delete之後,快速清理表佔據的磁碟空間!delete
- Linux磁碟空間佔滿問題快速排雷Linux
- Mysql InnoDB刪除資料後釋放磁碟空間的方法MySql
- mac硬碟空間怎麼清理?這樣也能清理出上10G的磁碟空間Mac硬碟
- MySQL 5.7的表刪除資料後的磁碟空間釋放MySql
- undo 表空間滿了的處理方法
- windows10磁碟空間不足怎麼清理_win10磁碟空間清理的方法WindowsWin10
- PbootCMS快取runtime能刪除嗎?空間滿了怎麼辦?boot快取
- onethink上傳到空間之後,runtime資料夾將空間佔滿如何解決
- MySQL 可以壓縮或回收磁碟空間嗎MySql
- linux檢視mysql佔用磁碟空間LinuxMySql
- 使用Vagrant 後發現虛擬機器磁碟空間爆滿的血淚填坑記虛擬機
- oracle sysaux表空間滿了處理辦法OracleUX
- Win10磁碟空間不足怎麼清理 電腦怎麼清理個人磁碟Win10
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- flash recovery area 空間滿了的處理辦法
- 如果INDEX表空間滿了,資料是否可以插入Index
- Shell磁碟空間和表空間告警程式
- mysql之 表空間傳輸MySql
- MySQL索引之空間索引(SPATIAL)MySql索引
- 做過頭了會怎樣?
- oracle的還原表空間UNDO寫滿磁碟空間,解決該問題的具體步驟Oracle
- win10 如何修改磁碟空間 win10修改磁碟空間方法Win10