AWS RDS 迁移

AWS RDS migration

当前设置如下:

1) 停止从 web/app 服务器

到 RDS 数据库的流量

2) 按照以下过程创建 RDS InstanceDB 的手动快照: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#Overview.BackupDeviceRestrictions 如果您想在恢复之前拍摄 MyISAM 表的快照,请按照以下步骤操作:

2.1) 停止所有 activity 到您的 MyISAM 表(即关闭所有会话)。 您可以通过为从 SHOW FULL PROCESSLIST 命令返回的每个进程调用 mysql.rds_kill 命令来关闭所有会话。

如果复制到 ReadReplica,负责进程如何?

2.2) 锁定并刷新每个 MyISAM 表。例如,以下命令锁定并刷新名为 myisam_table1 和 myisam_table2 的两个表:

mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;

2.3) 手动拍摄快照

2.4) 快照完成后,释放锁并在 MyISAM 表上恢复 activity。您可以使用以下命令释放表上的锁:

mysql> UNLOCK TABLES;

这些步骤强制 MyISAM 将存储在内存中的数据刷新到磁盘,从而确保从数据库快照恢复时的干净启动。

3) 从快照恢复并在新的自定义 VPC 中创建新的 DBInstance

4) 改变(用户数据库)表以更改为 InnoDB

ALTER TABLE table_name ENGINE=InnoDB;

5) 修改web/app代码(自定义VPC中的新服务器)指向新的RDS DBInstance

有什么想法吗?有人执行过类似的程序吗? 我应该事先停止 ReadReplica 吗?

谢谢。

如果有人遇到同样的问题,我按照上面的步骤操作,效果很好。 如果您将参数组分配给新的 RDS 并且想要对 InnoDB 进行更改,请小心。确保参数组允许这样做。