华人澳洲中文论坛

热图推荐

    都说国产数据库90%兼容Oracle,为什么迁徙过程当中总遇困难?

    [复制链接]

    2022-8-9 21:41:24 48 0




    Q1
    目前国产数据库与Oracle比拟次要欠缺在哪些方面?
    孔再华:我所在的民生银行正在做数据库国产化革新,选型时片面剖析了国产数据库比拟于Oracle等传统商业数据库的欠缺的地方。
    一、机能。咱们看到目前国产数据库在机能上少数会并重于某个标的目的,有些是OLTP的机能较好,有些则是OLAP的机能较好,所以从HTAP的角度来讲,国产数据库与Oracle比拟仍是存在一定的差距。
    但也无妨从另外一个标的目的斟酌:咱们是否由于机能这个问题才做国产化革新的呢?显然不是。所以咱们需求解决的是怎么样去战胜数据库国产化的机能问题。一方面,不异性能类型的数据库,需求采取不同的国产化计划;另外一方面,像散布式数据库、内存数据库这样一些超融会的数据库,也是能够“弯道超车”之处,咱们能够将本身的需要融入到这些数据库里进行革新和完成。
    二、功用性。Oracle等传统商业数据库阅历了几十年的开展,功用已至关成熟,周边生态也十分完美,这些关于“年老”的国产数据库来讲还有很长的路要走。
    在这个问题上,目前国产数据库可粗略分为两品种型,一种是研发之初就朝着接轨Oracle生态的标的目的,照着Oracle的功用做一遍,整体来讲可能做到80%-90%,还存在一定欠缺;另外一种则是跟Oracle彻底不同,但其实数据库在保障机能和次要功用的条件下,有得多功用差别是很正常的,好比Oracle和DB2就是很纷歧样的两款数据库,所以咱们也不克不及仅仅参照Oracle来做比较。
    固然这些功用差别也是咱们需求战胜的难题,关于本来用得很纯熟的功用,国产化后咱们可能需求另找一些代替计划,乃至联结一些国际厂商或第三方厂商去改良这些功用和生态环境。所以国产数据库在功用性方面的欠缺,需求大家独特致力。
    三、可用性。像Oracle这么成熟的数据库,在每次新版本公布时都还会有少量bug的修复,但因为目前国产数据库的使用率还不算高,大家探坑的时机也就未几,使用起来才发现有不少bug也是能够预见的状况。所以在可用性这方面一样需求大家独特致力,一同去踩坑,一同将国产数据库推向更好的标的目的。
    Q2
    Oracle往往与运用耦合度较高,迁徙过程当中会波及运用迁徙和革新,如何评价革新量和革新难度?如何保障兼容性?
    孔再华:这是一个十分好的问题,也是咱们目后面临的最大痛点。咱们银行以前在使用Oracle的过程当中,在运用开发时少量使用到Oracle提供的一些功用,国产化后就面临着很大的革新难度。所以说,怎么进行革新和迁徙?怎么样评价革新难度?的确是很症结的问题。
    咱们做国产数据库选型时,个别会看它们对Oracle的兼容性。得多国产数据库都会宣称,本人对Oracle的兼容机能达到百分之九十几。那究竟是百分之九十几呢?其实这个精确的数据无需叫真,由于剩下的百分之几也都是咱们在迁徙过程当中常常会碰到的货色,为了做好迁徙任务,咱们少不了需求一定的借力。
    在运用革新迁徙方面,咱们最大的难点是:怎么样评价运用里有哪些货色是不兼容的?
    这时候就需求利用一些工具,好比代码扫描工具、SQL抓取工具等。咱们联结了一些第三方的厂商,让他们根据咱们的需要开发一些工具,使用这些工具扫描代码就可以把外面的SQL整个扫描出来,或者扫描数据库,无论是出产环境仍是测试环境的,均可以把已经跑过的SQL整个找出来。当拿到这些货色之后,咱们再放到一个评价的工具里去验证,原来的语法是不是能在新的数据库里履行。关于不克不及够履行的语法,则需求保举一些倡议去进行革新。
    所以这些工具的成熟与否,跟咱们迁徙革新的进程是不是顺利非亲非故。工具假如好用,迁徙起来就更便捷,假如欠好用,那得多时分都需求报酬判别、报酬寻觅代替计划,乃至报酬地把全部运用进行革新,而不单单是革新SQL。
    在数据库迁徙方面,金融行业得多数据库都是7*24小时任务的,咱们并无太多时间去做离线的数据迁徙,所以要评价在数据迁徙的过程当中,DDL的对象过来是不是可行?数据离线的时间是不是被允许?
    对于DDL的对象,首先,从Oracle迁徙到国产数据库,确定有相干资料引见一一对应的瓜葛。而后,需求一个迁徙工具,这个工具担任将原有Oracle里的字段类型、对象,转换成国产数据库的对象。经评价,现有的开源工具和商业工具,关于咱们迁徙到国产数据库中的一些规定类型的革新都稍显缺乏,所以咱们跟相干的厂商协作,把这些规定梳理好、把相应的工具造出来,而且在咱们迁徙过程当中不断加以完美,这个工具就会变得愈来愈好使。
    由此,咱们在DDL的转换上问题就不大了,但接上去问题对比大的是存储进程这块,还有一些用到Oracle本身函数的货色。一样的,咱们也需求进行具体的梳理,而后打造相干的工具。其实咱们以往不保举大家去使用存储进程,由于使用了存储进程就至关于跟对应的数据库绑定了。咱们始终保举大家简略地使用数据库,由于数据库作为后端最中心的一个提供办事的组件,需求很高的可用性,所以仍是要尽可能给数据库减负,而不是一味地依赖数据库的这些才能。假如以前曾经这么干了,就只能经过工具,逐一发现不合适之处进行革新。假如将来本人无机会做新数据库的开发,一定要防止使用触发器、存储进程等这些跟数据库耦合度很高的货色。
    当解决了这些问题之后,接上去就是对于数据迁徙这块。假如是从Oracle迁徙到其它数据库,可能会有些不错的办法能够做在线迁徙。由于Oracle自身或者一些第三方厂商都拥有在线迁徙工具,这些工具会经过扫日志的形式同步数据,而后在需求做切换时,开业务同步最初一段数据,切换业务到新的国产数据库。
    但也有可能这些工具其实不反对你选用的国产数据库,这类状况就需求独自造一个离线工具进行评价,从Oracle到国产数据库里怎么革新。最佳仍是找厂家协助写一个在线迁徙工具,这个在线迁徙最佳不要落地,可以去并发、不落地地将Oracle的数据查问出来,放到国产数据库里去。
    关于一些特别大的表,咱们可能还需求进步它的并发,还需求工具提供单表并发的功用。经过写一定的查问语句,把单内外的内容拆成更多份,而后每一个份之间再进行并行,进步迁徙速度。
    整体来讲,做代替Oracle的国产化革新其实十分难题,但这注定是一个工作,是一个指标,咱们就是要这么去干!以上我所讲述的,就是怎么在各环节采用适合的形式来放慢国产化革新的倡议,但愿能对大家有所启示。
    为助力企业晋升智能运维(AIOps)技术理论才能,增进场景运用落地,中国信息通讯钻研院云计算与大数据钻研所联结dbaplus社群,携手来自蚂蚁团体、网易游戏、建信金科的AIOps专家,环抱“释放AI效能,迈向智能运维深水区”这一主题发展线上直播分享,针对智能化运维(AIOps)才能成熟度模型系列规范、金融运维数字化转型、AIOps合用性、智能运维平台构建等话题进行深度讨论,为各行各业的智能运维才能建立提供鉴戒和启示。


    复制评论区链接到微信,可间接收费观看哦~
    dbaplus社群是环抱Database、BigData、AIOps的企业级专业社群。资深大咖、技术干货,天天精品原创文章推送,每周线上技术分享,每个月线下技术沙龙,每季度Gdevops&DAMS行业大会。
    关注大众号【dbaplus社群】,获得更多原创技术文章和精选工具下载

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题28

    帖子108

    积分312

    图文推荐