我有一个具有以下规格的RDS实例:
InstanceClass: db.m5.12xlarge
AllocatedStorage: 500 - (GiB)
MultiAZ: No
ReadReplica: True - (with same specs)
StorageType: standard - (magnetic)
我需要修改主数据库和副本数据库,以使用具有更多空间(2 TiB)的SSD存储类型(gp2),并且这必须通过CloudFormation模板完成,因为上述RDS实例是堆栈的一部分。但是问题是这些是生产数据库,长时间中断(超过2小时)是不可行的。
仅存储大小更改是可以的,但是从磁类型更改为SSD的类型更改是灰色区域。我无法(至少我知道)无法确定它将在2小时以上完成,还是需要多少时间。 我想向社区询问最佳实践,或者是否有人之前做过任何这样的工作(可能是手动的),而这些工作也不会使数据库也与cloudformation堆栈不同步(例如使用手动创建新副本)所需的规格并将其推广为例如)?
答案 0 :(得分:0)
根据您的解释,我假设您有一个RDS-MySQL数据库集群(如果您没有RDS集群,您如何将数据复制到只读副本?),而不是Aurora-MySQL数据库集群(其中情况下您就不会有磁存储类型,因此就不用我的假设了
在这种情况下,从UI手动创建只读副本,基本上转到
RDS->数据库->选择RDS群集->(右上方)选择 动作->添加阅读器
选择读取器后,选择所需的存储类型和要从中复制的读取副本。
这显然会花费一些时间,但是一旦您的新副本达到了主实例的最高速度,就可以生成另一个只读副本(这次使用您创建的新副本)
一旦您有2个具有所需存储类型的副本,就可以做2件事:
对于这样的生产系统,我想不出更优雅的方式,希望一切对您有用。