table is full处理

背景描述:

研发人员反馈,当其进行delete操作数据的时候,报错“ERROR 1114 (HY000): The table 'xxxx' is ful”;

初步判断,表比较大,大表DELETE的操作时,未加上limit,要求研发人员加上LIMIT;但研发反馈加上LIMIT后依然报错;查看日志发现多个表都报了table full的错误;

问题分析:  

该报错通常是由于1, 磁盘满了;2, 临时表空间太小;3, 共享表空间满了;  经查1, 磁盘使用并没有占满; 2, 临时表空间设置是256M,并不小;3, 表空间设置是ibdata1:1G, ibdata2:1G, autoextend:max:3G; ibdata2已经增长到3G; 判断是共享表空间满导致;

问题处理: 扩展共享表空间

a, 登陆机器,flush logs; flush tables; 将日志和buffer刷新至磁盘

b, 备份ibdata1和ibdata2文件

c, 修改配置文件innodb_data_file_path ,修改ibdata2由1G变为3G,并增加ibdata3表空间文件3G。 重启实例使配置生效

处理结果:问题已解决

为避免后续类似问题的发生,修改DB初始化脚本的innodb_data_file_path配置,修改为: ibdata1:2G;ibdata2:2G:autoextend:max:4G

你可能感兴趣的:(MYSQL,mysql)