国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

mysql的innodb擴容、ibdata1 瘦身

2018-10-12 17:30:41 6204

mysql的innodb擴容

為了添加一個(gè)數據文件到表空間中,首先要關(guān)閉 MySQL 數據庫,編輯 my.cnf 文件,確認innodb ibdata文件的實(shí)際情況和my.cnf的配置是否一致,這里有兩種情況:

my.cnf的配置


 

  1. innodb_data_file_path=ibdata1:10G;ibdata2:10G:autoextend  

如果當前數據庫正在使用ibdata1,或者使用ibdata2,但ibdata2沒(méi)有超過(guò)10G,則對my.cnf配置直接改成:

 

 

  1. innodb_data_file_path=ibdata1:10G;ibdata2:10G;ibdata3:10G:autoextend  

 

如果設置了最后一個(gè)ibdata自動(dòng)擴展時(shí),有可能最后一個(gè)ibdata的占用空間大于my.cnf的配置空間。例如:

 

 

  1. mysql@test:/data1/mysqldata/innodb/data> ls -lh  

  2. -rw-rw---- 1 mysql mysql 10737418240 2010-01-26 16:34 ibdata1  

  3. -rw-rw---- 1 mysql mysql 16106127360 2010-01-26 16:34 ibdata2  

這時(shí),需要精確的計算ibdata2的大小 15360M,修改:

 

 

 

  1. innodb_data_file_path=ibdata1:10G;ibdata2:15360M;ibdata3:10G:autoextend  

 

重啟mysql。

注意:

1、擴容前注意磁盤(pán)空間是否足夠。
2、restart后關(guān)注是否生成了新的ibdata。

更多說(shuō)明:

如果,最后一個(gè)文件以關(guān)鍵字 autoextend 來(lái)描述,那么編輯 my.cnf 的過(guò)程中,必須檢查最后一個(gè)文件的尺寸,并使它向下接近于 1024 * 1024 bytes (= 1 MB) 的倍數(比方說(shuō)現在autoextend 的/ibdata/ibdata1為18.5M,而在舊的my.ini中為10M,則需要修改為innodb_data_file_path = /ibdata/ibdata1:19M; 且必須是19M,如果指定20M,就會(huì )報錯。),并在 innodb_data_file_path 中明確指定它的尺寸。然后你可以添加另一個(gè)數據文件。記住只有 innodb_data_file_path 中的最后一個(gè)文件可以被指定為 auto-extending。

一個(gè)例子:假設起先僅僅只有一個(gè) auto-extending 數據文件 ibdata1 ,這個(gè)文件接近于 988 MB。下面是添加了另一個(gè) auto-extending 數據文件后的可能示例 。

 


 

  1. innodb_data_home_dir =  

  2. innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend  

 

ibdata1 瘦身

 

通常不能移除 InnoDB 的數據文件。為了減小數據文件的大小,你必須使用 mysqldump 來(lái)轉儲(dump)所有的數據表,再重新建立一個(gè)新的數據庫,并將數據導入新的數據庫中。具體步驟如下:

1、備份數據庫

 

  1. mysqldump -uroot -p123456 --default-character-set=utf8 --opt --extended-insert=true --triggers -R --hex-blob --single-transaction --no-autocommit  test > db_name.sql  


 

2、停止數據庫

 

 

  1. service mysqld stop  


 

3、刪除相關(guān)文件

 

  1. ibdata1  

  2. ib_logfile*  

  3. mysql-bin.index  

4、手動(dòng)刪除除Mysql之外所有數據庫文件夾,然后啟動(dòng)數據庫

 

  1. service mysqld start  

5、還原數據

 

  1. /usr/local/mysql/bin/mysql -uroot -phigkoo < /data/bkup/mysqldump.sql  

主要是使用Mysqldump時(shí)的一些參數,建議在使用前看一個(gè)說(shuō)明再操作。另外備份前可以先查看一下當前數據庫里哪些表占用空間大,把一些不必要的給truncate table掉。這樣省些空間和時(shí)間

 

改變 InnoDB 的日志文件數目

 

如果希望改變 InnoDB 的日志文件數目,必須先關(guān)閉 MySQL 并確定完全關(guān)閉而沒(méi)有發(fā)生任何錯誤。將舊的日志文件復制到其它安全的地方,以防在關(guān)閉服務(wù)時(shí)發(fā)生了錯誤而需要恢復數據庫。刪除所有日志文件,編輯 my.cnf,再重新啟動(dòng) MySQL。InnoDB 在啟動(dòng)時(shí)將會(huì )提示它在建立新的日志文件。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->