InnoDB: which is outside the tablespace bounds之处理过程

记录一下,32bit mysql下,table size太大引起db crash的处理过程
user来电告知无法访问系统了,于是查看log,从log来看space是4359,对应的table是tpbdb_pbd1/tpb_respon
在这里插入图片描述
启动数据库,尝试访问tpbdb_pbd1.tpb_respon(query其他table均正常),直接lost connection在这里插入图片描述
mysql直接crash
在这里插入图片描述
查看log让然如下:
在这里插入图片描述
从log来看space 仍然是4359,table是tpbdb_pbd1/tpb_respon(使用如下sql也验证了table name)
在这里插入图片描述
跟user讨论后,决定drop这个db,然后重新汇入,细节就不写了,这里只贴汇入的语法
mysql -u root -ppcices-123 --one-database tpbdb_pbd1 < D:\backup\xampp\2022-06-29.sql

汇入后,第一次可以查询tpb_respon这个table(很奇怪,不知是为何?),再次访问这个table,db就直接crash,log报同样得错误
在这里插入图片描述
从which is outside the tablespace bounds这条log看,猜想应该是table太大,查看table有4.5G
在这里插入图片描述
再与user商量,重新import db,利用第一次可访问得机会,直接delete不需要得数据,结果user直接删除了今年以外的资料,table size直接降到约1.3G(user真是给力)
在这里插入图片描述
再query验证数,据出来的一刻,心情真是激动
在这里插入图片描述
事后google得知,32bit的系统单个table最大size只能到2 ^32 ,正好4GB,再大就超出边界了
在这里插入图片描述
这里仍有两个疑问,希望有缘的朋友帮忙解惑
1.至于db导入后,为何第一次可以访问,再次访问db就crash,我的理解既然是size过大的问题,第一次就会crash,难道第一次mysql并不知道table outside the tablespace bounds.,经过一次访问后才得知?
2.为何query单个table会引起整个db crash,mysql这设计不科学呀

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值