暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

案例分享:MySQL大事务回滚引发宕库

IT那活儿 2023-08-14
295
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!



故障背景



某项目中1套MySQL数据库,数据库架构为1主3从,事故日当前出现2次MySQL宕库现象。

【数据库架构】



处理过程



2.1 168.3MySQL错误日志,在数据库服务异常时间点存在事务rollback操作

2.2 168.1MySQL错误日志,在数据库服务异常时间点存在事务rollback操作
2.3 数据库重要参数检查,无异常
innodb_log_file_size
innodb_log_files_in_group
innodb_doublewrite

2.4 168.1异常时间点binlog日志分析
2.5 业务操作行为分析
在168.3、168.1MySQL主库2次宕库时间前,都有业务ES重启操作行为,且ES重启时间点与MySQL 服务异常时间点非常吻合,推断MySQL服务宕机可能由ES重启行为引发。
2.6 168.3MySQL错误日志,undo与redo相差约70G的redo日志,存在大事务或多事务rollback操作行为




问题原因及处理



3.1 从库有DDL变更操作行为

168.3、168.1MySQL数据库宕机都是由rollback语句触发的,说明异常的时间点前存在业务大事务或很多事物操作行为,而MySQL数据库在rollback过程中引发数据库服务宕机。

3.2 改进措施

  • 业务改造:避免集中式大事务操作,验证ES与MySQL服务相关性。
  • 调整数据库innodb_log_buffer_size参数。

END


本文作者:程继贵(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论