MySQL 复制:重复条目 - SQL_SLAVE_SKIP_COUNTER 或删除行?

Mys*_*min 6 mysql replication

我有一个系统将一个数据库复制到四个从服务器。时不时地,当流量很高时,一个或多个从服务器遇到重复插入错误并且从服务器停止运行。

发生这种情况时,我有两个选择 - 我可以SET GLOBAL SQL_SLAVE_SKIP_COUNTER或者我可以删除从属设备中的违规行。两者似乎都可以工作,我的逻辑说,如果发生了一些事情导致了这个问题,那么从站中的数据可能已损坏。鉴于这只能发生在 INSERT 上,通过删除该行,我保证一旦复制恢复,从属数据将与主数据相匹配。通过跳过,如果该行的数据在从站中损坏,它将保持损坏状态。

我错过了什么吗?

此外,鉴于这在两个特定表上每几个月发生一次,是否有任何理由我不应该自动执行在遇到此错误时触发的过程,删除从属中的该行并重新启动从属?

编辑:我相信 MySQL 5.5.29 和语句复制。

Ano*_*arZ 1

你不必使用任何触发器,如果​​你想安全地跳过重复的关键错误,请将其添加到奴隶上的 my.cnf

[mysqld]
slave-skip-errors=1062
Run Code Online (Sandbox Code Playgroud)

然后重启mysql

检查所有slave是否有不同的serverID