MySQL 服务器已断开连接:错误 1114 (HY000) 表已满 - 存储自动扩展未能增加容量
MySQL server has gone away: error 1114 (HY000) The table is full - Storage autoscaling failed to increase capacity
ID: aws/rds-storage-full-autoscaling-failure
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| MySQL 8.0.35 | active | — | — | — |
| RDS 2024-09-01 | active | — | — | — |
| AWS CLI 2.18.0 | active | — | — | — |
根因分析
RDS 实例存储已满,由于达到最大存储限制、自动扩展策略的 IAM 权限不足或存储类型不支持自动扩展(例如,磁性存储),自动存储扩展失败。
English
RDS instance storage is full and automatic storage scaling failed due to reaching the maximum storage limit, insufficient IAM permissions for the autoscaling policy, or a storage type that does not support autoscaling (e.g., magnetic).
官方文档
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageAutoscaling.html解决方案
-
Increase storage manually via the AWS CLI: `aws rds modify-db-instance --db-instance-identifier mydb --allocated-storage 200 --apply-immediately`
-
Enable storage autoscaling with a higher maximum limit: `aws rds modify-db-instance --db-instance-identifier mydb --max-allocated-storage 1000`
-
Run OPTIMIZE TABLE on the affected table to reclaim space: `OPTIMIZE TABLE mytable;` (note: this locks the table and may take time).
无效尝试
常见但无效的做法:
-
75% 失败
InnoDB does not release disk space to the OS after deletes; the table remains full until OPTIMIZE is run.
-
90% 失败
Storage is still full; the error will reappear immediately after restart.
-
60% 失败
If storage fills again, autoscaling will fail if not re-enabled or if the new limit is still too low.