记录一次RDS故障排除--RDS容量徒增

客户下午7点申告故障,

4点的时候RDS容量突然从500G提升到900G,占用全部空间,导致业务无法正常运行

分析原因,查看

1、MySQL临时文件导致实例磁盘空间满的解决办法

问题原因

MySQL实例可能会由于查询语句的排序、分组、关联表产生的临时表文件,或者大事务未提交前产生的binlog cache文件,导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。

解决方案

升级实例存储空间后即可解锁实例

show processlist

可以查看进程处理情况,排除time延时比较大,一直未解决的,很有可能就是出问题的地方

2、MySQL系统文件导致实例磁盘空间满的解决办法

问题原因

MySQL实例可能会由于长时间不结束的查询导致ibdata1文件过大且无法收缩,导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。

升级实例存储空间后即可解锁实例

 

注意事项

  • 清理临时文件有延迟,请耐心等待实例已使用空间的下降。

  • 由于MySQL 5.7开始采用独立的临时表空间ibtmp1,可以通过重启实例的方式释放空间。对于MySQL5.5/5.6实例,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的RDS实例,通过DTS工具将数据迁移到新实例中。

3、MySQL Binlog文件导致实例空间满的解决办法

问题原因

MySQL实例可能会由于大事务快速生成Binlog文件,导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。

注意事项

  • Binlog文件记录实例的事务信息,是MySQL实例高可用性、可恢复性的基础,建议不要关闭。可以通过一键上传Binlog到阿里云OSS来释放磁盘空间或者修改本地Binlog设置。

  • 清理Binlog文件有延迟,请耐心等待实例已使用空间的下降。
  • 一键上传Binlog会在后台异步提交清理任务,清理任务会将已写入的Binlog上传到OSS(非用户购买的OSS)上,然后再从实例空间中删除Binlog文件,当前正在被写入的Binlog文件由于未完成写入,是不可以被清理的。因此,清理过程会有一定延迟,建议您单击一键上传Binlog后耐心等待一定时间,请勿多次单击该按钮,可以到基本信息页中查看已用空间是否减小。
  • 由于DML等操作(比如涉及大字段的DML操作)导致快速生成Binlog,可能会出现上传Binlog文件到备份空间并且从实例空间中删除的处理速度跟不上实例生成Binlog文件的速度,在这种情况下,建议考虑升级磁盘空间,并且排查Binlog快速生成的原因。

4、ySQL数据文件导致实例空间满的解决办法

问题原因

MySQL实例可能会由于数据文件长时间未整理导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。

注意事项

  • 删除表前请确保有数据备份,以免造成损失。

  • 推荐使用drop或truncate命令释放空间。
  • optimize操作将会锁表,建议在业务低峰期操作。
  • 清理数据文件有延迟,请耐心等待实例已使用空间的下降。
查看分析数据
SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC

分析完故障原因就是4点的时候客户执行 错误的SQL语句造成拥塞

重启后恢复

你可能感兴趣的:(自己的菜地)