您好,登錄后才能下訂單哦!
? ? ? ?今天上班后,忽然發現mysql從庫的磁盤空間忽然爆滿,經過一番查看后,發現ibtmp1占的空間很大,已經快300G了。經過查詢得知,?ibtmp1文件是 MySQL5.7的新特性,MySQL5.7使用了獨立的臨時表空間來存儲臨時表數據,但不能是壓縮表。臨時表空間在實例啟動的時候進行創建,shutdown的時候進行刪除。即為所有非壓縮的innodb臨時表提供一個獨立的表空間,默認的臨時表空間文件為ibtmp1,位于數據目錄。我們可通過innodb_temp_data_file_path參數指定臨時表空間的路徑和大小,默認12M。只有重啟實例才能回收臨時表空間文件ibtmp1的大小。create temporary table和using temporary table將共用這個臨時表空間。默認配置為ibtmp1:12M:autoextend,也就是說在支持大文件的系統這個文件大小是可以無限增長的。
? 解決方法:
1. 修改my.cnf配置文件:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
2.?重啟mysql服務。
注意:為了避免以后再出現類似的情況,一定要在限制臨時表空間的最大值,如innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
mysql什么時候會創建臨時表,參考https://dev.mysql.com/doc/refman/5.7/en/internal-temporary-tables.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。