分享一下針對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並且檔案大小已有效壓縮!

 

 

 

相关文章