新网Logo
首页>主机-资讯>

如何解决RDS MySQL实例内Binlog日志磁盘使用率过高的问题

登录 注册

如何解决RDS MySQL实例内Binlog日志磁盘使用率过高的问题

  • 来源:网络
  • 更新日期:2020-05-26

摘要: 问题描述 RDS MySQL实例内Binlog日志磁盘使用率过高,磁盘空间已满导致实例被锁定,RDS无法进行读和写操作,从而影响业务。 问题原因 Binlog日志占用实例空


问题描述

RDS MySQL实例内Binlog日志磁盘使用率过高,磁盘空间已满导致实例被锁定,RDS无法进行读和写操作,从而影响业务。

问题原因

Binlog日志占用实例空间过高,主要为以下原因所导致:

应用端存在大量的读和写请求,从而导致RDS数据库产生了大量的事务操作和Binlog日志文件。 应用业务中存在大事务,产生了较多的Binlog日志。 进程占用Binlog日志会导致清理程序异常,无法及时清理Binlog。 解决方案 登录RDS管理控制台,选择目标实例所在地域,单击目标实例ID,进入基本信息页面。 在左侧导航栏中,选择备份恢复,进入备份恢复页面。 选择一键上传Binlog,将Binlog日志上传到OSS中,待Binlog日志上传成功之后,将本地的Binlog日志删除。 更多信息

以下内容为Binlog日志的生成机制和清理规则。

实例内生成Binlog日志的规则 通常情况下,当前Binlog大小超过500MB时会切换到下一个序号文件继续写入,即写满500MB就会生成新的Binlog日志文件。新的Binlog文件将继续写入,之前的Binlog文件并不会立刻上传到OSS中,会使用异步上传的方式上传到OSS中。 如果Binlog文件大小不满500MB就不再写入,可能是由于命令的执行、系统重启等原因。 当出现Binlog文件大小超过500MB的情况,例如在执行大事务,不断写入Binlog导致当前Binlog文件大小超过500MB。 实例内清理Binlog日志的规则 实例内默认会保存最近18个小时内的Binlog文件。 当实例空间小于70%时,系统会保存18小时内的Binlog,即使该Binlog文件已经上传到OSS中。 当实例空间大于70%时,Binlog会在上传到OSS后,发起删除本地数据的请求,但是本地删除会有任务调度有一定延迟。 Binlog文件上传到OSS后,才可以在RDS管理控制台中显示。

如果由于磁盘空间满而导致RDS实例被锁定,无法进行数据库的读写操作,严重影响业务,可以提交工单,请阿里云技术支持解除对RDS实例的临时锁定,恢复业务的使用。然后客户通过在RDS控制台清理Binlog日志或删除无用的历史数据来释放磁盘空间。

适用于 云数据库 RDS MySQL 版