磁碟空間滿了之後MySQL會怎樣

2021-07-25 09:18:14 字數 608 閱讀 7315

當磁碟空間爆滿後,mysql會發生什麼事呢?又應該怎麼應對?

會發生什麼事

當磁碟空間寫滿了之後,mysql是無法再寫入任何資料的,包括對錶資料的寫入,以及binlog、binlog-index等檔案。

當然了,因為innodb是可以把髒資料先放在記憶體裡,所以不會立刻表現出來無法寫入,除非開啟了binlog,寫入請求才會被阻塞。

當mysql檢測到磁碟空間滿了,它會:

應該怎麼辦

那麼,當發現磁碟空間滿了之後,我們應該怎麼處理呢,建議: 例外

有個例外的情況是:

當執行 repair table 或者 optimize table 操作時,或者執行完 load data infile 或 alter table 之後批量更新索引時,這些操作會建立臨時檔案,當執行這些操作過程中mysqld發現磁碟空間滿了,就會把這個涉及到的表標記為crashed,刪掉臨時檔案(除了 alter table 操作,mysql會放棄正在執行的操作,刪除臨時檔案,釋放磁碟空間)。

備註:當執行這些命令過程中mysqld程序被意外被殺掉的話,其所生成臨時檔案不會自動刪除,需要手工刪掉才能釋放磁碟空間。

linux磁碟空間滿了

df h 看到根目錄已經用滿了!find size 100m xargs ls lh列出系統內大於100m的檔案 du max depth 1 h 檢視當前目錄內資料夾的大小 看一下才想起是內網開發用的資料庫,裡面最大的是備份目錄 果不其然備份檔案問題 使用排序命令從最大的開始刪除效率更高 最後決定...

磁碟空間滿了情況處理

今天伺服器無法操作,檢視磁碟資訊,記憶體資訊,cpu資訊都是滿的,重啟後,都說磁碟滿了,無法寫device,用命令 df i檢視inodes資訊,發現inodes已用盡。df h磁碟空間沒有滿 使用命令可以檢視各個資料夾的大小排序 進入對應資料夾進行查詢,排序前12條,查詢大資料夾 du hm ma...

Linux磁碟空間滿了的排查與解決思路

block正常滿 磁碟實際不足 inode 滿 大量的小檔案 block 滿 檔案沒有被徹底刪除 硬鏈結數0 程序呼叫數不為0 解放方法 1 檢視df h 磁碟使用量根據佔用量大小逐步逐步排查 2 使用du sh 檢視大磁碟所有檔案大小使用 grep g 過濾大檔案資料 3 根據查詢到的檔案詢問刪除...