目前的设置如下:
1)停止从Web / app服务器向RDS DB的流量
2)按照以下步骤创建RDS InstanceDB的手动快照: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#Overview.BackupDeviceRestrictions 如果要在还原之前拍摄MyISAM表的快照,请执行以下步骤:
2.1)停止MyISAM表的所有活动(即关闭所有会话)。
您可以通过为mysql.rds_kill
命令返回的每个进程调用SHOW FULL PROCESSLIST
命令来关闭所有会话。
2.2)锁定并刷新每个MyISAM表。例如,以下命令锁定并刷新两个名为myisam_table1和myisam_table2的表:
mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
2.3)拍摄手动快照
2.4)快照完成后,释放锁定并恢复MyISAM表上的活动。您可以使用以下命令释放表上的锁:
mysql> UNLOCK TABLES;
这些步骤强制MyISAM将存储在内存中的数据刷新到磁盘,从而确保从数据库快照还原时的干净启动。
3)从快照恢复并在新的自定义VPC中创建新的DBInstance
4)改变(用户数据库)表以更改为InnoDB
ALTER TABLE table_name ENGINE=InnoDB;
5)修改Web /应用程序代码(自定义VPC中的新服务器)以指向新的RDS DBInstance
有什么想法?有人执行过类似的程序吗? 我应该事先停止ReadReplica吗?
感谢。
答案 0 :(得分:0)
如果有人遇到同样的问题,我按照上面的程序进行了完美的工作。 如果您将参数组分配给新的RDS并且想要对InnoDB进行更改,请务必小心。确保参数组允许。