本文介绍了由于数据文件过多导致存储空间被占满的问题描述、解决方案以及后续维护等内容。
问题描述
PolarDB MySQL版集群可能会由于数据文件长时间未整理导致占用过多存储空间,且在集群的空间分析页面的空间变化趋势区域中确认数据空间使用量较高。如下图所示:
解决方案
删除冗余数据,操作步骤如下:
说明
删除表前请确保数据已备份,以免造成数据丢失。
DELETE命令无法释放空间,推荐使用DROP或TRUNCATE命令释放空间。
OPTIMIZE操作将会锁表,建议在业务低峰期进行操作。
清理数据文件有时间延迟,请耐心等待集群已使用空间的下降
若根据以下步骤仍不能通过清理数据文件释放足够的存储空间,您可以清理其他类型的文件来降低存储空间的使用率,详情请参见由于日志文件过多导致集群存储空间被占满的解决办法。
在SQL Console页,执行如下命令查看数据库的文件大小,确认其中可以删除的历史数据或无用数据。
SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC
使用DROP或TRUNCATE命令清理数据。实际使用过程中,需要替换命令行中的数据库名和表名。
DROP TABLE <数据库名>.<表名> TRUNCATE TABLE <数据库名>.<表名>
后续维护
扩展存储空间,PolarDB MySQL版采用存储与计算分离的架构,您可以选择手动扩缩存储空间或自动扩展存储空间两种方式中的任意一种来扩展当前的存储空间容量。
对于经常执行DELETE操作的表,容易产生表空间碎片,建议在业务低峰期执行
OPTIMIZE TABLE <数据库名>.<表名>
语句回收表空间,具体操作详情请参见通过OPTIMIZE TABLE命令回收表空间。
文档内容是否对您有帮助?