Ubuntu

如何進行 MySQL 維護,尤其是在磁碟已滿後

  • May 23, 2011

我在 ubuntu 伺服器虛擬機上執行了一個相當大的 mysql 數據庫(InnoDB)。最近由於我的錯誤,硬碟已滿(在物理機上),伺服器卡住了,使用者無法工作。我不得不從物理機上刪除一些文件,然後用 MySQL 數據庫硬重啟 ubuntu 伺服器。

  1. 發生這種崩潰後,我需要在 MySQL 上執行什麼特別的操作嗎?
  2. 我需要在 ubuntu 伺服器上執行什麼特別的操作嗎?(例如 chkdsk 或碎片整理)
  3. 是否有任何“最佳實踐”命令需要定期在 MySQL 數據庫上執行?
  1. 否,但請檢查日誌中的警告和錯誤。在某些情況下,您可能需要發出 REPAIR。
  2. 不,如果您需要檢查文件系統,它會提示您執行一項,或自動執行一項。Linux 等效項是 fsck(文件系統檢查)。這完全取決於您使用的文件系統。
  3. OPTIMIZE 表可以清理未使用的空間(即如果大量數據被更改或刪除)。根據您的架構和數據使用情況,它可能有用也可能沒用。同樣,在執行時要小心,MySQL 在執行期間會鎖定表。

儘管這些都是您要問的好問題,但真正的根本原因是文件系統已滿。這就是你需要解決的問題:

  1. 如果這台機器的主要功能是數據庫伺服器,那麼 MySQL 數據庫應該在它自己的分區上。如果它只是一個輔助功能,至少要確保 /var 在它自己的分區(或 MySQL 數據目錄所在的基本目錄)上處於關閉狀態。您應該無法通過將文件添加到 /home 或 / 來使 MySQL 崩潰
  2. 應該提醒您注意文件系統太接近已滿。Nagios 或 hyperic 可以為您執行此操作,並為您提供大量其他健全性檢查和警告,可以提醒您注意潛在的危險。

引用自:https://serverfault.com/questions/242637