手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

mysql的innodb擴(kuò)容、ibdata1 瘦身

2018-10-12 17:30:41 12292

mysql的innodb擴(kuò)容

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

my.cnf的配置


 

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

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

 

 

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

 

如果設(shè)置了最后一個(gè)ibdata自動(dòng)擴(kuò)展時(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í),需要精確的計(jì)算ibdata2的大小 15360M,修改:

 

 

 

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

 

重啟mysql。

注意:

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

更多說(shuō)明:

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

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

 


 

  1. innodb_data_home_dir =  

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

 

ibdata1 瘦身

 

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

1、備份數(shù)據(jù)庫(kù)

 

  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、停止數(shù)據(jù)庫(kù)

 

 

  1. service mysqld stop  


 

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

 

  1. ibdata1  

  2. ib_logfile*  

  3. mysql-bin.index  

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

 

  1. service mysqld start  

5、還原數(shù)據(jù)

 

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

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

 

改變 InnoDB 的日志文件數(shù)目

 

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


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

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

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

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