zoukankan      html  css  js  c++  java
  • 8. Truncate undo表空间

    8. Truncate undo表空间

    要Truncate Undo 表空间,必须为MySQL实例配置至少两个undo表空间(两个undo表空间可确保一个undo表空间保持活动状态,另一个处于脱机状态以进行truncate)。undo表空间的数量由innodb_undo_tablespaces控制。,默认值0,最大值95

    mysql> select @@innodb_undo_tablespaces;
    +---------------------------+
    | @@innodb_undo_tablespaces |
    +---------------------------+
    |                        95 |
    +---------------------------+
    1 row in set (0.00 sec)
    

    8.1 启用 Truncate undo表空间

    要truncate undo表空间,请启用 innodb_undo_log_truncate

    mysql> SET GLOBAL innodb_undo_log_truncate=ON;

    当innodb_undo_log_truncate启用时,一个undo表空间超过参数innodb_max_undo_log_size设置的大小时,将被标记为truncate。

    innodb_max_undo_log_size默认值为1024M,最大值2**64 -1,可以动态修改

    修改方法:

    mysql> SET GLOBAL innodb_max_undo_log_size=2147483648;
    1. undo 超出innodb_max_undo_log_size设置的表空间标记为truncate。选择用于truncate的undo 表空间是以循环方式执行的,以避免每次都truncate相同的undo 表空间。

    2. 驻留在所选undo tablespace中的回滚段将处于非活动状态,以便不会给他们分配新事务。允许完成当前使用回滚段的现有事务。

    3. 清除系统释放那些不需要的回滚段。

    4. 释放undo表空间中的所有回滚段后,将允许truncate操作,并将undo表空间truncate为其初始大小。undo表空间文件的初始大小取决于 innodb_page_size值。对于默认的16k InnoDB页面大小,初始undo表空间文件大小为10MiB。对于4k,8k,32k和64k页面大小,初始undo表空间文件大小分别为7MiB,8MiB,20MiB和40MiB。

    5. 重新激活回滚段,以便将它们分配给新事务。

    8.2 加快 truncate undo表空间文件

    在释放其回滚段之前,不能truncate表空间。通常,每调用一次purge系统就得purge128次才会释放回滚段。

    要增加purge线程释放回滚段的频率,请减少innodb_purge_rseg_truncate_frequency例如:

    mysql> select @@innodb_purge_rseg_truncate_frequency;
    +----------------------------------------+
    | @@innodb_purge_rseg_truncate_frequency |
    +----------------------------------------+
    |                                    128 |
    +----------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SET GLOBAL innodb_purge_rseg_truncate_frequency=32;

    8.3 在线truncate undo表空间对性能的影响

    当truncate undo表空间时,该表空间中的回滚段暂时停用。其他undo 表空间剩余的活动回滚段承担整个系统负载的责任,这可能会导致性能略有下降。性能下降程度取决于许多因素,包括:

    • undo 表空间数量
    • undo log数量
    • undo表空间大小
    • I/O速度
    • 现有的长事务
    • 系统负载
  • 相关阅读:
    Java基础-3y
    对线面试官面试系列-3y
    从零单排学Redis【青铜】
    mock官方文档
    route路由组件传递参数
    axios拦截器与vue代理设置
    Sass使用方法
    Less使用方法
    Vue-cli
    Vue-组件注册
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514658.html
Copyright © 2011-2022 走看看