使用AWS DMS实现跨账户MySQL RDS持续迁移的问题咨询
跨AWS账户MySQL RDS持续同步解决方案
首先明确:AWS DMS本身完全支持跨账户RDS同步,你找不到其他账户资源选择入口是因为DMS不会自动拉取其他账户的资源列表,需要手动配置跨账户访问权限后直接填写源端信息即可,不需要更换其他方案。
方案1:AWS DMS 跨账户同步(官方推荐,符合持续同步需求)
前置配置(账户A,源RDS所属账户)
- 开启源RDS的binlog日志:将RDS参数组中
binlog_format设置为ROW,binlog保留时间调整为至少24小时,同时开启自动备份,保证增量日志可被DMS正常拉取 - 配置访问权限:修改源RDS的安全组入站规则,放通账户B的DMS复制实例的IP访问3306端口;如果两个账户VPC已经通过对等连接、中转网关打通,直接放通私有网段即可,无需暴露RDS到公网
- 创建数据库同步账号:在源RDS中创建专属同步账号,授予
REPLICATION CLIENT、REPLICATION SLAVE、SELECT等DMS同步必须的权限
DMS操作(账户B,目标端所属账户)
- 创建DMS复制实例,网络配置选择可以和源RDS互通的VPC
- 创建源端点时直接选择手动指定接入信息,填写账户A下源RDS的访问端点、端口、之前创建的同步账号密码即可,不需要选择同账户资源
- 创建目标端点指向本账户下的目标RDS
- 配置迁移任务时选择「全量迁移 + 持续增量同步」,任务启动后会先完成全量数据迁移,之后持续捕获源端的所有数据变更同步到目标端
方案2:自建MySQL主从同步(适合不想使用DMS的场景)
- 在账户A的源RDS控制台生成全量快照,将快照共享给账户B,在账户B侧使用共享快照创建目标RDS实例,完成全量数据初始化
- 在源RDS创建拥有
REPLICATION SLAVE权限的账号,放通目标RDS的IP访问权限 - 修改目标RDS的参数组配置,配置主从同步参数后,执行
CHANGE MASTER TO命令指向源RDS,开启主从同步即可实现持续数据同步
该方案需要自行运维同步链路的异常处理、断连重连等工作,适合有丰富MySQL运维经验的场景使用
注意事项
- 两种方案都需要在正式切流前完成数据一致性校验,确认全量数据和增量同步没有延迟、没有数据丢失后再进行业务切流
- 同步期间尽量避免在源端执行DDL操作,避免出现同步异常
内容的提问来源于stack exchange,提问作者sgk
相关产品推荐
相关产品推荐

