最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQLSlave异常关机的处理

来源:动视网 责编:小采 时间:2020-11-09 12:33:10
文档

MySQLSlave异常关机的处理

MySQLSlave异常关机的处理:生产环境有一个MySQL的Master-Slave的复制。前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start slave即可所以没 生产环境有一个MySQL的Master-Slave的复制。 前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start sl
推荐度:
导读MySQLSlave异常关机的处理:生产环境有一个MySQL的Master-Slave的复制。前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start slave即可所以没 生产环境有一个MySQL的Master-Slave的复制。 前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start sl


生产环境有一个MySQL的Master-Slave的复制。前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start slave即可所以没

生产环境有一个MySQL的Master-Slave的复制。

前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start slave即可

所以没有做任何的处理。

但是第二天上班的时候,在Slave数据库上输入命令,start slave 不能重新启动复制。

模拟环境如下

在Slave上启动复制,报错如下

复制过程出现主键重复了

最后,使用status查看,发现MySQL被重启过。

估计在割接过程中,莫名其妙的被人按了服务器的重启键吧。

但是MySQL复制针对这种情况,异常的脆弱,因为复制的信息都写在一个文件里,

考虑到性能的原因,这个写入并不是同步的。

也就是说在断电重启的瞬间,复制的情况并没有写入到文件中。

而再次启动之后,读取这个文件中记录的复制位置,肯定落后于实际执行的位置。

所以会发生主键重复的问题,因为这个记录实际已经执行过了。

解决这个问题有三种方式

1.设置sql_slave_skip_counter跳过Master发来的事件,直到正常的位置

启动之后,发现报错信息已经变了

他重复的主键已经从7940到了7946了,也就说通过一点一点的推进,是可以推进到正常的复制位置的。

但是工作量比较大,需要很有耐心和时间做这个事情。

2.设置slave_skip_errors

在my.cnf配置文件中设置slave_skip_errors=1062,跳过所有主键重复的错误。

但是这个参数设置之后,,需要重启服务。对于生产系统来说,没有实际意义。

3.设置slave_exec_mode

MySQL默认的slave执行方式是严格的。

类似主键重复的问题,会直接停止复制,等待人工介入。

slave_exec_mode是一个动态参数,如果设置为IDEMPOTENT可以自动忽略主键重复和没有找到记录的错误。

但是貌似只是在MySQL集群环境有效

异常断电和关机除了可能导致主键重复的错误之外,还可能导致中继日志损坏

针对这个问题,首先,找到master binlog执行的位置

位置

然后重新连接Master服务器,(需要先停止slave)

最后查看复制情况,已经正常。

这次的经验是,如果预计可能发生状况,比如这次网络割接,

可以先停止slave的服务器。因为我们的slave只是作为备份的一种方式,而不是用于读写分离。

或者干脆设置slave_skip_errors参数。

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

--------------------------------------分割线 --------------------------------------

本文永久更新链接地址:

文档

MySQLSlave异常关机的处理

MySQLSlave异常关机的处理:生产环境有一个MySQL的Master-Slave的复制。前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start slave即可所以没 生产环境有一个MySQL的Master-Slave的复制。 前一阵子机房网络升级,但是考虑到一般网络故障恢复之后,只需要start sl
推荐度:
标签: 关机 错误 异常
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top