一个500GB的mysql数据库,需要做跨vpc的迁移,可以有下面的方法:
1. mysqldump做导出导入,需要一个能连通vpc A和vpc B的机器,做跳板机,且要准备比较大的空间放导出文件。
准备时间:准备申请一个跳板机,开通跳板机连通2个vpc的操作时间。需要负责计算资源的同学和负责数据库的同学配合。
迁移时间:导出+导入,迁移期间需要停业务,预估在8小时左右的时间。
2. 同账号同区域快照复制
准备时间:不需要额外准备,只需要业务方沟通停机时间。操作上没有其他依赖资源,只需负责数据库的同学操作。
迁移时间:停应用后打DB快照+快照还原+恢复multiaz架构。迁移期间需要停业务,预估3小时左右。
3. dms做同步,需要开通两个vpc的vpc peering。
准备的时间:开通vpc peering+配置好路由表,测试dms是否正常能通过vpc peering进行数据同步,需要手动迁移元数据防止dms不能同步mysql secondary index。需要负责网络的同学和负责数据库的同学配合。
迁移时间:分钟级切换。
4. mysql binlog replication,复制从库副本到主力vpc,然后利用mysql的原生主从进行同步(需要vpc peering)。
准备时间:开通vpc peering,测试副本复制+原生同步,需要负责网络的同学和负责数据库的同学配合。
迁移时间:分钟级切换
另外如果不开vpc peering,走public access也是一种方法。
参考:
《AWS RDS 跨账户迁移方案:Binlog Replication》
《Perform cross-account Amazon Aurora MySQL migration with minimal downtime》
《创建或删除 VPC 对等连接》