背景:公司zabbx系统的数据库在设计之初采用的是主主复制,但是在运行一段时间后经常会出现以下报错
zabbix 数据库出现duplicate key error

故障情况:zabbix正常运行,监控、告警、展示等一切正常,控制台所有条目删除正常,但是新增操作都会报duplicate key的错

之前采用的方法就是:
1、直接进库找到重复的数据进行删除(**方法比较暴力,不推荐大家采用**)
2、后来在网上查相关解决方案有一个是在MySQL的配置文件里面增加配置跳过1062类型的告错(**这样那两个库之间的数据就不一致了,而且一直跳过报错也不是长久之计**)

后来就直接改了架构变成了主从复制,

昨晚经过一位大佬指点,然后查资料进一步了解了一下MySQL的引擎以及这个报错的解决方案(**基于自增ID的设置**)
MySQL默认引擎InnoDB我这里也没改

数据库引擎InnoDB和MyISAM对比参考这篇文章:
https://blog.csdn.net/qq_35642036/article/details/82820178

仅作为学习,在这里记录一下:
原理就是两边需要同步的表,一张表的id用奇数,一张表的id用偶数。把自增数都改为2,但是起始id一个奇数,一个偶数
先查看一下我的数据库目前自增ID的配置,目前我的配置是自增ID起始值是1,步长也是1

zabbix 数据库出现duplicate key error_第1张图片

修改一下配置,MySQL自增ID修改方法参考这篇文章:
https://m.jb51.net/article/42883.htm

观察运行一段时间,有异常再来追加更新