阿里云mysql8小版本升级造成磁盘不断增长,undolog持续增长不释放

现象:


1.用户升级之后,实例上磁盘空间以每分钟1g的速度不断增长,

2.高频dml表的空间不断变大但表数据其实不大,binlog大量产生

3.通过select * from innodb_tablespaces where name like '%undo%'发现undo 空间上涨较快,但阿里云监控视图显示正常。附问题截图:

##问题一磁盘持续增长

##问题二高频表截图


##问题三undo监控


排查过程:

 

1.排查发现4.10 4:00后实例qps tps没有明显变化,但数据写入数据页落盘效率下降明显,怀疑是否是实例小版本升级后新特性造成异常于是联系阿里云
2. 查看事务提交和 undo 的 purge 速度。在监控中,可以看到事务大量提交,04/10 04:00 前后每秒提交事务 1万+,但是 purge 速度很慢,只有 1k+;
3. 分析 purge 慢的原因。发现 innodb_purge_threads = 1,即 purge 线程只有 1 个,于是建议用户增加 purge 线程,建议调整到 4;
4. 跟进发现 undo 空间继续增大,查看监控发现 undo purge 速度还是跟不上,于是建议用户调大 innodb_purge_batch_size;
5. 跟进发现 undo 空间还在快速增大,上述的调整起到的作用有限,有什么影响了 undo 的purge 速度。经排查,AliSQL小版本升级后新特性flashback 功能打开,经过确认,flashback 功能对 purge 速度有影响,暂时关闭 flashback 功能。
6. 关掉 flashback 之后,purge 速度恢复正常,空间恢复正常需要时间,大概几个小时。

7.从故障发现到阿里云排查解决历时58小时附图:


注:Native Flashback Query为阿里云自研功能功能,支持直接通过SQL语句进行回滚查询和数据恢复
复盘分析:
1. 用户从 20200110 升级到 20221231 之后,参数模板没有补充新增的功能参数,flashback 功能打开了,影响了 undo 的purge;
2. 新增的 flashback 功能影响 purge 的问题,后续会继续优化这个功能;
3. 先关闭 flashback 功能,一段时间后即可恢复正常。 

 

4.云实例建议关闭自动升级,定期查看小板更新内容评估后再统一升级

相关资料

阿里云内核更新文档:AliSQL的内核版本更新说明_关系型数据库-阿里云帮助中心

Native Flashback功能可以通过SQL语句查询或恢复指定时间点的数据,保证在误操作后可以快速获取历史数据。

Native Flashback功能介绍:NativeFlashback语法、参数和示例_关系型数据库-阿里云帮助中心

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值