自1970年关系型数据库被提出以来,至今已有50年历史。但在关系型数据库领域正在发生着巨大的变化,首先是互联网的发展,使得开源数据库越来越受欢迎,可扩展性成为支撑业务发展的重要特性,比如WebScaleSQL就是几个互联网公司共同推进的追求更高规模和性能的MySQL分支;然后是云计算的发展,传统关系数据库的市场面临巨大的挑战,用户倾向使用云服务和云数据库,传统线下数据库迁移到云原生数据库是主流趋势。

虽然企业有诉求,但异构数据库迁移本就不是一件容易的事,传统商业数据库如Oracle、DB2因为功能完整,语法丰富,很好地支持了事务和分析型场景,一般数据库很难替换掉。开源数据库一度被认为是传统数据库的挑战者,但最终还是难以动摇其垄断地位,直到近几年以AWS Aurora和阿里云PolarDB、AnalyticDB为代表的云原生数据库的发展,让大家看到了曙光。

据Gartner 预测,到2023年,全球3/4的数据库都会跑在云上,这意味着未来云数据库将主导市场。但是在传统数据库向云数据库进行异构迁移过程中,作为数据库使用者,我们如何评估异构迁移的兼容性、稳定性、性能风险呢?

越来越多的企业打算迁移,但从近几年的市场分析看,企业独立迁移成功的并不多。阿里巴巴从内部丰富的业务场景迁移开始,在异构迁移上通过项目实践,将科学的方法论最终沉淀为产品化的工具-ADAM(Advanced Database&Application Migration),ADAM将应用和数据库整体进行评估,制定迁移计划并提供智能转换能力,最大程度降低改造投入,将这个难题变为可规模化复制,阿里巴巴副总裁、阿里云智能数据库事业部总负责人李飞飞曾表示,“阿里云今年要帮1000家企业完成传统数据库上云”。

阿里云数据库团队这块款名叫ADAM(亚当)的产品,可以降低80%的迁移难度和项目成本,目前已支持多种异构数据库和应用迁移上云。

我们来看下ADAM是怎么做到的:

数据库智能选型推荐

传统异构数据库替换,一般要先找到精通传统商业数据库和云数据库的专业DBA,进行技术选型调研,找到可能合适的目标数据库,然后通过POC测试验证可行性。

ADAM通过对源库进行数据采集,分析客户对数据库的实际使用情况,结合400多项打标规则,识别出最适合的目标数据库,真正做到千库千面,无须经验丰富的DBA做技术调研,技术选型时间降为0;

如下图示例,针对某客户的语法使用特性进行分析,识别出该数据库属于“结构复杂、实时性要求高”的联机事务型,推荐OLTP型数据库;第二步,针对目前市面上主流的事务型数据库进行DDL和SQL的语法兼容性分析,并根据ADAM能支持的2000+自动转换规则评估出最终兼容性。ADAM不做强制捆绑,只提供公正的评估报告,由客户来最终决策要选择的目标数据库。

生成兼容评估报告供迁移决策

传统数据库替换,在构建完目标库后,进行POC手工迁移,并逐个验证,识别出不兼容点,评估是否适合迁移。ADAM通过自动采集的数据,根据语法识别和语义分析将源库应用特有语法进行兼容性评估,无须进行POC测试,即识别出风险点、兼容性、改造工作量、迁移成本等,确保项目可控。

如下图某客户示例,可以直观的看到数据库DDL兼容性、SQL兼容性,改造点数量、目标库成本(未打折预算)、风险数量等,点击详情可看到每个对象的具体兼容性情况。

数据库智能订正

传统数据库迁移改造,DBA识别出不兼容的DDL,根据官方文档逐条改造调试。ADAM通过智能学习,自动识别Oracle和业界通用数据库的语法差异,并进行智能订正,以SQL染色的形式将订正的差异点进行高亮标识;通过对数据库对象依赖关系梳理,提供按顺序执行的智能订正的对象DDL;例如Oracle数据库迁移到PolarDB-O,通过ADAM智能订正后,已可以做到95%的兼容性,即95%的DDL无需客户做任何操作即可以直接使用,并且对于其他不能通过软件自动化转换的5%,ADAM也提供了详细的专家建议和改造示例,DBA可根据示例很轻松的进行订正。

应用自助评估及改造

异构数据库迁移改造是地铁工程,所有环节打通才能通车,而异构数据库迁移一定涉及业务代码的改造,这是最复杂的部分。很多客户有几十个应用,已运行多年,改造无从下手。传统做法是数据库迁移完成后,部署应用进行测试,对报错的sql进行逐条修改。而ADAM的应用评估可帮助客户梳理应用和数据库的拓扑关系,分批改造,比如某客户有10套Oracle RAC,300个应用,通过应用拓扑分析,可以拆分为20多个应用分组,将应用分组和数据库的复杂关系变成清晰的拓扑依赖,将一个复杂的大规模应用和数据库迁移变为一个个库和应用组的迁移,大大降低改造风险。

同时经过应用评估可识别出所有不兼容的SQL及代码中的具体定位,并智能修订为兼容的SQL,客户根据代码定位可以一次性修改所有不兼容点。

可以看到,ADAM是从应用和数据库整体视角,端到端地帮助用户数据库进行迁移,同时生成评估报告、生成迁移计划、迁移对象智能订正、应用自助改造等核心功能沉淀。东南亚头部电商客户替换Oracle最终选择的就是ADAM+DTS+PolarDB的解决方案,阿里云数据库国际站产品负责人德迈介绍:“使用 ADAM 分析之后,我们发现,如果不使用 ADAM,从 Oracle 迁移到 PostgreSQL,80% 以上的数据库和应用代码是需要修改的,如果使用 ADAM 迁移到 PostgreSQL,只有10% 左右的代码是需要修改的,而通过ADAM+PolarDB,只有 5% 的代码需要修改”,这也是阿里云能够支持传统商业数据库大规模上云的主要原因。

ADAM集成内部数据迁移工具DTS、外部DSG等丰富的工具,为异构数据库迁移提供全链路服务和护航。

dts数据库迁移工具_传统数据库迁移上云利器-ADAM相关推荐

  1. ecs服务器数据迁移_免费服务器迁移上云实践分享!一键迁云,自动同步

    导读:云服务器ECS(Elastic Computing Service)是每个阿里云用户上云的"第一步". 本次分享将为大家介绍免费的服务器迁移上云最佳实践方案和新功能特性,包括 ...

  2. 阿里云PolarDB重大更新:两大技术突破,传统数据库一键迁移上云

    5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL.PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成.据估算,云上成本 ...

  3. 阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

    5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL.PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成.据估算,云上成本 ...

  4. mysql数据库搬家,MySQL数据库迁移上云-数据搬家不用愁

    MySQL数据库迁移上云 数据搬"家"不用愁 随着数字化时代的发展,越来越多的企业开始数字化转型.云上数据库能提升对数据库的使用及管理效率,给企业带来了很大经济效益.那么如何安全有 ...

  5. 注意!数据库迁移上云,这3件事你必须知道

    摘要: 知彼知己,百战不殆! 兵法有云,知彼知己,百战不殆!在全民业务上云的今天,数据库这个大后方作为业务和应用支撑的弹药库,重要性就不言而喻了.然而数据库迁移上云的正确姿势,你真的Get了么?今天, ...

  6. 客户将数据库迁移上云的常用办法

    下载网站:www.SyncNavigator.CN   客服QQ1793040 ---------------------------------------------------------- 关 ...

  7. 传统企业IT系统迁移上云-构建公有云PaaS+SaaS平台

    今天谈下对传统企业IT系统迁移上云的进一步思考. 在我前面谈云原生的很多文章里面都谈到一个核心观点,即公有云服务商本身一个关键变化就从IaaS层资源能力提供到PaaS层服务能力提供,整个抽象层次在不断 ...

  8. 传统IDC服务器迁移上云流程

    上云是趋势,越来越多企业的IDC服务器选择迁移上云,迁移上云的方式有很多,阿里云提供服务器迁移中心SMC来帮助用户迁移上云.使用SMC服务器迁移中心,将您的源服务器方便快捷地迁移至阿里云,支持的迁移源 ...

  9. 轻松上云系列之一:本地数据迁移上云

    本文档围绕如何将您的本地数据迁移到阿里云,提供了多个场景的实践方案. 背景信息 在云计算服务高速发展的今天,如何方便快捷地将已有的服务器系统迁移上云,有着非常重要的意义.阿里云服务器迁移服务方案,即迁 ...

最新文章

  1. 数学建模优化模型简单例题_数学建模之优化模型:存储模型
  2. ASP.NET AJAX环境的简单构建(ZT)
  3. 新电脑装win7_微软正式跟Win7系统告别了!国产电脑操作新系统诞生:系统更加美观...
  4. (建议收藏)matlab在线性代数问题中的计算机求解进阶问题及解决方案集锦
  5. Linux之磁盘概述
  6. Mesos Framework开发指南 一
  7. SPU解析优化:模块设计与实现,SKU优化
  8. php get raw,file_get_contents(“php:// input”)或$ HTTP_RAW_POST
  9. unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...
  10. c++堆栈溢出怎么解决_栈溢出基础
  11. 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
  12. 剑指offer面试题10- I. 斐波那契数列
  13. 3.c语言结构体成员内存对齐详解
  14. Java基础篇:finalize( )方法的使用
  15. JUC和线程池的详细讲解
  16. java int 32位_JAVA基本数据类型所占字节数是多少?(32位系统)
  17. python爬虫下载付费音乐包有什么用_听歌音乐还要我付费?看我用Python批量下载!...
  18. centos配置虚拟主机(站点)
  19. 当Forms表单遇到Power BI
  20. RJS 模板的另种用法

热门文章

  1. .Net 中的继承知识点
  2. (JAVA)FileWriter
  3. 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,基于SCM和PLC的两种步进电机控制方法...
  4. IT职业就业-学长有话说(二)
  5. django-中间件
  6. java使用token防止用户重复登录以及验证用户登录
  7. 这几天都是在公司慢待
  8. GIS-004-Cesium版权信息隐藏
  9. Xamarin Mono for VS开发窗体标题(Title)乱码解决方案
  10. UESTC_秋实大哥下棋 2015 UESTC Training for Data StructuresProblem I