点击上方“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