解決 MySQL 資料庫所在硬碟空間不足的狀況

MySQL 資料庫所在硬碟 C 槽空間吃緊,即將發生硬碟空間不足的問題。利用 symbolic link (符號連結) 將部分資料庫改成使用其他硬碟 (或硬碟分區),以解決問題。



解決方式:
  1. 確認 MySQL 已經啟用 InnoDB File-Per-Table Tablespaces
  2. 資料庫規劃 
    • (1) 需要時常使用的資料庫名稱 hot 放在原硬碟 C 槽,資料庫檔案放在 c:\MySQL5.6\data\hot
    • (2) 不常使用的資料庫名稱 archive 放在另一硬碟 D 槽,資料庫檔案放在 d:\database_archive\
  3. 建立各自資料庫 hot, archive
  4. 將 c:\MySQL5.6\data\archive\db.opt 複製到 d:\database_archive\db.opt 。該檔案放置資料庫的字元集與校對 (collation) 設定。
  5. 刪除資料庫 archive
  6. 以管理員身份開啟命令提示字元,建立 symbolic link:
    C:\Windows\system32>mklink /d c:\MySQL5.6\data\archive D:\database_archive
  7. 重新載入資料庫清單,可以發現剛剛刪除的資料庫 archive 復活
  8. 將不常用的資料表從資料庫 hot 移動到資料庫 archive ex:
    RENAME TABLE `hot`.`table_name` TO `archive`.`new_table_name`
移動檔案到另一硬碟 D 槽,就可以解除 C 槽硬碟空間不足的問題。


參考資料:
  1. MySQL :: Using Symbolic Links / Using Symbolic Links for Databases on Windows
  2. Mklink 微軟文件,該命令僅支援 Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8 作業系統
  3. 使用Symbolic Links以支持数据分区存储
  4. MySQL 超新手入門(7)字元集與資料庫 by Michael | CodeData
  5. MySQL :: RENAME TABLE Syntax

圖片素材:

留言