绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MYSQL log_error_verbosity 和 Binlog_error_action
2020-11-15 20:25:29

MYSQL 的错误日志的详细度其实不少人是忽略的,实际上MYSQL这边的关于告警和错误日志本身也是有一些注意的地方.


在PERCONA MYSQL5.7.2X中发现一个问题,当在MY.CNF文件中如果加入了

log_error_verbosity  的细致粒度的选择项,则MYSQL 将不在系统启动后打印详细的启动的过程, 如果想打印的情况下则不能在配置文件中设置,只能在系统启动后,设置log_error_verbosity 的状态.


不设置  log_error_verbosity ,系统重启动是可以记录相关详细的信息


如果打开后则,详细度大大降低


这里可能有MYSQL的老用户会提出,我们不用这个参数,我们使用的参数是

--log-warnings, 实际上这个参数已经被  log_error_verbosity 代替了,

从MYSQL 8.03 开始--log-warnings 参数已经被取消掉了.



那我们怎么做1 在PERCONA 版本的MYSQL 5.7 这个版本中,不要设置 log_error_verbosity, 同时我们在开启服务器后,在系统中运行.

set global log_error_verbosity = 2;


在关闭服务器之前,执行 set global log_error_verbosity = 0;


实际上在如果之前使用 log_warnings 则 log_warnings = 1 改变到2 ,等同于log_error_verbosity = 3 , 部分版本的系统 log_error_verbosity=2 ,log_warnings = 0 , 等同于 log_error_verbosity = 1 ,


log_warnings 为0, 表示不记录告警信息。

log_warnings 为1, 表示告警信息写入错误日志。

log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。

在mysql8 , 默认设置为2 


另外MYSQL中 有对BINLOG 的保护设置 Binlog_error_action, 其中有两个选项IGNORE_ERROR 和 ABORT_SERVER, 在MYSQL 5.7.7 中默认是 abort_server, 这个参数主要的含义是,在发现BINLOG无法写入后,是选择继续提供服务,还是停止服务,并且将没有运行的事务进行回滚.

这里面需要根据情况来选择,例如如果是一些不重要的数据库,并且缺少监控或者磁盘空间紧张,或者日志生成的太快,可以考虑使用 IGNORE_ERROR, 这样会降低服务器突然宕机的可能性,但需要注意的是,如果选择这个参数则需要考虑在服务无法写入BINLOG 后,还继续工作的情况下,空间在恢复后,日志不会在写入,必须重新启动MYSQL 后,才能恢复BINLOG 的写入.但集群方式的MYSQL不建议这样设置.



分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库杂货铺
创建时间:2021-12-10 09:57:47
分享数据库管理,运维,源代码 ,业界感受, 吐槽
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • liuaustin
    栈主

小栈成员

查看更多
  • miemieMIA
  • 578154454
  • ylfxml
戳我,来吐槽~