自从2018年8月8日,Amazon Database Migration Service 和 Amazon Schema Conversion Tool 在 亚马逊云科技中国(北京)区域和亚马逊云科技中国(宁夏)区域推出以来,已有3 个多月的时间,在这段时间里已经有非常多的亚马逊云科技客户及合作伙伴,在亚马逊云科技中国(北京)区域和亚马逊云科技中国(宁夏)区域试用了该服务或已正式投入生产。根据大家在使用过程中遇到的一些问题及优化建议进行了总结,并分享如下。

(一) 常见迁移环境

Amazon DMS 是一项托管服务,可轻松迁移关系数据库、数据仓库、NoSQL 数据库及其他类型的数据存储。可以在本地实例之间或云与本地设置的组合之间使用 Amazon DMS 将数据迁移到亚马逊云科技云中,广泛支持将各种开源数据库、商业数据库以及托管的 RDS作为数据迁移的源与目标,总之需要源与目标任何一端在亚马逊云科技云端即可,Amazon DMS 架构参考如下:

运行 Amazon DMS数据迁移的完整过程如下:
1) 确定用于数据迁移的网络环境;
2) 确定数据迁移的源和目标数据库;
3) 创建 Amazon DMS 复制实例;
4) 配置源和目标数据库连接信息的终端节点;
5) 创建复制任务,指定要迁移的数据表和转换规则;
6) 迁移后的数据验证;

在 Amazon DMS 数据迁移过程中,网络环境至关重要,是整个数据库迁移项目成功的关键,针对不同的迁移场景,对几种常见的网络环境说明如下:
1) 源与目标在同一 VPC 内

2) 源与目标在不同 VPC

3) 通过专线或 VPN 从本地数据中心到云端

4) 通过互联网从本地数据中心到云端

对于以上 4 类网络环境,第 1、2 类情况都是在云端,不存在网络稳定性问题,像跨帐号、跨 VPC 的都可以直接采用 VPC 的对等连接。

在实际的迁移案例中,往往大家遇到的都是第 3、4 类情况,在测试阶段大都是采用VPN或是互联网。由于中国互联网的环境复杂,数据量稍大点,测试过程中就可能遭遇各种莫名其妙的问题。第 3、4 类情况,如果是长期运行的 DMS CDC 持续数据迁移任务,请尽量选择专线。如果是一次性数据迁移,网络环境不稳定、数据量大,建议采用先导出 CSV 到 S3, 再将 S3 作为 DMS 的源。

(二) 常见问题及优化方法

Amazon DMS 在数据库的迁移过程中复制实例都是通过 ODBC 接口与源、目标数据库通讯来实现数据的最终一致,Redshift 为提高性能采用的方法比较特殊,是先到 S3再 COPY 到 Redshift ,常见问题及优化方法汇总:

1) 如何设置复制实例的子网组?

子网组是复制实例驻留的地方,请参照上面 4 类网络环境去设置。如果是访问位于互联网上的数据库,建议用公有子网或带NAT的私有子网。如果都在云端,建议与目标数据库位于相同的子网。

2) 为什么目标端数据库表中数据中文内容都显示成乱码或问号?

中文乱码属于常见问题,请检查源与目标端的数据库字符集是否一致。针对不同的数据库有不同的设置方法,请在迁移前优化确认此项设置。只要有中文乱码问题数据验证都无法通过。

3) 如何正确设置源与目标的额外属性?

额外属性主要用于控制复制实例在源与目标的行为,针对不同的数据库,源与目标的额外属性内容不一,但设置方法雷同,详细请参见官方文档中心的说明,主要规则说明如下:
a) 具有多个额外属性,用分号分隔;
b) 单个属性多个值时,用逗号分隔;

如下是将 MySQL 数据库作为源,Aurora 作为目标时的额外性调置参考:
eventsPollInterval=60;initstmt=SET time_zone=’+08:00′,autocommit=1;CleanSrcMetadataOnMismatch=false

parallelLoadThreads=2;initstmt=SET FOREIGN_KEY_CHECKS=0,time_zone=’+08:00′,autocommit=0;maxFileSize=65536;CleanSrcMetadataOnMismatch=false

4) 如何启用验证与日志记录?
在创建任务的时候选择启用验证与日志记录。

通过查询表统计数据,能看到验证状态。

启用日志记录,直接点击能到 CloudWatch 查看日志。

即使前面验证都正常,也要养成查看日志记录的习惯,只有日志里面才会详细记载 DMS 的运行过程,这是后期 DMS Troubleshooting 与 Performance Tuning 的主要信息来源。

5) 为什么总是有一些表没数据或是迁移不成功?

请先检查日志,确认日志里面是否有主外键冲突的提示?如果有请参考额外属性禁用主、外键约束检查,如果已经设置请确认是否生效或设置正确。

6) 为什么有些表的完整加载行比总量还多?

这种现象可能是因为重复加载导致,不稳定的网络有可能会触发DMS的重复加载。建议先检查日志,再找到对应的表,如果有重复加载在日志里面会有显示。尤其像Redshift的迁移机制很容易产生这种问题。

7) 为什么“完整加载行”与“总量”一致,但数据验证还是未通过?

仅凭记录数是无法保证数据的一致性,Amazon DMS 采用一种 HASH 算法来验证迁移后源与目标数据内容的一致性,如果记录数一致,但验证未通过,绝大多数是因为字符集与时区问题导致的字段内容不一致,设置正确的额外属性并重新加载数据。

8) 为什么 DMS 实例运行一段时间后任务就挂起?

先通过 ping 检查 DMS 实例是否通讯正常,再检查复制实例的运行状态,确保 DMS 实例本身运行正常,最后去检查 DMS 运行日志,结合对应的时间点来看监控数据。如果这些数据都正常,再去检查任务的设置是否合理,单个任务理论上能支持60000 张表,但这与所采用的 DMS 实例类型有关,如果换更大实例也不能解决 DMS 实例需要的资源,建议拆分成多个实例。

9) 如何提高大型表的迁移性能?

DMS 在迁移的过程,数据导出操作会有共享锁,如果在单个任务中迁移大表,会增大 DMS 导出操作持有共享锁的时间,大型表建议根据筛选条件进行任务分解。

10) 我应该选择什么样的迁移类型?

根据不同的业务场景,如果是可以停机的一次性数据迁移,建议选择“迁移现有数据”,如果迁移过程中要避免停机或不影响业务,建议选择“迁移现有数据并复制持续更改”,如果只是需要复制增量数据,建议选择“仅复制数据更改”。

(三) 总结及参考资源

Amazon DMS 目前主要定位于数据库迁移,并支持一部分数据源的 CDC 功能,支持与其他的亚马逊云科技服务集成,目前已经支持 S3 、CloudFormation ,可以实现更多的扩展功能。像 Amazon RDS 本身并不提供 BINLOG 分析功能,可以结合 Amazon DMS CDC 的功能,对要分析的源库启用 CDC 复制,并将 S3 作为目标,变更的数据都会以 CSV 格式自动复制到 S3 桶里,通过直接分析 CSV 文件,实现对数据库的日志分析。Amazon DMS 不支持基于时间的任务调度,可以结合 CloudFormation 自动化与 Lambda 调度复制任务。

对于将 Amazon Aurora, Amazon Redshift 或 Amazon DynamoDB 作为目标的迁移任务,并且使用单 AZ 的t2.micro, t2.small, t2.medium, t2.large和c4.large五种实例类型,将提供 6 个月的免费使用时间用于数据迁移。

Amazon DMS 除了具备数据库迁移能力外,更像是传统企业端的 CDC 增量数据库复制软件,提供企业级数据库整合、数据分发功能,并能向数据仓库提供增量数据,后期我们将期待更多的 Amazon DMS 特性发布。

[参考资源]

Amazon DMS 详细文档

https://docs.aws.amazon.com/zh_cn/dms/latest/userguide/Welcome.html

Amazon DMS 分步迁移指南

https://docs.aws.amazon.com/zh_cn/dms/latest/sbs/DMS-SBS-Welcome.html

Amazon DMS Free说明

https://aws.amazon.com/cn/dms/free-dms/

Amazon SCT 详细文档

https://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/CHAP_Welcome.html

本篇作者

蒋华

亚马逊云科技 APN 合作伙伴解决方案架构师

主要负责亚马逊云科技(中国)合作伙伴的技术支持工作,同时致力于亚马逊云科技云服务在国内的应用及推广,并在关系型数据库服务、存储服务、分析服务、 HA/DR 及云端应用迁移方面有着丰富的设计和实战经验。加入亚马逊云科技之前,曾在 IBM(中国) 工作12年,历任数据库售前工程师、UNIX 服务器资深售前工程师及解决方案架构师,熟悉传统企业 IT 架构、私有云及混合云部署,在数据库、数据仓库、高可用容灾及企业应用架构等方面有多年实践经验。

听说,点完下面4个按钮

就不会碰到bug了!

在线答疑 Amazon DMS 数据库迁移十问相关推荐

  1. aws mysql 迁移_Amazon DMS 数据库迁移_数据迁移_云迁移-AWS云服务

    使用案例 同构数据库迁移 在同构数据库迁移中,源数据库和目标数据库采用相同或兼容的数据库引擎,例如从 Oracle 迁移至 Amazon RDS for Oracle.从 MySQL 迁移至 Amaz ...

  2. aws 数据库迁移_AWS Loft的数据库周

    aws 数据库迁移 这是我的笔记: https://databaseweekoctober2019sf.splashthat.com AWS上的数据库:合适工作的合适工具 在许多此类谈话中,我并没有做 ...

  3. aws 数据库迁移_使用AWS进行数据库迁移

    aws 数据库迁移 The Agenda of this blog is to understand the different aspects of Data Migration. This blo ...

  4. mysql dba工作笔记pdf_社区专家在线:Oracle数据库、MySQL、Db2 等数据库日常运维故障与性能调优在线答疑...

    数据库的重要性毋庸置疑,随着数据量日益增加,数据库的重要性更为凸显.DBA们作为数据库的日程运维管理人员,肩负着数据库运维的重要使命.一名合格的DBA,日常工作中需要掌握多项技能,包括数据库的故障诊断 ...

  5. mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案

    今天,我们讲讲如何使用源MySQL数据库执行数据库迁移到MySQL数据库的目标Amazon RDS的方案,同时由于(源和目标数据库引擎是相同的)--模式结构.数据类型和数据库代码在源和目标数据库之间是 ...

  6. DNSPod十问辛恒:如何让1万名保洁阿姨学会在线接单?

    伊年初始,元宵佳节! 我想大家都希望在干净整洁的家里迎接2021年的好运吧,家政服务预订这个时候也自然迎来"高峰期",但事实上预约难已经不仅限于节日前后了,优质的家政服务在平日也需 ...

  7. DECENT十问答疑(二)| DECENT 钱包知多少

    DECENT十问答疑第二期跟大家见面啦!欢迎在下方留言提问,每期我们会选出一位幸运粉丝,送出DECNET精美周边礼品! Q1 目前DECENT钱包可以在哪里下载? 目前用户可使用DECENT网页钱包h ...

  8. DNSPod十问简丽荣:国产数据库的月亮与六便士

    本期嘉宾  简丽荣  酷克数据联合创始人兼CEO 简丽荣,北京酷克数据科技有限公司联合创始人兼CEO.2008年毕业于清华大学计算机系本科,2010年获得香港科技大学硕士学位,毕业后曾先后在IBM中国 ...

  9. Amazon DMS 在数据迁移任务可用性及对源数据归档支持的实践

    点击上方[凌云驭势 重塑未来] 一起共赴年度科技盛宴! 背 景 Amazon Database Migration Service (Amazon DMS) 是一项 Web 服务,您可以使用此服务将本 ...

最新文章

  1. 【转】web 前端研发工程师编程能力飞升之路
  2. python从入门到实践和从入门到精通-Python从入门到实践之列表|第1天
  3. CDH 的Cloudera Manager免费与收费版的对比表
  4. 计算机组成原理码质变换,计算机组成原理负数的8421码
  5. priority_queue的常见用法详解
  6. 浅谈python的对象的三大特性之封装
  7. java continue goto_Java中goto和break、continue实现区别
  8. python中function函数的用法_Python中Function(函数)和methon(方法)
  9. oracle表修改语句,Oracle的常用修改表及字段的语句
  10. 疫情病毒全部“抹杀”?用数据模型来解读传播抑制的效果差异!
  11. mysql表空间查看及创建
  12. android assets目录在哪,Android Studio 中 assets目录的使用
  13. 疯狂模渲大师体验版安装教程|效果图设计师怎么安装并注册3dmax疯狂模渲大师体验版?
  14. 重构改善既有的代码设计(代码的坏味道)
  15. win8.1 更新后出现致命错误C0000034,无法进入安全模式和高级选项
  16. echars x轴单位_ECharts xAxis配置 x坐标轴刻度设置
  17. 轻量级神经网络MobileNet全家桶详解
  18. 在Android面试前背八股和学面试技巧真的有用吗?
  19. 实现strncmp函数
  20. 2018.03.18 临汾市游记

热门文章

  1. 2019年读书记录及总结
  2. 传统 Java 网站如何实现容器化?看看 Cars.com 如何玩转 Docker!
  3. tiktok英国小店注册流程介绍
  4. 杀戮空间2服务器协议,杀戮空间2 云服务器搭建
  5. LaTeX中的特殊符号,数学公式符号的相关写法
  6. 35行代码搞定事件研究法(下)
  7. 浩瀚科技PDA移动开单|盘点机 数据采集器 条码扫描开单微POS软件 现场打印开单...
  8. 服务器固态硬盘优缺点,为什么服务器使用的机械硬盘比固态硬盘多
  9. 蓝牙篇之蓝牙核心规范学习笔记(V5.3)汇总
  10. 95后开始考虑结婚?北京剩女80万-全国十大单身男女盛产地都在哪?