我们在AWS上托管一个Rails应用程序,该应用程序在amazon-rds数据库上使用mysql。我们的数据库中有一个要迁移的巨型表,但是由于要进行数百万行的记录,因此迁移需要几天的时间。具体来说,我们将VARCHAR
移到TEXT
列
如何在用户不停机的情况下迁移这个大型生产数据库?
我听说的一个想法是设置数据库的副本,然后在其中进行迁移,并在完成后将其切换为主数据库。但是,我不确定在迁移过程中如何考虑输入的用户数据。
更新:这可能是相关的:amazon-rds offers read replicas和Multi-AZ deployments似乎是为这种类型的事物而制作的。但是,第一次这样做时,欢迎任何方法的指导,无论是这种方法还是另一种方法。
最佳答案
我不知道您使用的托管选项是否可行,但是我可以通过以下方式解决问题:
如果“写入停机时间”比“完全停机时间”(显然取决于应用程序)更可接受,则只读模式是另一个可能的选择。