您好,登錄后才能下訂單哦!
在MySQL數(shù)據(jù)庫中,如果不指定innodb_file_per_table=1參數(shù)單獨保存每個表的數(shù)據(jù),MySQL的數(shù)據(jù)都會存放在ibdata1文件里,時間久了這個文件就會變的非常大。
下面是參考網(wǎng)上的一些資料,把數(shù)據(jù)分別保存在各數(shù)據(jù)庫子目錄里的方法,這樣新產(chǎn)生的ibdata1文件就不會太大了。下面是在Ubuntu 14.04.12 x64,MySQL5.5上對ibdata1進行瘦身,操作過程的整理。
1、備份數(shù)據(jù)庫中的數(shù)據(jù)。
mysqldump -u root -p --extended-insert --all-databases --add-drop-database --disable-keys --flush-privileges --quick --routines --triggers > /home/all-database.sql
//有的文檔用的是這樣的參數(shù):mysqldump -q -uroot -p --add-drop-table --all-databases --events >/home/all-database.sql
如果ibdata1上百GB,備份過程可能需要幾小時。
2、停止MySQL服務。
service mysql stop
3、刪除ibdata1、ib_logfile*等文件
mv ibdata1 ibdata1.20160419
mv ib_logfile0 ib_logfile0.20160420
mv ib_logfile1 ib_logfile1.20160420
4、修改my.cnf配置文件
vi /etc/mysql/my.cnf
在[mysqld]子項下增加如下配置:
innodb_file_per_table = 1
5、刪除MySQL、performance_schema之外的所有數(shù)據(jù)庫
cd /var/lib/mysql
rm -rf zabbix
服務器上只有Zabbix數(shù)據(jù)庫。
6、重啟MySQL服務
service mysql start
ps -ef|grep mysql
7、恢復數(shù)據(jù)(重新導入數(shù)據(jù))
mysql -u root -p
Enter password:
>source /home/all-databaes.sql
>exit
//有的文檔用這樣的命令格式:mysql -uroot -p < /home/all-database.sql
Enter password:
其中的/home/all-database.sql即為第一步備份生成的文件,如果原來數(shù)據(jù)庫中數(shù)據(jù)較多,還原過程可能會持續(xù)較長時間,請耐心等待還原完成。如果超過30個小時還沒完成,可能要考慮中止恢復數(shù)據(jù)操作,先清除一部分table中的數(shù)據(jù),從步驟1重新開始。如果table中記錄特多又可以全部刪除,用truncate <tablename>速度比較快。
經(jīng)過以上幾步后,可以看到新的ibdata1文件就只有幾十兆了,數(shù)據(jù)及索引都變成了針對單個表的小
ibd文件了,它們在相應數(shù)據(jù)庫的文件夾下面。
百度文庫中有篇文檔“解決ibdata1文件過大問題操作手冊”寫的更詳細。鏈接為:http://wenku.baidu.com/link?url=2qj73zDqwLwNIAPg6tB60c20wAE6a_2IIcJ8fGb2EUk0rmRdxqq2Wc0yAgnx7hoJ-dICC4rzhC9I0rWdgLVV-avatmeuCh74JxRE22NE4N_
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。