AWS Database Migration Service(DMS)- Runbook 与参考¶
English · GitHub source 事实核对时间(对照 AWS 官方文档):2026-08-19
概述¶
AWS Database Migration Service(AWS DMS)用于把关系数据库、数据仓库、NoSQL 数据库和其他数据存储迁移到 AWS,或在云与本地之间迁移。它支持一次性迁移和持续复制(保持源与目标同步),并提供 Fleet Advisor(发现)和 Schema Conversion(引擎转换)。
核心概念¶
- 复制实例(Replication instance):运行迁移任务的计算资源。
- 端点(Endpoints):源和目标连接定义(引擎、主机、凭据、VPC)。
- 复制任务(Replication task):调度的工作单元(全量加载、持续复制/CDC,或两者)。
- Schema 转换:DMS Schema Conversion 或可下载的 AWS Schema Conversion Tool(AWS SCT)把 schema/代码转换为目标引擎。
- Fleet Advisor:发现并盘点本地数据库服务器,用于规划迁移。
- DMS Serverless:按需运行复制实例,无需预置容量。
- 数据验证(Data validation):比较源和目标数据,发现不一致。
- 异构迁移:DMS 支持不同引擎之间的迁移(如 Oracle 到 Aurora PostgreSQL)。
常用操作(AWS CLI)¶
# 创建复制实例
aws dms create-replication-instance --replication-instance-identifier mig1 \
--replication-instance-class dms.t3.medium --engine-version 3.5.3 \
--allocated-storage 50 --no-publicly-accessible
# 创建源和目标端点
aws dms create-endpoint --endpoint-identifier src-oracle \
--endpoint-type source --engine-name oracle \
--server-name db01.example --port 1521 --username app \
--password <password> --database-name ORCL
aws dms create-endpoint --endpoint-identifier tgt-aurora \
--endpoint-type target --engine-name aurora-postgresql \
--server-name cluster.cluster-xxxx.us-east-1.rds.amazonaws.com \
--port 5432 --username app --password <password> --database-name app
# 创建并启动任务(全量 + CDC)
aws dms create-replication-task --replication-task-identifier full-cdc \
--source-endpoint-arn <src-arn> --target-endpoint-arn <tgt-arn> \
--replication-instance-arn <instance-arn> \
--migration-type full-load-and-cdc \
--table-mappings file://table-mappings.json
aws dms start-replication-task --replication-task-arn <task-arn> \
--start-replication-task-type start-replication
# 监控和停止
aws dms describe-replication-tasks
aws dms stop-replication-task --replication-task-arn <task-arn>
最佳实践¶
- 尽早用 Fleet Advisor 和 Schema Conversion 评估迁移规模,并在割接前完成 schema 转换。
- 用有代表性的数据集先做全量测试;用 DMS 数据验证核对数据。
- 复制实例放私有子网,安全组只放行两个端点所需流量。
- 用 CDC 实现最小停机割接:停止应用写入、确认延迟归零后再切换。
- 负载波动大或低频迁移用 DMS Serverless。
- 复制实例和端点用 KMS 加密,支持处启用 SSL/TLS。
- 割接后立即对目标做备份,并保留迁移日志用于审计。
故障排查¶
| 症状 | 检查与处理 |
|---|---|
| 任务卡在 failed | 查看任务日志、端点连通性和凭据/网络路由。 |
| CDC 延迟增长 | 检查源端保留日志(如 Oracle archive log)和复制实例容量。 |
| 数据不一致 | 运行数据验证,检查表映射中的转换规则。 |
| 无法连接源端 | 检查安全组/NACL、端点设置和源端防火墙。 |
| LOB/CLOB 问题 | 按大对象情况配置合适的 LOB 模式。 |
配额¶
复制实例、端点、任务和并发连接数有每账号配额。以 Service Quotas 控制台当前值为准。