Mysql表添加字段报innodb_online_alter_log_max_size不够解决方案
来源:互联网 发布:德国关税的算法 编辑:程序博客网 时间:2024/06/05 20:40
问题描述:
在生产执行以下语句时
mysql -uroot -proot -e "ALTER TABLE TEST.TEST ADD TESTINFO VARCHAR(512) NOT NULL DEFAULT ''"
报以下错误信息
RROR 1799 (HY000) at line 1: Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again
看日志信息发现是innodb_online_alter_log_max_size过小,于是就去mysql5.6官方文档去查看此参数的作用,原来在5.6版本之后,mysql可以实现在线做DDL操作,为实现此功能,引入innodb_online_alter_log_max_size参数,这个参数作用时,在做DDL操作期间,产生的insert,update,delete操作都会记录在一个临时日志文件中,而此临时文件存放在临时排序区(innodb_sort_buffer_size),innodb_sort_buffer_size参数上限由innodb_online_alter_log_max_size参数决定,当修改表数据量过大时,需要几个小时,那么临时日志就需要记录这几个小时的产生的日志,业务量大时,就会将此临时排序区撑爆,此时mysql就会回滚此ddl操作,类似的操作有创建索引,主键等
解决办法:
innodb_online_alter_log_max_size参数默认是128M,此参数可以在线修改并立刻生效,如果要永久生效,则需要在my.cnf添加配置
SET GLOBAL innodb_online_alter_log_max_size=A BIGER VALUE
下面是我的公众号二维码,欢迎添加
- Mysql表添加字段报innodb_online_alter_log_max_size不够解决方案
- innodb_online_alter_log_max_size导致的innodb添加字段时报错
- MySQL创建索引抛出“required more than 'innodb_online_alter_log_max_size' bytes of modification log”异常的解决方案
- oracle迁移到mysql时insert数据到mysql text字段发现报字段不够长的问题
- mysql 添加字段、删除字段
- mysql修改表为字段添加auto_increment
- 添加/删除MySQL数据库表中的字段
- mysql给表添加字段的命令
- mysql给表和字段添加注释
- mysql表and字段注释添加
- mysql 如何给大表添加字段
- mysql数据库 向表中添加字段
- mysql给表添加多个字段
- mysql 给表添加/修改/删除字段
- mysql表添加字段和注释
- mysql 添加字段
- mysql添加字段
- mysql 添加 删除字段
- Oracle开发中遇到的非空问题小结
- location对象
- 不忘初心
- HTML常用字体样式设置(加粗、下划线、斜体)
- list double 排序 与反排序
- Mysql表添加字段报innodb_online_alter_log_max_size不够解决方案
- ModelMap和ModelAndView的使用的区别和各自介绍
- BZOJ 4008 [HNOI2015] 亚瑟王
- GCC常用参数详解
- 省市区级联查询(插件版&无插件版)
- 简单的使用枚举
- H.264的Slice及Slice类型
- shell如何把命令输出结果存入变量
- 447. Number of Boomerangs