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

2023年 8月 15日 18.4k 0

点击上方“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那活儿”公众号

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论