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数据库的迁云过程需要一套完整的方法论和产品,帮助实现架构评估、数据库选型、迁移评估以及数据库应用改造,帮助实现应用解耦,并且还需要专业的服务来助力实现真正的零停机迁移,最终实现企业异构迁云。
原文链接
本文为云栖社区原创内容,未经允许不得转载。