RDS从数据库(slaveDb)storage-full状态下扩容遇错误,请求协助解决
RDS从数据库(slaveDb)storage-full状态下扩容遇错误,请求协助解决
嗨,我来帮你梳理这个RDS从库扩容的问题,给你几个实用的解决思路哈~
首先明确下你的问题背景:咱们有一台db.m4.large规格的RDS从数据库,现在已经处于Storage-full状态,初始分配的存储空间是466GB。尝试扩容时碰到了两难的状况:
- 当扩容幅度小于当前已分配空间的10%时,触发错误
- 当扩容幅度大于等于10%时,又遇到另一种错误
先临时"腾空间",再尝试扩容
因为实例已经处于存储满的状态,先想办法释放部分空间,让实例脱离存储满的状态,后续扩容操作会顺利很多:
- 清理冗余数据:删掉过期的业务日志表、临时中间表,或者把历史数据归档到S3(可以用
mysqldump导出后上传) - 优化表空间:如果是InnoDB引擎,对数据量大幅减少的表执行
OPTIMIZE TABLE命令,回收空闲的表空间(注意从库执行前最好先暂停主从同步,操作完成后再重新启动同步) - 调整备份策略:临时缩短自动备份的保留周期,或者清理掉不需要的手动快照,释放RDS侧的存储资源(之后记得把备份周期调回原来的设置哦)
绕过扩容限制的实操方案
1. 用AWS CLI尝试扩容
有时候控制台的限制在CLI里可以绕开,你可以试试这个命令(记得替换成你的实例ID和目标存储大小):
aws rds modify-db-instance \ --db-instance-identifier your-slave-db-id \ --allocated-storage 513 \ --apply-immediately
这里513是466的10%加原容量,刚好踩在10%的线上,你也可以直接设一个足够大的数值,比如600,只要不超过实例支持的最大存储上限就行。
2. 先升级实例规格再扩容
db.m4.large这类老实例类型的存储扩容限制可能比较严格,你可以先把实例升级到db.m5.large(同规格的新一代实例),之后再扩容存储,等操作完成后如果不需要高规格,再降级回原来的实例类型就行。
3. 快照恢复法扩容
如果上面的方法都不行,试试快照恢复的路子:
- 先给当前的从库创建一个手动快照
- 用这个快照新建一个RDS实例,在创建的时候直接指定更大的存储空间
- 把新实例配置成原主库的从库,替换掉原来的从库就行
4. 求助AWS官方支持
如果实例已经完全无法操作,直接联系AWS技术支持,说明你的实例处于存储满的状态,扩容时碰到了限制,他们有权限帮你绕过控制台的限制,强制完成扩容操作。
备注:内容来源于stack exchange,提问作者Mahi
相关产品推荐
相关产品推荐

