日常檢查服務器發現磁盤空間有些不足,大目錄主要集中在數據庫/var/lib/mysql 下。
一. 計劃先清理數據庫碎片
1. 查看MySql碎片佔用空間
SHOW TABLE STATUS LIKE '表名稱';
// DATA_FREE爲碎片空間
2. 清理碎片
optimize table 表名稱;
// 此操作會鎖表,如果數據量過大費時較長,謹慎使用。有必要時需提前備份數據
// 清理沒啥效果,查來查去就是數據太多了。需要添加磁盤,把原有數據移至新磁盤。
二. 開始遷移數據
1. 複製MySql數據至新目錄,先查看MySql數據目錄地址
show variables like '%dir%';
// datadir 爲目錄地址
2. 需要複製至新目錄
cp -R srcDir desDir
3. 新目錄設置權限
chown mysql:mysql -R desDir
4. 修改MySql配置
vi /etc/mysql/my.cnf
// datadir = 添加新目錄
5. 重啓數據庫
sudo /etc/init.d/mysql restart
注:如果重啓過程中出現新目錄無權限等問題,請參照CLICK URL內容。
三. 數據遷移完畢。