最佳实践 | 数据库迁云解决方案选型 & 流程全解析
Oracle是非常强大的综合数据库,但同时也存在一些劣势,比如由于采用集中式架构,无法很好地实现横向扩展,并且其稳定性依赖于硬件。出于架构升级、降低成本和云化等需求,越来越多的企业需要“去Oracle”。
日前,阿里云数据库技术专家樊文凯在2019数据技术嘉年华大会上,为大家分享了Oracle数据库异构上云的最佳实践。
本次分享主要围绕以下5个方面:
- Oracle数据迁云概述
- 数据库&应用迁云流程
- 数据库迁云解决方案
- 最佳实践
- 企业异构迁云建议
1、Oracle数据迁云概述
众所周知,Oracle是一个非常强大的综合数据库,但是Oracle也存在一些弱势,比如因为采用集中式架构,因此无法很好地实现横向扩展,并且其稳定性依赖于硬件,如需要IBM的小型机、EMC的存储等。
此外,Oracle数据库还存在技术依赖,很多使用者在开发时喜欢使用PL/SQL,因此在进行数据库异构升级或者架构转型时,不得不解决Oracle的技术依赖问题。
与此同时,Oracle数据库的成本较高,使用Oracle数据库需要搭配相应的小型机和存储,并且往往难以很好地实现规模化管理。
2、数据库&应用迁云流程
企业往往出于架构升级、降低成本和云化的需求,需要做“去O”。而“去O”一般分为以下几个步骤。
第一步:进行迁移方案评估,分析如何迁移数据库和应用,选用何种数据库代替。这个过程中需要储备很多知识,分析现有Oracle数据库的所有数据对象与应用的关系,也需要判断目标数据库是否兼容,迁移方案是否可行。
而选择合适的目标数据库来替换现有Oracle数据库是比较困难的,因为用MySQL与PostgreSQL等数据库替换Oracle时无法确定性能和负载的变化情况,只能通过不断地测试来完成。
此外,还需要尽量避免异构迁移的风险,需要保证迁移之后,应用和数据库能够良好适配。
第二步:数据库和应用改造,数据库切换肯定会存在不兼容,这里的不兼容将是数据库和应用架构转型的“最后一公里”。只有搞定这“最后一公里”,才能够完成整个迁移方案。在这部分需要考虑对于数据库和应用的改造方案。
第三步:数据库和应用的割接,数据全量迁移比较容易,但异构数据库增量迁移可能比较困难,因为会涉及大量数据变化、频繁的DDL,甚至数据库的数据类型、精度等不同,这些对于迁移而言都是巨大的挑战。
最后:数据库和应用的迁移评测,包括了数据库护航,因为Oracle性能非常强大。因此需要保证迁移到其他数据库之后,性能仍然能够满足业务系统的需求。
护航阶段需要考虑如何应对突发事件,如何回退,以及面对复杂的数据库和应用之间的关系,如何进行切换。
架构综合梳理
对于大部分企业而言,可能不只有一套Oracle数据库,同样也不只有一套应用,而数据库与数据库、应用与应用,应用与数据库之间可能存在各种各样的关系,但企业并没有一个综合的架构图或架构文档来记录这些内容,因此需要厘清数据库和应用的关系,方便规划数据库和应用异构改造的路线。
数据库场景梳理
此外,需要厘清现在Oracle数据库的业务情况,是OLTP、OLAP还是TP和AP的混合场景,只有这样才能有针对性地选择目标数据库并规划好替换方案。
改造内容
数据库改造存在很多语法难点,首先需要进行语法转换。因为不同数据库引擎支持的语法不同,因此需要转换DML、DDL和SQL的语法。
其次,还需要转换应用代码,因为某些情况下,SQL语句会内嵌在程序中,可能需要对于百万行代码逐行检查并修改其中的SQL语句,这样一来不仅工作量巨大,而且非常耗时。
确定改造方案
编制完数据库和应用架构迁移方案后,还需要逐一梳理改造点和功能点并进行测试,造成整个去O的过程前期准备需要很长的时间和很多的精力。
3、数据库迁云解决方案
众所周知,阿里巴巴是国内第一批实践去IOE理念的公司,当年阿里的去IOE之路走得并不那么顺滑,遇到了很多困难,也踩了很多坑,沉淀下来了很多经验,形成了今天的数据库迁云的最佳解决方案。
Oracle数据库和应用异构迁移痛点
Oracle数据库和应用异构迁云全链路方案
阿里云将数据库迁云的过程经验积累浓缩成为了数据库和应用迁移(简称:ADAM)产品。ADAM能够帮助我们分析整个IT系统的架构,并为迁移的目标数据库提供选型建议。
ADAM产品目前优选推荐两种数据库迁云方案,第一种OLTP平滑迁移解决方案,目标数据库是POLARDB语法高度兼容Oracle,因此仅需要少量改动,就可以直接迁移到阿里云或线下的POLARDB Box一体机中。该方案的特点是兼容性以及如何适配,能否弹性扩展以及整体成本。
第二种是OLAP数仓云化方案,针对提供数仓服务的Oracle数据库,可以将其迁移到阿里云的ADB for PG上。该方案的关注点是对Oracle分析型SQL的改造以及能够在云上实现真正的弹性扩展,以及成本的降低。
将Oracle数据库和应用异构迁移分为六步,即数据采集、数据库智能分析、应用评估分析、数据库和应用改造、项目实施和割接护航。
数据库和应用异构迁移全链解决方案工具
ADAM还为数据库和应用异构迁移提供了全流程解决方案工具,ADAM SaaS是Oracle迁移评估大脑,提供专业、丰富、可视化的数据库和应用评估服务,静态或动态交互报告,应用改造管理,支持自动生成测试迁移计划。
ADAM Studio是Oracle迁移改造产品,能够提供稳定、易用的数据库迁移测试与改造工具集,支持自动生成割接迁移计划,实现仿真与割接环境计划自动同步。
DSG for ADMA是ADAM认证Oracle迁移割接与同步产品,能够提供稳定、可靠的数据迁移与校验工具集,以ADAM迁移计划为核心,提供场景化、流程化、自动化的数据全量迁移、增量迁移、数据校验、数据修正能力。
数据传输工具DTS是阿里云数据库传输工机具,同样支持数据源间的数据交互,能够帮助用户实现全量和增量迁移数据。
ADAM关键技术
ADAM的核心是智能采集、智能评估、智能改造和配套工具。
智能采集不需要人为采集数据库和应用程序的内容,以采集agent产品实现自动采集,采集后数据将落到本地,保证了核心资产的数据安全。
智能评估会逐一对比不同数据库性能和语法等,并推荐目标数据库选型及生成数据库和应用异构迁移解决方案。而借助配套工具和智能改造系统,可以快速完成改造过程,如,将改造周期从6个月缩短到1个月。
ADAM产品根据数据库兼容性将数据库对象改造难度分为4级,并加以不同的处理。
此外,ADMA还提供了ADMA studio实现结构迁移和数据预迁移,SQL在线翻译工具能够将Oracle的SQL语句转化为其他数据库的SQL语句,PL/SQL转Java工具能够将PL/SQL语言转Java语言,此外还有SQL对测工具和ADAM认证迁移工具。
4、最佳实践
数据库迁云选型建议
根据使用Oracle特性的多少将Oracle数据库分为两类,弱O特性和强O特性。对于前者,推荐快速上云方案。因为所用的Oracle特性较少,因此快速迁移到开源数据库MySQL或PostgreSQL中,以降低成本。
而后者使用的Oracle特性较多,因此推荐使用POLARDB Oracle兼容版。ADAM提供了全链路的迁移方案。如果想实现整体架构升级,也可以直接对业务进行重构,实现业务的微服务划分和数据库的分库分表,进而快速地实现IT系统的架构转型。
POLARDB云原生分布式关系型数据库架构完全自主可控
POLARDB数据库具有很多优势,比如存储与计算分离、RPO=0、自动读写分离、数据驱动、软硬件协同,以及支持多模数据等。POLARDB是真正的云原生分布式关系型数据库,并且能够做到架构完全自主可控。
POLARDB BOX一体机
一些金融型企业可能对数据库的监管要求比较高,因此阿里云也提供了POLARDB BOX一体机,能够使得企业在线下机房享受到云原生数据库的技术红利。将云数据库带到线下机房,充分使用DBaaS能力带来的管控、性能便利。
AnalyticDB for PostgreSQL数据库
针对于数据仓库场景,阿里云AnalyticDB for PostgreSQL可以很好的支持大数据处理,实现真正的动态水平扩展。
5、企业异构迁云建议
Oracle数据库的迁云过程需要一套完整的方法论和产品,帮助实现架构评估、数据库选型、迁移评估以及数据库应用改造,帮助实现应用解耦,并且还需要专业的服务来助力实现真正的零停机迁移,最终实现企业异构迁云。
本文作者:Roin123
本文为云栖社区原创内容,未经允许不得转载。
最佳实践 | 数据库迁云解决方案选型 & 流程全解析的更多相关文章
- atitit.报表最佳实践oae 与报表引擎选型
atitit.报表最佳实践oae 与报表引擎选型 1. 报表的主要的功能and结构 2 1.1. 查询设计器(配置化,metadata in html) ,anno 2 1.2. 查询引擎 2 1.3 ...
- 最佳实践:阿里云VPC、ECS支持IPv6啦!
12月6日,阿里云宣布为企业提供全栈IPv6解决方案. 阿里云专有网络VPC.云服务器ECS,作为阿里云的核心产品,也于2018年11月底上线双栈VPC.双栈ECS,目前正在对外公测中. 那么如何在阿 ...
- Google Summer of Code谷歌编程之夏活动流程全解析(上)
本期由尔等同学来对话Casbin罗杨老师,为大家介绍开源及GSoC活动流程. > 罗杨:GSoC 2013.2015学生.GSoC期间在Nmap开源社区作为主力开发了Windows平台网络抓包工 ...
- jQuery ajax 流程全解析
实例解析java + jQuery + json工作过程(登录) 本文主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程 参考根据作者的账务管理系统(个人版) 源码下载 讲解 一. ...
- 探索云数据库最佳实践 阿里云开发者大会数据库专场邀你一起Code up!
盛夏.魔都.科技 三者在一起有什么惊喜? 7月24日,阿里云峰会·上海——开发者大会将在上海世博中心盛大启程,与未来世界的开发者们分享数据库.云原生.开源大数据等领域的技术干货,共同探讨前沿科技趋势, ...
- atitit.报告最佳实践oae 和报告引擎的选择
atitit.报告最佳实践oae 与报表引擎选型 1. 报表的基本的功能and结构 2 1.1. 查询设计器(配置化,metadata in html) ,anno 2 1.2. 查询引擎 2 1.3 ...
- Atitit.500 503 404错误处理最佳实践oak
Atitit.500 503 404错误处理最佳实践oak 1. 错误处理的流程(捕获>>日志>>db>>email alert) 1 2. 错误的捕获:strut ...
- 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践
1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...
- Greenplum最佳实践
一.最佳实践数据库参数部分 GP数据库参数配置 以下配置存于文件–postgresql.conf中,仅列出一些最常用的参数. shared_buffers:刚开始可以设置一个较小的值,比如总内存的15 ...
随机推荐
- audit的日志
audit审计, audio 声音, 音频 audit的日志, 有两个可能的地方: 一是, /var/log/messages 文件中 二是, 如果开启了audit服务, 则 在/var/log/au ...
- fedora如何使用themes主题?
DBus: 是一个 local 的IPC 进程间通信机制 如果是(一对一) 多对多的通信, 则DBUS 后台充当了一个路由器的角色. ibus: 是包含: python gtk dbus的 scim- ...
- 用Vue来实现音乐播放器(十五):处理得到的歌手数据
之前得到的歌手数据是用forEach遍历添加的 没有顺序性 我们希望得到的数据是title:"热门"的数据在最上面 title为字母的数据按字母从低到高顺序排列 var ho ...
- HTTP代理(转)
个人总结: 两篇文章介绍了https代理的两种方式: ·一种是普通http请求代理 ·一种是通过隧道进行基于tcp的代理 转两篇好文: HTTP 代理原理及实现(一) https://imququ.c ...
- 测开之路一百二十三:快速搭建python虚拟环境
前提:已装好python3.4+且环境可正常运行 一:手动搭建: 准备好一个工作目录 管理员运行cmd,进入到准备的目录里面 执行命令:python -m venv 虚拟环境名 激活虚拟环境(在ven ...
- Linked List Cycle(链表成环)
判断链表中是否有环 来源:https://leetcode.com/problems/linked-list-cycle Given a linked list, determine if it ha ...
- HDFS网络拓扑概念及机架感知(副本节点选择)
网络拓扑概念 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺.这里将两个节点间的带宽作为距离的衡量标准. 节点距离:两个节点 ...
- 对PInvoke函数函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
C#引入外部非托管类库时,有时候会出现“对PInvoke函数调用导致堆栈不对称.原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配”的报错. 通常在DllImport标签内加入属性Call ...
- (六:NIO系列) 相关设计模式
出处: 反应器模式 vs 观察者模式 反应器模式 vs 生产者消费者模式 反应器模式 vs 观察者模式 反应器模式 是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式.当请求抵达 ...
- P5443 [APIO2019]桥梁
传送门 子任务 $4$ 告诉我们可以离线搞带权并查集 从大到小枚举询问,从大到小连边 如果没有修改操作就可以过了 但是有修改,考虑最暴力的暴力,搞可撤销并查集 同样先离线,从大到小处理询问时,按原边权 ...