m6米乐安卓版下载-米乐app官网下载
5

汤臣倍健去oracle迁移到 oceanbase 初次尝试 -m6米乐安卓版下载

2021-12-01
3712

为响应公司拥抱云原生去oracle战略方向,从今年7月份开始,我们已经开始了各种调研。


先聊聊待迁移的系统

我们拿公司内部核心营销系统(下称“营销云”)作为试点,营销云最早要追溯到2014年,当年公司购买了oracle的siebel系统,

基于siebel开发了配套的营销系统,囊括公司销售渠道,销售订单等等功能。这是营销云的前身。因为siebel本身比较重量级,每次营销云有功能扩展都需要动到siebel,

所以后面营销云逐步改造脱离siebel,直到2019年完成全部功能脱离,但是用的还是siebel的数据库。目前现状仍然是单体应用。


随着业务的发展,目前营销云已经有上千个页面。业务功能复杂,与集团其他应用系统有深度的集成。这大大提高了我们更换数据库的难度。

系统是以saas的形式为全国各地经销商服务。为了不影响业务,我们一开始定的基调是,不能大范围修改代码以及原有sql语句。

一开始我们找到了polardb,polardb可以兼容oracle语法。无奈我们在做调研验证的时候,卡在了数据迁移这步。刚好这时我们又找到了oceanbase,由此开始了

oceanbase的尝试。


兼容性验证

oceanbase号称可以兼容90%以上oracle常用语法以及存储过程等等,从oracle迁移到ob可以无缝或少量修改即可。这正好满足我们的要求,我们马上开始了验证阶段。

我们首先使用了ob团队提供的工具进行oracle版本兼容性的校验,校验结果是100%兼容。


数据迁移验证

我们马上进行了数据迁移的验证。为了模拟真实的情况,我们直接拿生产环境的oracle库来迁移。去除oracle本身的日志,整个库的数据量大小是20-30g,涉及数据库对象467个(表 视图)

数据怎么迁移,我们遇到三个难点。

1、营销云应用以及oracle都部署在广州的私有云,ob那时在华南还没开站点,我们不希望应用在广州,库在华东

2、我们服务不能停太久,必须要尽可能缩短迁移时间,留足够时间验证生产问题

3、如何从私有云oracle传输到ob。


我们的m6米乐安卓版下载的解决方案:

经过跟ob团队的深入交流,他们把原计划在12月在华南开站的工作提前到9月来做了。所以接下来是数据传输的问题了。


我们首先从阿里云上申请一台服务器安装跟生产环境同版本的oracle, 从生产环境oracle导出数据,通过拉专线的方式把数据传输到阿里云服务器,再把数据导入到服务器上的oracle里面。

最后通过ob提供的oms工具迁移阿里云oracle的数据至ob。整个迁移过程耗时在3-4小时,这个是我们能接受的。


oms工具迁移分两步,先迁移结构,再迁移数据。在迁移结构的时候,遇到个别表结构校验的警告信息,我们忽略继续迁移,但没有对后续数据迁移造成影响。


迁移后应用验证

到此,数据库已成功迁移至ob。接下来是营销云应用的改造。我们的改造基本上就是引入ob的jdbc驱动包,以及修改数据库连接。

抽取了一个相对复杂的业务功能做验证。主要验证 :

1、sql语法兼容性

2、查询耗时


得出结论:

1、sql语法支持绝大部分,包括常用的oracle函数。

2、性能问题,开始的时候明显感觉比原来用oracle的时候响应慢了不少。个别语句直接报查询超时。经ob团队的协助,定位出我们的表没有在关键字段创建索引,把索引建好后查询响应跟原oracle相当。在得知这个问题之后,笔者在ob后台拉出所有慢sql,都做了一遍索引优化。


这里抛个问题,原oracle相同的表也是没有建索引的,但在用oracle的时候没有表现出性能问题。后来笔者在oracle上也建上相同的索引,oracle的查询性能再次提高,但是总体差别不大。(本来就已经是几十毫秒耗时)


后续

阵痛了半个月之后,目前营销云已经在稳定运行。

笔者在日常操作ob的过程中,总结了如下几点ob需要优化的地方

1、merge语句的using 子语句只支持单表,不支持复杂查询。

2、dblink暂时还不支持 ob连oracle(ob团队说3.0版本会支持)

3、批量提交的数据量大小目前限制死100m。原来用oracle可以正常执行的语句,例如merge,  insert select ,create table select,等等语句,遇到数据量大的时候会直接报错

4、管理后台做的略为粗糙了一点,例如在查看慢sql的时候,个别sql比较长,页面直接就截断了,无法得知完整sql语句。截止到笔者写这篇文章的时候,这问题还没修复


我们此次迁移算是公司的先头部队,后续其他系统可能也会做迁移,届时会重点关注dblink的模块。因为我们几个核心系统大量用到dblink。

最后修改时间:2021-12-01 17:28:15
「喜欢文章,快来给作者赞赏墨值吧」
1人已赞赏
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
网站地图