MySQL innodb檔案成長過大解決辦法
分享一下針對Mysql Innodb DB資料成長快, 速如何安全壓縮ibdata1解決辦法!!
(ps. ibdata1主要是用來儲存MySQL Innodb Engine的schema和資料)
先前處理某政府單位 MySQL資料庫都有遇到ibdata1成長過快,
導致ibdata1資料量不大卻成長至34G以上的窘境(平均一天以0.5G成長….),
處理步驟:
Step1: cd /var/lib/mysql
Step2: 登陸MySQL
mysql –u root –p
Step3: 針對有使用innodb engine的資料庫進行備份(務必確認備分相關資料庫)
mysqldump -u root -p 你的資料庫名稱 > 你的資料庫名稱.sql;
Step4: 確認已將相關資料庫備份完成,關閉資料庫
Service mysqld stop
Step5: 修改my.cnf檔案
Vi /etc/my.cnf
加入此行
innodb_data_file_path=ibdata1:1G;ibdata2:1G:autoextend:max:8G
Step6: cd /var/lib/mysql
刪除該資料夾底下的 ibdata1, ib_logfile0, ib_logfile1
\rm –r ibdata1
\rm –r ib_logfile*
Step7: 啟動資料庫
Service mysql start
Step8: 資料庫資料還原
mysql –u root –p
use 你的資料庫名稱;
source /var/lib/mysql/你的資料庫名稱.sql;
完成以上步驟即可完成,
查看 cd /var/lib/mysql
可發現ibdata1, ibdata2並且檔案大小已有效壓縮!