在windows操作系统的笔记本电脑等不同硬件中多次使用mysql服务器之后,在非常罕见的情况下,数据会回滚到以前的事务。该算法在上千个不同客户端的事务中运行良好,但在0.01%的情况下关闭应用程序并释放内存时,最后4或10个事务的数据被回滚。该应用程序是桌面应用程序,使用.net和mysql库以及mariadb 10.2免费版在localhost站开发。如果提交失败,将重试。有没有可能某些事务在出错后部分保存数据,而事务没有很好地关闭??失败提交的原因是什么?或者硬盘故障,或者windows问题??。如果报表数据显示如此提交工作,但在那些情况下关闭应用程序数据回滚???为什么?任何帮助都将不胜感激。
1条答案
按热度按时间m2xkgtsf1#
看似随机的原因有很多
ROLLBACKs
.在事务中的每个语句之后以及
COMMIT
. (提交错误可能只发生在基于galera的集群和组复制中。但无论如何都要测试。)发生错误时,请尝试捕获
SHOW ENGINE INNODB STATUS;
. 打开innodb_print_all_deadlocks
,然后查看日志。同时,你能描述一下这笔交易吗?更好的是,向我们展示所涉及的sql。