【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.5.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】接口程序保存数据到数据库,执行保存sql成功,但是数据库表中数据不存在,查询不到,这个问题有什么排查思路吗?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
insert 没有异常,如果没数据,就只有可能事务没提交,所以数据最后没持久化
建议跟踪下事务执行的情况
除了未提交,也排查下是否有回滚或者有其他软件在修改数据
这种描述,大概率还是插入报错了,但是异常在某处被吃了,还是排查下保存数据的代码吧。或者把代码发出来,看下到底是怎么插入的
1 个赞
1.检查应用是否有异常信息,或是回滚信息(重点)
2.你手动测试下,多个事务,一个插入,一个查询,如果能插入后。能查询到数据,那么就不是数据库的问题。
后端的log先看下,再看下数据库的log
好的,多谢
目前通过程序日志来看确实sql执行没有报错,如果捕获异常的话会有日志的,事务也是可以正常提交没有错误信息,所以很奇怪
代码发出来看下,大概率是insert没执行或者没commit
1 个赞
100%代码有问题,一个数据库如果这种基础能力都有bug就离了大谱了。
以往类似问题,常见的原因是代码是运行在RC事务隔离级别下的逻辑,但是tidb的默认事务隔离级别是RR。
你的代码不清楚是不是这个原因,可以从这个方向查一下。
剩下的都是代码调试的问题了,多打印,多执行。别浪费时间怀疑数据库的基础能力了。
可以打开了应用trc