AWS RDS MariaDB 在简单的更改表上无缘无故地消耗了 300GB

问题描述

我们在 r5.large 实例上的 AWS RDS 中有 MariaDB。我们有 4 个实例,每个实例使用了大约 350GB 的存储空间。每个实例有近 2000 个不同的数据库,迁移尝试在所有数据库上运行,但算法会一个一个地执行迁移。

我们正在修改的表实际上很小 - 每个数据库通常有数百行。

出于某种奇怪的原因,当我们运行此迁移时,AWS RDS MariaDB 消耗了我们拥有的所有存储空间,因为我们已经自动扩展了存储空间,它的价值从 350GB 跃升至约 650GB,但仍然不够。此外,如此庞大的数据消耗非常快(基于监控1-2分钟)。然后它被停止了,因为 AWS 拒绝如此迅速地给我们更多的空间,而且没有剩余的存储空间。

它发生在所有 4 个实例上。

这是我们使用的alter表

ALTER TABLE `item_place`
    ADD COLUMN IF NOT EXISTS `deleted_at` datetime NULL,ALGORITHM=NOcopY,LOCK=NONE;

ALTER TABLE `item_place`
    ADD INDEX IF NOT EXISTS `deleted_at` (`deleted_at`),LOCK=NONE;

我们没有看到任何异常。此外,我们有具有相同迁移的 TEST 数据库,但那里什么也没发生。虽然它们要小得多(5GB),但在那里执行迁移时,我们没有看到存储空间的小幅下降。

我们在日志中没有发现任何特别之处。

解决方法

我们遇到了同样的问题。将 MariaDB 版本从 10.3.8 升级到 10.5.8 解决了这个问题。