我们刚刚遇到了一个奇怪的故障,MySQL 成功插入数据,但插入的行实际上并未保存,并且插入的 ID 是大约 20 条记录之前插入的行(按照我们的速度大约需要 20 分钟)。
1) 我们的应用程序处理请求并插入一堆记录。此过程中没有抛出任何错误。这里进行了许多插入,其中 8 或 9 个通过 FK 连接。
在每个请求结束时,我们都会发送一封电子邮件报告,其中包含有关该请求的信息,例如插入的 ID。
2) 我收到了其中一份电子邮件报告,然后通过 ID 查找该报告以进行检查。该 ID 是 20 分钟前插入的一条完全不同的记录。我仔细检查了数据库,发现“真正的”新行似乎根本不存在,相关表也不存在。
3) 这种情况发生了大约 8 次,之后我决定冒险重启 MySQL。下一个请求以及此后的所有请求都已正常处理 - 显然问题已经自行解决。
所以我的问题是,这是什么原因造成的,我该如何检查可能存在故障的证据?我猜是某种硬件故障,但有什么方法可以确认吗?
MySQL 版本:5.1.62-0ubuntu0.10.04.1-log