深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 902|回复: 0
打印 上一主题 下一主题

协XC-MES数据库standby异常的过程记录

[复制链接]

800

主题

1379

帖子

7705

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7705
跳转到指定楼层
楼主
发表于 2019-11-14 16:58:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
2019/11/19
CRC平台收到异常报警


查看standby数据,显示是1062异常




于是开始着手处理问题。但一开始就走错了方向!

首先改了属性sql_slave_skip_counter
  1. set global sql_slave_skip_counter=10;
复制代码


在stop slave 再 start slave后,发现问题并没有解决,而且引发了新的不可能解决的新问题!

报错如下:


sfc.p_tmp200_t这个表是临时表,改sql_slave_skip_counter跳过报错的时候,同时也跳过了创建临时表的SQL

这样应该是无解了,因为生产线如果不重开软件,不会再次创建临时表sfc.p_tmp200_t,而且产线还在持续以sfc.p_tmp200_t为条件更新数据

至此,主备数据库数据不一至的情况已经发生。

而且后面一定会有大量的1032报错,解一个1062的问题变成1032和1146两个问题了

临时解决1146的问题(实际只能等产线重开软件)

在standby的my.ini中加入以下,并重启mysql服务
slave-skip-errors=1062



解决1032的问题
看slave_exec_mode的值 :

做如下修改


  1. set global slave_exec_mode='IDEMPOTENT';
  2. stop slave;
  3. start slave;

复制代码




留 下两个未解的问题:

1、为什么 会出现主备standby时的key dup异常?
2、  sql_slave_skip_counter感觉是坑,什么 时候有用?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 05:05 , Processed in 0.026958 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表