百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

独家揭秘东南亚电商平台 Prestomall 去 Oracle 的全过程

mhr18 2025-02-10 13:29 33 浏览 0 评论


很多人都说:“现在的东南亚就像是坐着时光机,回到了 90 年代的中国市场。” 的确,在互联网领域,我们经常能在东南亚看到中国互联网发展历程的影子。本文我们将详细介绍一下东南亚企业的去 Oracle 经历,揭秘中国经验是如何复制到东南亚市场的。

Prestomall 是一家成立于 2014 年的东南亚电商企业,此前这家企业一直使用的是 Oracle 数据库。所有业务全部由一套 Oracle 数据库支持,同时还有一套 Oracle 数据库用来支撑测试环境。

2018 年 8 月,距离 Oracle 数据库软件授权证到期还有 3 个月的时间,Prestomall 决定不再使用 Oracle 数据库,并开始寻找替代方案。为什么 Prestomall 决定在这个时候去 Oracle 呢?选定的替代方案是什么呢?整个迁移过程又是如何做的?…为了搞清楚这些问题,InfoQ 采访了参与 Prestomall 去 Oracle 全过程的阿里云技术团队。

为什么要去 Oracle?

过去几年,随着整个东南亚移动互联网的发展,Prestomall 也迎来了增长黄金期。以营收规模计算,过去 3 个财年,该公司实现了 256% 的增长。Prestomall 业务的成功使得公司需要处理的数据量出现井喷式的增长,IT 费用也随之水涨船高,这也是 Prestomall 决定去 Oracle 的主要原因。

Oracle 的 License 费用太高了,随着 Prestomall 客户量和数据量的增加,这部分费用占据了大部分的 IT 预算,制约了其业务的发展,所以在授权还剩三个月的时候,Prestomall 开始寻找 Oracle 的替代方案。

另外,随着业务的快速发展,现有的 Oracle 数据库垂直架构限制了其弹性增长的需求,传统数据库不适应快速的互联网 + 发展,这也使得 Prestomall 下定决心替换 Oracle。

技术选型

减少 IT 费用是 Prestomall 去 Oracle 的主要原因,所以最初在选择替代方案时,IT 费用是一个重要的指标,同时由于授权即将到期,迁移时间也是需要考虑的重要因素。

最开始的选型方案:更倾向于开源数据库

据了解,Prestomall 最初想到的替代方案有三种,分别是:

第一种,采用 Oracle 外的另一种商用数据库,如 IBM DB2, 微软 SQL Server 等;

第二种,使用开源数据库,例如 MySQL、PostgreSQL;

第三种,保留 Oracle,继续续费 License;


Prestomall 想要彻底去 Oracle,摆脱传统传统商业数据库厂商的锁定,所以排除了第一种和第三种方案。其实保留 Oracle 或者使用其它商业数据库本就是权宜之举,除非没有可行的办法或者时间来不及,才会保留 Oracle,毕竟业务的正常运行是必须要保障的事情。不过,Prestomall 团队也意识到,如果继续拖延的话,未来去 Oracle 的困难和挑战将会更大。


经过一番评估之后,Prestomall 团队更倾向于选择开源数据。在备选的开源数据库产品中,PostgreSQL 比 MySQL 提供了更多的 SQL 功能,应用方面也与 Oracle 更加贴近,并且迁移成本也较低,自然成为了技术选型的第一选择。

在有了初步的技术选型之后,Prestomall 团队就迁移方案做了进一步细化的评估:

第一, 选取的数据库与已有的 Oracle 有多大的兼容性 ?

第二, 延用已有的本地部署解决方案,还是迁移上云?

第三, 迁移的工作量和时间究竟会多久?

第四, 采用新的技术方案,是否有足够的技术支持?

最终选型方案:PolarDB + ADAM + DTS + 专家服务

Prestomall 最终选定的替代方案是 PolarDB + ADAM + DTS + 专家服务。说实话,这个方案有点出人意料,毕竟最开始这个方案并没有出现在 Prestomall 的选择列表中,而且 Prestomall 原有的 Oracle 数据库是部署在本地的,选择了 PolarDB 就意味着数据库要迁移上云。

最终方案中的 PolarDB 是阿里云自主研发的关系型分布式云原生数据库,兼容三种数据库引擎:MySQL、PostgreSQL、高度兼容 Oracle 语法;ADAM 是数据库和应用迁移服务,可覆盖 Oracle 迁移的全生命周期;DTS 支持 RDBMS、NoSQL、OLAP 等数据源间的数据交互,集数据迁移 / 订阅 / 同步于一体。

那么,为什么最终会选择这个方案呢?阿里云数据库与应用迁移产品总监杨霖表示主要原因其实有三个:


一是上云适配业务发展。之前 Prestomall 使用的是本地 Oracle 数据库,而选择 PolarDB 就可以享受到云数据库弹性扩展的能力,按需申请资源,对于电商企业而言这种模式非常适配业务。


二是迁移成本最优。这里的成本不单单是指迁移后数据库资源的使用费用,同时也包括了迁移的工作量、代码的修改量以及迁移时间等其它成本。经过评估,PolarDBD 与 Oracle 数据库的兼容性非常高,整体迁移成本最优。


三是风险整体可控,技术支持有保障。2000 年,阿里开始使用 Oracle 数据库,2008 年,决定去 Oracle 数据库。当前 Prestomall 的遭遇,跟十年前的阿里一样,而在过去十几年中,阿里的技术人员趟出了从 Oracle-RAC 数据库到 PolarDB,从云下到云上的搬迁,积累了很多经验,并沉淀了类似 ADAM、DTS 这样的产品。这些成功经验对 Prestomall 来说有着很大的吸引力。

据透露,在最初的提案阶段,阿里云数据库团队通过 ADAM 给出了一个超详细的改造计划,包括 DB 层面如何去自动映射、自动解析、自动转换,以及应用层每一行代码如何改造。同时,还对不同数据库产品的兼容性做了比较定量的代码改造分析。


阿里云数据库国际站产品负责人德迈介绍:“使用 ADAM 分析之后,我们发现,如果不使用 ADAM,从 Oracle 迁移到 PostgreSQL,80% 以上的代码是需要修改的,如果使用 ADAM 迁移到 PostgreSQL,10% 左右的代码是需要修改的,而如果迁移到 PolarDB,只有 5% 的代码是需要修改的。”而这也是 PolarDB 入选最终迁移方案的重要原因。

迁移过程

确定了迁移方案之后,接下来要做的就是具体的迁移工作了。据了解,Prestomall 整个去 Oracle 可以六个阶段:


第一步是去 Oracle 的技术选型,前面我们详细介绍了选型过程,这里不再赘述。


第二步是去 Oracle 的赋能,即在实现与 Oracle 数据库解耦的同时,实现业务 IT 架构升级,获得更大的业务自由度。


第三步是业务改造,对于所有想要去 Oracle 的客户来说,这是最难的部分。业务改造面临的两大问题是工作量评估和兼容性。


第四步是数据迁移,不仅要保证全量和增量数据的一致性,同时还要提供数据回流的能力,让数据上得来下得去。


第五步是测试与调优,虽然 PolarDB 与 Oracle 兼容,但是始终是两个产品,各自有各自的产品特性,因此迁移上去之后还需要做进一步的调试。


第六步是割接与护航,在完成上线割接之后,还会有两个星期的阿里技术专家的保驾护航。

值得一提的是,在迁移过程中,ADAM 有两个功能发挥了很大的作用,一个是自动转换的功能,可以帮助使用者将原有的 Oracle SQL 自动改造成 PolarDB 兼容的 SQL。另一个是自动学习功能,虽然 PolarDB 与 Oracle 是高度兼容的,但也会有语法差异,而 ADAM 的 SQL 语法染色功能会使用不同的颜色来标注语法差异,帮助使用者快速领悟到语法差异规则。

据了解,目前 Prestomall 的业务流量几乎全部迁移到了 PolarDB 上,只剩邮件系统中的两张表还在做反向同步。

另外提到数据库迁移,很多人都会关心安全性的问题,尤其 Prestomall 作为东南亚的一家电商平台,在流程方面会更关注业务保护。据阿里云高级 DBA 专家郑旦介绍,在数据保护和业务稳定方面,阿里云主要做了两个层面的工作:第一个层面,DTS 不仅完成了数据迁移的工作,同时还在这个过程中做了数据校验;第二个层面,ADAM 对 Prestomall 系统的兼容性和兼容性结果做了一致性的检查。

写在最后

业界一直有“天下苦 Oracle 久矣”的说法,但是在实际去 Oracle 的过程中,总会犯难。那么,业界在去 Oracle 实践时,通常都有哪些选择呢?

阿里云智能数据库事业部产品总监叶正盛(斗佛)表示:“其实去 Oracle 的选择不是很多,业内常使用的基本上只有三种,一种是迁移到其它商业数据库,但这种方式用的较少;第二种是选择一种兼容度较高的数据库,这种方式的优势是业务基本不用做大的改造;第三种是切换到分布式数据库,这种方式的劣势是需要在业务上做重新设计,但优点是完成之后,可以享受分布式带来的红利。”

相关推荐

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

备份软件调用rman接口备份报错RMAN-06820 ORA-17629 ORA-17627

一、报错描述:备份归档报错无法连接主库进行归档,监听问题12541RMAN-06820:WARNING:failedtoarchivecurrentlogatprimarydatab...

增量备份修复物理备库gap(增量备份恢复数据库步骤)

适用场景:主备不同步,主库归档日志已删除且无备份.解决方案:主库增量备份修复dg备库中的gap.具体步骤:1、停止同步>alterdatabaserecovermanagedstand...

一分钟看懂,如何白嫖sql工具(白嫖数据库)

如何白嫖sql工具?1分钟看懂。今天分享一个免费的sql工具,毕竟现在比较火的NavicatDbeaverDatagrip都需要付费才能使用完整功能。幸亏今天有了这款SQLynx,它不仅支持国内外...

「开源资讯」数据管理与可视化分析平台,DataGear 1.6.1 发布

前言数据齿轮(DataGear)是一款数据库管理系统,使用Java语言开发,采用浏览器/服务器架构,以数据管理为核心功能,支持多种数据库。它的数据模型并不是原始的数据库表,而是融合了数据库表及表间关系...

您还在手工打造增删改查代码么,该神器带你脱离苦海

作为Java开发程序,日常开发中,都会使用Spring框架,完成日常的功能开发;在相关业务系统中,难免存在各种增删改查的接口需求开发。通常来说,实现增删改查有如下几个方式:纯手工打造,编写各种Cont...

Linux基础知识(linux基础知识点及答案)

系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...

PL/SQL 杂谈(二)(pl/sql developer使用)

承接(一)部分。我们从结构和功能这两个方面展示PL/SQL的关键要素。可以看看PL/SQL的优雅的代码。写出一个好的代码,就和文科生写出一篇优秀的作文一样,那么赏心悦目。1、与SQL的集成PL/S...

电商ERP系统哪个好用?(电商erp哪个好一点)

电商ERP系统哪个好用?做电商的,谁还没被ERP折腾过?有老板说:“我们早就上了ERP,订单、库存、财务全搞定,系统用得飞起。”也有运营吐槽:“系统是上了,可库存老不准,订单漏单错单天天有,财务对账还...

汽车检测线系统实例,看集中控制与PLC分布控制

PLC可编程控制器,上个世纪70年代初,为取代早期继电器控制线路,开始采取存储指令方式,完成顺序控制而设计的。开始仅有逻辑运算、计时、计数等简单功能。随着微处理的发展,PLC可编程能力日益提高,已经能...

苹果五件套成公司年会奖品主角,几大小技巧教你玩转苹果新品

钱江晚报·小时新闻记者张云山随着春节的临近,各家大公司的年会又将陆续上演。上周,各大游戏公司的年会大奖,苹果五件套又成了标配。在上海的游戏公司中,莉莉丝奖品列表拉得相当长,从特等奖到九等奖还包含了特...

取消回复欢迎 发表评论: