106.’binlog_error_action’ is set to ‘ABORT_SERVER

  • 问题现象描述
  • 某mysql数据库经常出现如下报错:

  • Binary logging not possible ,’binlog_error_action’ is set to ‘ABORT_SERVER’ 无法写入binlog,且会导致宕机。

    /opt/mysql/base/mysql-5.7.22/bin/mysqld(

    _ZN13MYSQL_BIN_LOG33handle_binlog_flush_or_sync_error...)

  • 二、原因分析

  • (1)参数分析
    Binlog_error_action:这个参数的意义在保证正确的写入binary log日志。
    ,默认值为 ABORT_SERVER,当出现错误的时候会使 MySQL 在写 binlog 遇到严重错误时直接退出( 即 Crash 动作),还有另外一个直:IGNORE_ERROR
    当binlog_error_action设置为IGNORE_ERROR时,如果服务器遇到这样的错误,它将继续正在进行的事务,记录错误,然后停止日志记录,并继续执行更新。要恢复二进制日志记录,必须再次启用log_bin,这需要重新启动服务器。
    
    (2)从源码分析
    报错MYSQL_BIN_LOG::handle_binlog_flush_or_sync的时候触发的错误

  • 以下有两个阶段 flush 和sync阶段

    flush stage:通知底层存储引擎日志刷盘

 

 binlog fsync:落盘

这两个过程基本跟刷磁盘有关联,一般出现问题的情况是硬盘空间出现坏道,或则 刷盘过程中出现外部原因导致服务器突然crash。 如:停电

多次出现DM-0磁盘对应文件系统错误。

dm-0 是 rhel-root 这个逻辑卷的。rhel-root 挂载在根目录 /,/opt目录在 根目录 / 下。所以DM-0有问题,就整个根目录会有问题,所以偶发性出现mysql写入异常并重启

三、修复方案

建议做好备份,业务切换到备库,更换存储设备,重新同步后,再切换回主库。防止业务正常使用时,整个系统不可用。磁盘出现问题前,一般都会有IO突然变慢,或磁盘写入故障等问题。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值