Disk is full writing... 提醒管理員。rm /backup/old_*.sql /var/log/mysql/old_*.logtmpdir 目錄殘留 #sql* 臨時表檔案。SHOW PROCESSLIST;
KILL ; -- 針對 "Waiting for disk space" 或持有鎖的長事務
若多線程等待同表鎖,Kill 其中一個可讓其他線程繼續。
ALTER TABLE 採用線上 DDL (MySQL 5.6+),舊表保持不變,臨時檔刪除後原表仍可用。REPAIR TABLE 或從備份恢復被標記崩潰的表。| 層面 | 措施 |
|---|---|
| 作業系統 | 磁碟使用率 > 80% 告警;df -h 定時巡檢 |
| MySQL 配置 | innodb_max_dirty_pages_pct 控制刷頁積極度;expire_logs_days 自動清理 binlog |
| 架構設計 | 資料目錄、日誌目錄、tmpdir 掛載獨立分區/磁碟,互不干擾 |
| 應用層 | 大批次寫入分片、監控 Innodb_buffer_pool_pages_dirty 刷盤追不上時背壓 |
[mysqld]
tmpdir = /mnt/ssd/tmp # 掛載大容量、高IOPS 磁碟
# 或多目錄分散壓力
tmpdir = /tmp1:/tmp2:/tmp3
目錄必須預先建立、mysql 用戶可寫、空間充足。