【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.1
【复现路径】做过哪些操作出现的问题
新创建两个表,过两天使用的时候发现有时可用,有时提示表不存在
【遇到的问题:问题现象及影响】
确定并没有删除操作。
将tidb节点滚动重启一遍之后,就没在出现了。很奇怪
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.1
【复现路径】做过哪些操作出现的问题
新创建两个表,过两天使用的时候发现有时可用,有时提示表不存在
【遇到的问题:问题现象及影响】
确定并没有删除操作。
将tidb节点滚动重启一遍之后,就没在出现了。很奇怪
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
是不是有2个集群啊,或者升级过
不,就是同一个集群。重启三个tidb节点之后就好了
是从4.0.14升级过。但是已经好久了
现在是一直存在了?原来admin show ddl jobs中这两个create语句的状态确定是synced状态吗?如果只是done状态的话,就是只有一个tidb节点操作完成,未同步到其他tidb节点,可能会出现你说的情况,有时连到的是执行ddl操作的tidb节点,就会有这个表,连接到未同步节点的话,就看不到这个表。
上面第三个图,两张表的create都是synced。正式使用这两张表是在30号
而且表里面是有写入过数据的
用的是同一个用户访问吗?
能复现吗?
root用户,不同机器,代码里都有复现。我滚动重启了tidb之后就没有了,复现不了了
上次有同学出现这个情况,还是因为上游同步或定时作业同步定时删除。
这个库并没有上游数据库
把报错信息发上来看下
一种是手动mysql client链接,结果就是图1图2
另一种就是代码报错
Error 1146 (42S02): Table 'payment.payment' doesn't exist
图1和图2执行的时候,tidb server重启了吗?
图3是在tidb server重启前还是重启后执行的?
mysql client和数据库之间有没有用haproxy?
三张图都是在tidb server重启之前的。
有proxysql, 但是我绕过proxysql直连tidb也是会出现的。
这类报错信息第一次以及最后一次的时间点是什么时候?发日志
只有一条日志,是第一条也是最后一条,其余都是mysql client 复现的。
{"level":"error","ts":"2023-08-30T15:55:50.141+0800","gid":"74796","caller":"log.go:55","service.id":"payment","service.name":"payment","service.version":"v2.0.1","trace_id":"fd6e3a4d4","span_id":"371d2e957","duration":0.00585836,"rows":0,"SQL":"SELECT `state` FROM `payment` WHERE account_id = 96134974 AND id = 13264266204568 ORDER BY `payment`.`id` LIMIT 1","err":"Error 1146 (42S02): Table 'payment.payment' doesn't exist",
这个表的建表语句能发下吗?业务相关部分可以打码