我有一个MySQL Master
(v. 5.1.56-ndb-7.1.18-cluster-gpl-log
) - 2个奴隶(两个v. 5.1.51-community
)系统设置并且已经运行了好几年。它原本打算成为一个集群,这就是主人拥有ndb
版本的原因。
上周末,在内核抱怨RAM芯片错误(/ var / log / messages中出现"Dazed and confused but trying to continue"
错误)后,Master锁定了。我没有亲自处理恢复,但是那个向我转发复制已停止服务器重启的人,然后使用适当的relay-log值重新启动复制。我假设他在复制重启时也使用了skip-errors。我对跳过错误的理解是它就像一个忽略错误命令,但它并没有暂停约束。
即使它没有正确完成,最终发生的事情也不应该发生。一个奴隶很好,另一个奴隶在表格中有大约20-30个重复Primary Key
个条目。该表格为InnoDB
。我并没有说我们因重复密钥冲突而出现"1062"
错误,我们有重复记录。发现这是因为报告已关闭,当记录更新以调整值时,"UPDATE"
在一条记录上生效,而"SELECT"
读取另一条记录。我仔细检查过,奴隶结构上也存在PRIMARY KEY
。有没有人见过这个?
我们的计划"修复"是在主服务器上运行删除命令,它不会删除主服务器或一个服务器上的任何内容,但由于在第二个服务器上,只有一个记录被更新,我们可以使用另一个列唯一地识别它。这是有道理的,因为重复记录不应该首先存在,这使我担心做任何事情来触摸其中一行。
有什么建议吗?或者为什么会发生这种情况?