从库宕机引发的主键冲突

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

刚刚接到报警短信,从库宕机,马上通知机房重启,在检查MySQL时,发现同步挂了,报主键冲突,询问开发是不是有往里面写数据,回答没有。


这就奇怪了,怎么会无缘无故报错呢?在检查了my.cnf配置文件,发现有个参数没有配置:

1
innodb_overwrite_relay_log_info = 1


当从库宕机后,重新开启主从复制同步,它可以重新执行已提交事务,这样就会造成同步失败,而这个参数就会避免这个问题的出现。


当开启了这个参数后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
....
+ InnoDB: Warning: innodb_overwrite_relay_log_info  is  enabled. Updates of other storage engines may have problem of consistency.
+ InnoDB: relay-log.info  is  detected.
+ InnoDB: relay log: position  429 , file name ./gauntlet3-relay-bin. 000111
+ InnoDB: master log: position  280 , file name gauntlet3-bin. 000015
....
   InnoDB: Starting crash recovery.
....
   InnoDB: Apply batch completed
+ InnoDB: In a MySQL replication slave the last master binlog file
+ InnoDB: position  0  468 , file name gauntlet3-bin. 000015
+ InnoDB: and relay log file
+ InnoDB: position  0  617 , file name ./gauntlet3-relay-bin. 000111
   090205  17 : 41 : 31  InnoDB Plugin  1.0 . 2 - 3  started; log sequence number  57933
+ InnoDB: relay-log.info have been overwritten.
....
   090205  17 : 41 : 31  [Note] Slave SQL thread initialized, starting replication  in  log ``gauntlet3-bin. 000015 `` at position  468 , relay log ``./gauntlet3-relay-bin. 000111 `` position:  617


已经执行完的Position点:

master log: position 280, file name gauntlet3-bin.000015

在恢复时它内部会检测到280这个点已经执行完毕,从下一个点468开始同步,并且重写relay.info文件,确保了主从同步正确。


建议在从库上添加,如果是官方MySQL,参数是relay_log_recovery=1


具体请参考:http://www.percona.com/doc/percona-server/5.5/reliability/crash_resistant_replication.html




















本文转自hcymysql51CTO博客,原文链接: http://blog.51cto.com/hcymysql/1332012,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
Linux 开发工具
Linux配置软件仓库
Linux配置软件仓库。配置光盘内容为yum/dnf命令的软件仓库。
1538 0
|
存储 消息中间件 缓存
腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
当业务发展到一定规模,实时数据仓库是一个必要的基础服务。从数据驱动方面考虑,多维实时数据分析系统的重要性也不言而喻。但是当数据量巨大的情况下,拿腾讯看点来说,一天上报的数据量达到万亿级的规模,要实现极低延迟的实时计算和亚秒级的多维实时查询是有技术挑战的。
腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
|
人工智能 安全 测试技术
开发者迎来提效“利器”?中兴星云研发大模型太强了
开发者迎来提效“利器”?中兴星云研发大模型太强了
219 4
|
前端开发 小程序 测试技术
靠谱:开源IM项目OpenIM压测程序介绍-自己动手测试性能和稳定性
靠谱:开源IM项目OpenIM压测程序介绍-自己动手测试性能和稳定性
916 0
阿里巴巴在开源压测工具 JMeter 上的实践和优化
本文是 《如何做好性能压测》系列专题分享的第三期,该专题将从性能压测的设计、实现、执行、监控、问题定位和分析、应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论体系,并提供有例可依的实战。
6538 94
|
C语言 C++
【c++】C语言之输入行数,输出实心菱形和空心菱形
C语言之输入行数,输出实心菱形和空心菱形
1620 1
【c++】C语言之输入行数,输出实心菱形和空心菱形
|
人工智能 算法 数据可视化
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
KeenTune 再次带来开源重磅特性——新增第五大组件:keentune-ui。
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
|
编解码 计算机视觉 Python
opencv 视频处理(python)
opencv 视频处理(python)
opencv 视频处理(python)