TIDB查询不到数据,报错key:XXX, maybe read truncated/dropped table data?

背景

        周六TIDB数据库物理机宕机,周日0点执行定时任务,第一次sql分页查询,就报错Error querying database.和maybe read truncated/dropped table data,马上查询资料,没有选数据库,或者mapper.xml有问题,或是尝试访问的某个键或记录在数据库中不存在或已被删除。。。

思考

       1、确实执行到那一行sql就切换埋点库了,是不是没有选择数据库?是不是有人覆盖了代码?赶紧查看提交记录和解压,没有发现代码覆盖问题,上次更新也是前几天,怎么今天才出问题。

        2、查看mapper.xml是否有代码没提交,导致报错,查看本地分支,没有异常。

        3、周六宕机导致数据库,会不会导致丢数据,通过查数平台可以查询到前300条数据,但是count全量数据,一样的报错出现了,大概定位是宕机导致丢数据了。

排查

        1、排除数据导入操作,因为该表只有实时埋点数据入库,和查询操作。

        2、联系TIDB的DBA,查询数据库日志发现有几个慢sql对埋点表执行查询,耗时一整天了,最终数据库被拖垮,物理机宕机。

解决方案

        1、由于数据库物理机宕机,只好提单重启了。

        2、对于数据无法查询,把key编号给到DBA,大概范围锁定,通过切换region leader解决。数据修复后可以查询所有数据,至此事情暂告一段落,正常运行每天定时任务查询数据,生成数据文件。

反思

        数据分析同事在处理数据文件的时候,需要对执行的sql进行评估和优化,慢sql需要优化,如果优化不了,可以水平或纵向切割来提取数据,生成excel,在excel进行数据拼接。(如时间跨度太大,切割几个时间段分别导出文件;如表连接,可分别导出所需字段,excel使用vlookup函数等拼接......)

是否会再次出现同样情况?

        咨询DBA,给的答复是大概率不会出现,目前产研老师还在分析日志跟进中。。。。。。有后续会更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值