AWS RDS MariaDB 在简单的 alter table 上无缘无故消耗了 300GB
AWS RDS MariaDB consumed 300GB on simple alter table for no reason
我们在 r5.large 实例的 AWS RDS 中有 MariaDB。我们有 4 个实例,每个实例使用了大约 350GB 的存储空间。每个实例都有近 2000 个不同的数据库,迁移尝试 运行 所有这些,但是算法一个一个地执行迁移。
我们要更改的 table 实际上很小 - 每个数据库通常有数百行。
出于某种奇怪的原因,当我们 运行 此迁移时,AWS RDS MariaDB 消耗了我们拥有的所有存储空间,因为我们有自动缩放存储空间,它的值从 350GB 跃升至 ~650GB,但仍然没有足够。此外,如此庞大的数据消耗速度非常快(基于监控,1-2 分钟)。然后它就停止了,因为 AWS 拒绝这么快给我们更多 space 并且没有剩余存储空间。
它发生在所有 4 个实例上。
这是我们使用的table
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`),
ALGORITHM=NOCOPY, LOCK=NONE;
我们没有发现任何异常。我们也有具有相同迁移的 TEST 数据库,但那里什么也没发生。虽然它们要小得多 (5GB),但是当在那里执行迁移时,我们甚至没有看到存储量的小幅下降 space。
我们在日志中没有发现任何特别之处。
我们遇到了同样的问题。将 MariaDB 版本从 10.3.8 升级到 10.5.8 解决了这个问题。
我们在 r5.large 实例的 AWS RDS 中有 MariaDB。我们有 4 个实例,每个实例使用了大约 350GB 的存储空间。每个实例都有近 2000 个不同的数据库,迁移尝试 运行 所有这些,但是算法一个一个地执行迁移。
我们要更改的 table 实际上很小 - 每个数据库通常有数百行。
出于某种奇怪的原因,当我们 运行 此迁移时,AWS RDS MariaDB 消耗了我们拥有的所有存储空间,因为我们有自动缩放存储空间,它的值从 350GB 跃升至 ~650GB,但仍然没有足够。此外,如此庞大的数据消耗速度非常快(基于监控,1-2 分钟)。然后它就停止了,因为 AWS 拒绝这么快给我们更多 space 并且没有剩余存储空间。
它发生在所有 4 个实例上。
这是我们使用的table
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`),
ALGORITHM=NOCOPY, LOCK=NONE;
我们没有发现任何异常。我们也有具有相同迁移的 TEST 数据库,但那里什么也没发生。虽然它们要小得多 (5GB),但是当在那里执行迁移时,我们甚至没有看到存储量的小幅下降 space。
我们在日志中没有发现任何特别之处。
我们遇到了同样的问题。将 MariaDB 版本从 10.3.8 升级到 10.5.8 解决了这个问题。