基于AWS DMS的跨账号数据追加迁移操作步骤咨询
AWS DMS跨账号增量追加数据迁移(保留目标存量数据)
一、跨账号前置配置
1. 网络连通
先打通源账号VPC和目标账号VPC的网络:
- 建立VPC对等连接,或使用Transit Gateway,确保目标账号的DMS复制实例能访问源数据库和目标数据库的对应端口(如MySQL的3306、PostgreSQL的5432)
- 配置双方VPC的安全组,允许复制实例的IP访问源/目标数据库的端口
2. IAM权限配置
- 源账号:创建IAM角色,授予该角色访问源数据库的权限(如RDS的
rds-db:connect权限、S3的读写权限),并修改信任策略,允许目标账号的DMS服务主体(dms.<你的区域>.amazonaws.com)Assume该角色 - 目标账号:创建DMS专用IAM角色,授予访问目标数据库/存储的权限,确保该角色能被DMS服务调用
二、DMS迁移任务配置(目标账号操作)
1. 创建复制实例
在目标账号DMS控制台创建复制实例:
- 根据数据量和迁移速度选择合适的实例规格
- 部署在能访问源/目标端点的VPC子网中
- 仅当无法通过VPC对等连通时,才开启公网访问(不推荐)
2. 创建源端点
- 选择源数据库类型(如MySQL、PostgreSQL、RDS等)
- 填写源数据库的连接信息(端点地址、端口、用户名密码)
- 在「IAM角色ARN」字段填写源账号创建的跨账号IAM角色ARN,用于授权访问源数据
- 点击「测试连接」,确认连通性正常
3. 创建目标端点
- 选择目标数据库类型,填写连接信息
- 确保目标数据库用户仅拥有INSERT权限(避免误操作修改原有数据)
- 测试连接,确认正常
4. 创建迁移任务(核心配置)
这一步直接决定是否保留目标存量数据,重点关注以下设置:
- 任务类型:
- 若源数据不再更新:选「全量迁移」
- 若源数据持续产生新数据:选「全量迁移+持续增量迁移(CDC)」
- 目标表准备模式:必须选「不做任何操作(Do nothing)」——禁止选「截断目标表」或「删除目标表重建」,否则会清空目标存量数据
- 表映射规则:
- 选择需要迁移的表,设置动作为**「追加(Append)」**,不要选替换或截断加载
- 主键冲突处理:
- 提前排查源和目标的主键重复记录,要么修改重复值,要么在表映射中添加转换规则(比如给源主键加前缀)
- 若允许跳过重复记录,可在任务的「错误处理」中设置「主键冲突时跳过该记录」
- CDC配置(若选增量迁移):确保源数据库已开启CDC(如MySQL开启ROW格式的binlog、SQL Server启用CDC功能)
三、关键避坑点
- 绝对不要修改目标表的准备模式为截断/重建,否则直接清空目标数据
- 主键冲突是最常见的任务中断原因,一定要提前做数据校验
- 迁移前先在测试环境用小数据集跑一遍,验证目标数据未被修改、源数据成功追加
- 迁移过程中实时监控任务日志,遇到异常及时暂停排查
四、迁移完成后验证
- 统计目标库的记录数:确认等于「原有记录数 + 源库迁移记录数 - 跳过的重复记录数」
- 随机抽查数据内容,确保源数据完整追加,目标原有数据无修改
- 若开启增量迁移,在源库插入新数据,验证是否同步到目标库
内容的提问来源于stack exchange,提问作者RandomDevDude
相关产品推荐
相关产品推荐

