top
Loading...
A.4.3.MySQL處理磁盤滿的方式
A.4.3. MySQL處理磁盤滿的方式

在本節中,介紹了MySQL響應磁盤滿錯誤的方式(如“設備上無剩余空間”),以及響應超配額錯誤的方式(如“寫入失敗”或“達到了用戶屏蔽限制”)。

本節介紹的內容與寫入MyISAM表有關。它也適用于寫入二進制日志文件和二進制索引文件,但對row”和“record”的應用應被視為“event”。

出現磁盤滿狀況時,MySQL將:

每分鐘檢查一次,查看是否有足夠空間寫入當前行。如果有足夠空間,將繼續,就像什么也未發生一樣。

10分鐘將1個條目寫入日志文件,提醒磁盤滿狀況。

為了減輕問題,可采取下述措施:

要想繼續,僅需有足夠的磁盤空間以插入所有記錄。

要想放棄線程,必須使用mysqladmin kill。下次檢查磁盤時將放棄線程(1分鐘)。

其他線程可能會正在等待導致磁盤滿狀況的表。如果有數個“已鎖定”的線程,殺死正在磁盤滿狀況下等待的某一線程,以便允許其他線程繼續。

對前述行為的例外是,當你使用REPAIR TABLEOPTIMIZE TABLE時,或當索引是在LOAD DATA INFILEALTER TABLE語句后、在批操作中創建的。所有這些語句能創建大的臨時文件,如果保留這些文件,會導致系統其他部分出現大問題。如果在MySQL執行這類操作的同時磁盤已滿,它將刪除大的臨時文件,并將表標注為崩潰。但對于ALTER TABLE例外,舊表保持不變。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/problems.html
北斗有巢氏 有巢氏北斗