溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.7回收undo log物理文件空間是怎樣的

發(fā)布時間:2021-11-16 09:18:47 來源:億速云 閱讀:157 作者:柒染 欄目:MySQL數據庫

這期內容當中小編將會給大家?guī)碛嘘PMySQL5.7回收undo log物理文件空間是怎樣的,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  MySQL的undo log保存在共享表空間ibdata1文件里,隨著業(yè)務運轉,ibdata1會越來越大。在MySQL5.7之前的版本,需要停機利用mysqldump將數據導出,然后重建數據庫,再導入數據的方法解決該問題,MySQL5.7提供在線回收的機制。
  MySQL5.6版本中,可以把undo log回滾段分離到單獨的一個表空間,但是依然沒有實現回收的機制,用到三個參數
innodb_undo_directory (指定存放的目錄,默認是數據目錄)
innodb_undo_logs=128 (指定回滾段128KB)
innodb_undo_tablespaces=4 (指定有多少個undo log文件)

 以下是MySQL5.6版本參數默認設置:

點擊(此處)折疊或打開

  1. mysql> show variables like 'innodb_undo_%';

  2. +-------------------------+-------+

  3. | Variable_name | Value |

  4. +-------------------------+-------+

  5. | innodb_undo_directory | . |

  6. | innodb_undo_logs | 128 |

  7. | innodb_undo_tablespaces | 0 |

  8. +-------------------------+-------+

  以下是MySQL5.7版本參數默認設置

點擊(此處)折疊或打開

  1. mysql> show variables like 'innodb_undo_%';

  2. +--------------------------+-------+

  3. | Variable_name | Value |

  4. +--------------------------+-------+

  5. | innodb_undo_directory | ./ |

  6. | innodb_undo_log_truncate | OFF |

  7. | innodb_undo_logs | 128 |

  8. | innodb_undo_tablespaces | 0 |

  9. +--------------------------+-------+

注意:把undo log從共享表空間里分離出去,要在MySQL安裝時候進行設置,把參數配置到my.cnf里邊,MySQL啟動之后再分離會報錯。

  MySQL5.7 undo log回收機制涉及到的參數如下:
innodb_undo_log_truncate 參數設置為1,即開始在線回收undo log日志文件,默認是OFF。
innodb_undo_tablespaces參數必須大于或者等于2,回收一個日志文件時候,要保證另一個undo log正??捎谩?br/>innodb_undo_logs undo回滾段的數量,至少大于等于35,默認是128.
innodb_max_undo_log_size 超過這個閾值之后進行處罰truncate回收動作,默認是1GB,truncate回收之后變成10MB。
innodb_purge_resg_truncate_grequency 控制回收undo log的頻率,想要增加釋放回滾段的頻率,就得降低innodb_purge_resg_truncate_grequency設定值。

 

上述就是小編為大家分享的MySQL5.7回收undo log物理文件空間是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI