首页 > 数据库技术 > 详细

解决Zabbix添加/克隆主机SQL报错问题

时间:2020-11-12 10:44:22      阅读:45      评论:0      收藏:0      [点我收藏+]
问题场景分析:
1、 通常是出现在删除某个监控主机,然后重新添加回来,数据库关联的外键没有删除干净;
2、 数据库架构问题,例如高可用的主主架构,如果某些事项不注意,例如每个系统时间不同步,会导致数据写入延迟或出错;
3、 zabbix在运行一段时间后,由于默认的自增长等外键大小限制问题。
解决方法:
1、 搭建NTP同步时间服务器,设置定时任务,每个多久执行一次时间同步,教程请参考以下链接:
https://blog.51cto.com/14483703/2437662
2、 当出现添加/克隆 [10.127.3.4XXXXX]主机失败。错误信息(SQL statement execution has failed “INSERT INTO XXXX”)等类似的问题,可以通过update语句把报错的表的有关联外键xxxid的字段更新。
举例:
如图一下所示,当出现 INSERT INTO items …… Duplicae entry ‘69263’ for key ‘PRIMARY’,意思是和某个对象的itemid重复了,很多的表是通过items的itemid字段关联的,也就是外键;
技术分享图片
解决办法,登录数据库执行下面的update语句即可:
UPDATE ids set nextid=(select max(itemid) from items) where table_name=”items”;
图二是执行图一的SQL后,添加主机的报错,这里也是通过triggerid 关联的,因为在删除主机的时候,没有删除干净,再添加时,触发器不能创建。执行下面的语句即可:
UPDATE ids set nextid=(select max(triggerid) from triggers) where table_name=”triggers”;
图二
技术分享图片
同理,出现图三的问题,SQL statement execution had failed “INSERT INTO item_discovery ……”这里的itemid是和items的itemid关联的,也是执行update语句:
UPDATE ids set nextid=(select max(itemid) from item_discovery) where table_name=”item_discovery”;
图三
技术分享图片
总之,如果有其他的表也报错,也是执行相应的update语句,根据报错提示,update相关的表的xxxid字段即可。

技术交流欢迎加入Q群:177428068

解决Zabbix添加/克隆主机SQL报错问题

原文:https://blog.51cto.com/14483703/2549173

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!