Creating index ‘PRIMARY‘ required more than ‘innodb_online_alter_log_max_size‘ bytes of

浅浅的花香味﹌ 2023-01-01 04:52 179阅读 0赞

在释放一个数亿记录的表时报该错Creating index ‘PRIMARY’ required more than ‘innodb_online_alter_log_max_size’ bytes of modification

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hZWlhfOTk4Nw_size_16_color_FFFFFF_t_70

重新调整:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hZWlhfOTk4Nw_size_16_color_FFFFFF_t_70 1

global innodb_online_alter_log_max_size=1073741824;

128是默认值,将其调大即可。

说明:innodb_online_alter_log_max_size是MySQL 5.6.6新加入的一个动态全局参数,用以指定对InnoDB表进行在线DDL操作时,所使用的临时日志文件的最大大小(以字节为单位,默认128M),在创建索引或者使用ALTER语句修改表时会使用该临时文件。该文件记录了DDL操作期间插入、更新、删除的数据。在必要的时候该日志文件的大小会根据innodb_sort_buffer_size的值增加容量,直至达到innodb_online_alter_log_max_size值指定的最大值。若临时表的大小超出此上限,则使用ALTER语句修改表的操作会失败,即当前所有未提交的DML操作都会回滚。因此,设置一个较大的值可以允许在线DDL操作期间有更多的DML操作被执行,但是过大的值会导致DDL操作后锁定表的时间更长(锁定表,应用日志记录到表上)。即在任务执行过程中有过多的新增数据进来,导致临时文件存放不下。

发表评论

表情:
评论列表 (有 0 条评论,179人围观)

还没有评论,来说两句吧...

相关阅读