由于数据文件过多导致集群存储空间被占满的解决办法

本文介绍了由于数据文件过多导致存储空间被占满的问题描述、解决方案以及后续维护等内容。

问题描述

PolarDB MySQL版集群可能会由于数据文件长时间未整理导致占用过多存储空间,且在集群的空间分析页面的空间变化趋势区域中确认数据空间使用量较高。如下图所示:

image.png

解决方案

删除冗余数据,操作步骤如下:

说明
  • 删除表前请确保数据已备份,以免造成数据丢失。

  • DELETE命令无法释放空间,推荐使用DROPTRUNCATE命令释放空间。

  • OPTIMIZE操作将会锁表,建议在业务低峰期进行操作。

  • 清理数据文件有时间延迟,请耐心等待集群已使用空间的下降

  • 若根据以下步骤仍不能通过清理数据文件释放足够的存储空间,您可以清理其他类型的文件来降低存储空间的使用率,详情请参见由于日志文件过多导致集群存储空间被占满的解决办法

  1. 连接数据库集群

  2. SQL Console页,执行如下命令查看数据库的文件大小,确认其中可以删除的历史数据或无用数据。

    SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC
  3. 使用DROPTRUNCATE命令清理数据。实际使用过程中,需要替换命令行中的数据库名和表名。

    DROP TABLE <数据库名>.<表名>
    TRUNCATE TABLE <数据库名>.<表名>

后续维护