您好,登錄后才能下訂單哦!
undo log回滾日志物理文件空間回收
MySQL5.6之前
undo log在ibdata1文件里,ibdata1文件會(huì)越來越大,想要回收,必須全庫導(dǎo)出,刪除data目錄,再重新初始化數(shù)據(jù)庫,最后把全庫導(dǎo)入,才可實(shí)現(xiàn)ibdata1回收。
MySQL5.6
可以把undo log回滾分離到一個(gè)單獨(dú)的表空間里,但不能回收空間大小。
MySQL5.7
支持在線回收
1、配置文件里指定如下參數(shù),如創(chuàng)建數(shù)據(jù)以后再指定會(huì)報(bào)錯(cuò)。
#存放目錄
innodb_undo_directory=/data2/
#回滾段128k
innodb_undo_logs=128
#指定多個(gè)undolog文件
innodb_undo_tablespaces=4
2、undo log從共享表空間里ibdata1拆分出去,在安裝MySQL時(shí),需要在my.cnf里指定,
數(shù)據(jù)庫啟動(dòng)再指定,會(huì)報(bào)錯(cuò)。
3、參數(shù)
innodb_undo_log_truncate參數(shù)設(shè)置為1,即開啟在線回收undo日志文件,支持動(dòng)態(tài)設(shè)置。
innodb_undo_tablespaces參數(shù)必須大于或等于2,即回收一個(gè)undolog日志時(shí),要保證另一個(gè)undo可以使用。
innodb_undo_logs undo回滾段的數(shù)量,至少大于等于35,默認(rèn)為128
innodb_max_undo_log_size(默認(rèn)1GB)當(dāng)超過閾值時(shí),會(huì)觸發(fā)truncate回收動(dòng)作,truncate后空間縮小到10MB
innodb_purge_rseg_truncate_frequency 控制回收undo log的頻率。undo log空間在它的回滾段沒有得到釋放之前不會(huì)收縮,想要增加釋放
回滾的頻率,需要降低innodb_purge_rseg_truncate_frequency的設(shè)定值。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。