在多次使用不同硬件中的MySQL服务器之后,在非常罕见的情况下,数据会回滚到以前的事务。该算法在数千个不同客户端的事务中运行良好,但在0.01%的情况下发生了一些情况,当关闭应用程序并释放内存时,最后4或10个事务的数据被回滚。该应用程序为桌面应用程序,在本地工作站上使用.net和MySQL库以及MariaDB10.2免费版进行开发。如果提交失败,则会重试。有没有可能某些事务在出错后保存了部分数据,事务没有很好地关闭??提交失败原因是什么?,可能是硬盘故障,或者是windows问题。??。如果报告显示了数据,则提交正在工作,但在这种情况下,关闭的应用程序数据正在回滚?为什么?任何帮助都将不胜感激。
发布于 2019-01-03 06:23:49
看似随机的ROLLBACKs有很多原因。
在事务中的每个语句之后以及COMMIT之后检查错误。(提交时的错误可能仅发生在基于Galera的集群和组复制中。但不管怎样,还是要测试。)
当发生错误时,尝试捕获SHOW ENGINE INNODB STATUS;。启用innodb_print_all_deadlocks,然后查看日志。
同时,你能描述一下这笔交易吗?更好的是,向我们展示所涉及的SQL。
https://stackoverflow.com/questions/54001203
复制相似问题