数据库迁移服务 - 通过 AWS DMS 实现安全高效的数据库迁移
解说利用 AWS Database Migration Service (DMS) 进行数据库迁移的方法。介绍通过与 RDS 集成实现同构和异构数据库间的迁移,以及通过持续复制最小化停机时间的实践方法。
数据库迁移的挑战与 DMS 概述
数据库迁移是云迁移项目中伴随风险的环节。需要考虑的因素包括数据完整性的确保、停机时间的最小化、Schema 转换、应用程序兼容性验证等。AWS Database Migration Service (DMS) 是一项全托管服务,可将数据从本地数据库迁移到 AWS,或在 AWS 内的数据库之间迁移。支持 Oracle、SQL Server、MySQL、PostgreSQL、MongoDB、Amazon Aurora、DynamoDB 等数据库引擎作为源或目标。DMS 除了 AWS 数据库服务(RDS、Aurora、DynamoDB、Redshift)外,还可指定 EC2 上的自管理数据库作为目标。
迁移任务的设置与端点管理
DMS 的迁移任务由源端点、目标端点和复制实例三个组件构成。源端点定义迁移源的数据库连接信息,目标端点定义迁移目标的连接信息。复制实例是执行从源读取数据、必要时进行转换并写入目标的计算资源。以下 CLI 命令可创建复制实例。
aws dms create-replication-instance \
--replication-instance-identifier my-repl-instance \
--replication-instance-class dms.r5.large \
--allocated-storage 100 \
--multi-az通过表映射规则可选择性指定迁移对象的 Schema 或表,还可定义表名和列名的转换规则。使用过滤规则可仅迁移符合特定条件的记录。迁移前的预评估功能可自动检查源数据库的兼容性,预先识别迁移时可能出现问题的数据类型和对象。DMS Serverless 选项根据迁移工作负载自动扩展容量。
持续复制与停机时间最小化
DMS 的持续复制(CDC: Change Data Capture)功能在初次全量加载完成后,继续将源数据库的变更反映到目标。这样在迁移期间可保持源数据库运行,同时维持与目标数据库的同步。切换时的停机主要发生在切换应用程序连接期间。CDC 读取源数据库的事务日志(Oracle 的 Redo Log、MySQL 的 Binary Log、PostgreSQL 的 WAL),按顺序将 INSERT、UPDATE、DELETE 的变更应用到目标。通过多可用区配置的复制实例,还可确保迁移过程本身的高可用性。通过 CloudWatch 指标监控复制延迟(Replication Lag),可用于判断切换时机。
异构数据库迁移与 Schema Conversion Tool
异构数据库间的迁移(例如从 Oracle 到 Aurora PostgreSQL)需要转换 Schema、存储过程、触发器、视图等数据库对象。AWS Schema Conversion Tool (SCT) 分析源数据库的 Schema,自动转换为与目标数据库兼容的格式。对于无法转换的对象,会详细报告需要手动转换的位置和推荐的转换方法。SCT 的评估报告定量评估迁移的复杂度,提供自动转换率、需要手动转换的对象数量和估计工时。SCT 支持从 Oracle、SQL Server、SAP ASE、Teradata 等源的转换。结合 DMS 和 SCT,可在一致的工作流中执行 Schema 转换和数据迁移。
迁移后的数据验证与优化
DMS 的数据验证功能比较源和目标的数据,确认是否一致。除了按表的行数比较外,还可执行列级数据比较,检测到不一致时生成详细报告。迁移后的数据库优化中,利用 RDS Performance Insights 分析查询性能,考虑添加索引或重写查询。迁移到 Aurora 时,可利用添加只读副本实现读取扩展、Aurora Serverless v2 根据工作负载自动扩展。以下命令可确认迁移任务的表统计信息。
aws dms describe-table-statistics \
--replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:TASK123 \
--filters Name=table-name,Values=orders可通过 CloudWatch Alarms 监控复制延迟和错误数,并在超过阈值时发送 SNS 通知。
DMS 的费用
DMS 按复制实例的小时计费。DMS Serverless 按 DCU(DMS Capacity Unit)的使用量计费。Schema Conversion Tool (SCT) 免费。初始加载完成后执行持续复制(CDC)时,复制实例需常时运行,因此迁移完成后应及时停止实例。
总结 - 数据库迁移策略的构建指南
AWS DMS 是执行同构和异构数据库间迁移的全托管服务。SCT 的 Schema 自动转换、预评估的兼容性检查、数据验证功能是数据库迁移中使用的功能。DMS Serverless 选项根据迁移工作负载自动增减容量。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。