您的位置:  首页 > 技术杂谈 > 正文

GaussDB技术解读系列:如何迁移到GaussDB?

2023-12-04 11:01 https://my.oschina.net/gaussdb/blog/10315931 Gauss松鼠会 次阅读 条评论

迁移是数据库选型过程中客户最为关心的话题之一,经过大量的沟通调研,我们总结了三个客户在数据库迁移方面的主要期望:迁移不影响业务运行(安心),迁移不能丢数据(放心),迁移实施起来简单(省心)。

本文从客户视角的三个疑问出发,一起了解华为云GaussDB数据库的迁移解决方案具有哪些核心技术,如何做到让客户在迁移过程中感到安心、放心、省心。

问题一:能不能搬?

每种数据库都有自己的一些特定的“脾气”,比如Oracle的语言直接在GaussDB上运行不一定能工作,这个就是所谓的“语言不通”,这种场景称之为“异构数据库的迁移”,“语言不通”是长期以来异构数据库迁移替换的最大技术障碍。下面我们从技术和效果两方面来看。

技术方面,华为是怎么解决的?

华为的迁移套件中有一款叫UGO的工具,它像“翻译大师一样”,把这个难题分成两部分来看:

第一部分 读懂Oracle语言:Oracle的语法对应一个个巨大的树形结构,并由一些关键元素构成,比如一条Oracle建表语句,表名是什么,有几列,每列的名字是什么等等。UGO具有专属的语法分析器,能够顺着语法树和枚举探测出每条Oracle的语句元素构成,这样最终理解了语义,读懂了Oracle语言。

第二部分 根据知识库“翻译”成GaussDB的写法:根据刚才的描述,这个技术很像是做“翻译”工作,生活经验告诉我们,翻译的水平高低取决于接触的训练场景和词汇样本是否足够大,依靠流程IT和工商银行这两个世界上最复杂的Oracle业务环境训练,截止到现在,华为云UGO已经被注入了几千万行级的代码训练量,这个是业界公布的最高记录,同类产品没有这方面的相关介绍。

那效果究竟如何?

“翻译大师”UGO依托华为独有的训练场景,接入Oracle后,通常几分钟可以生成一份详细的评估报告,让迁移至GaussDB的可行性一目了然。在工行迁移攻坚战的最高挑战场景,千万级的存储过程迁移中,经过UGO的处理,Oracle 95%代码转化后可以在GaussDB直接运行,去O已经非常接近自动化。

问题二:怎么迁移让业务无感知?

数据库一个非常繁忙的软件,每过一秒都有可能会有成千上万的数据发生变化,如何在数据高度变化的动态过程中将数据库迁走,比较容易想到的做法是将业务停机来确保数据迁移不丢失,但这对于一个核心业务来说是无法接受的,这样就提出了一个技术问题,有没有一种办法可以在业务运行过程中将数据库迁移到GaussDB,也就是业界常说的热迁移,或者说在线迁移。

技术方面,华为的迁移套件中有一款叫DRS的工具,它像“数据的复制机”一样,能够做到在Oracle运行过程中迁移到GaussDB。DRS工具从技术上将这个问题分为了三部分:

第一部分 存量数据搬迁,DRS采用行级并行方式抽取数据,抽取性能最大可达100+MB/s,同时客户可以在源端资源允许情况下设置迁移速度,做到按照想要的速度迁移,想快就快,想慢就慢;

第二部分 增量数据搬迁,数据库有一个组件叫日志,它用快速而有序的方式记录了数据库中每一个数据的变化,是数据库停电不丢数据的关键技术,DRS采用技术手段可以将日志记录的事情重演一遍,这个过程就好像将Oracle数据变化录制下来,将同样的操作再在GaussDB上操作一遍,这个技术业界一般称为CDC技术(change data capture)。不仅如此,DRS还采用了技术手段将一条条数据的操作优化为并行运行,让两边数据既能确保不丢失,又能大大提升同步速度,通常Oracle数据库新产生的数据在1s内就可以在GaussDB看到,即使是一个非常庞大繁忙的Oracle系统(比如一天日志量达到TB级别)也能做到秒级同步。

第三部分 动态数据对比,DRS内置了一套专利算法,每隔x分钟(可配置)识别增量日志中变化的数据行,并根据数据行的主键值,查询和对比源库和目标库的数据,从而阶段性验证Oracle和GaussDB的数据一致性,如此循环操作,持续刷新一致性比对结果,得到最终一致性结论。而不用停止Oracle数据库的业务接入,进行长时间的数据校对。

效果如何?

“数据的复制机”DRS通过CDC技术实现在线迁移,做到Oracle在运行过程中将数据迁移至GaussDB,数据可对比零丢失,业务可自由选择割接时间,并且搬迁过程中业务无感。总结下来就是,业务无感->安心,数据不丢失->放心,自动化数据同步->省心。

问题三:怎么确保迁移后业务稳定运行?

上面解答了能不能迁移,怎么迁移的问题,那么迁移至GaussDB后能否平稳度过业务峰值的考验,技术上有了上面UGO和DRS的基础,我们能够在Oracle数据库上自动采集数据了。业务上的一个个请求是从应用程序发送至Oracle数据库的,里面有查询请求,也有数据修改请求,这些请求的总和就是业务流量,业务高峰期采集到业务流量后通过UGO进行语法转化,结合通过DRS构建的真实生产环境数据,这样可以形成了基于GaussDB数据库的业务仿真压测环境。

通过仿真压测,客户可以直接预测GaussDB能否稳定度过业务洪峰,并提前识别是否需要做规格的调整,对于业务本身,也支持细粒度切换的迁移,DRS可以让数据进行双向传输,可并线逐步切流,观察GaussDB的业务承载能力,具备随时可回退能力。

 

最后,再总结一下华为云GaussDB的全套迁移方案, “翻译大师”UGO解决语言不通语法转化的问题,“数据的复制机”DRS解决业务不停机数据迁移的问题,同时DRS工具还提供仿真压测、数据一致性对比等配套能力。

通过这些能力,华为云GaussDB已经在金融各大行项目中广泛应用,同时华为云数据库迁移解决方案是信通院数据库迁移评测中首个获得最高级迁移能力的厂商,华为云GaussDB数据库致力于通过技术,给客户提供一套安心、放心、省心的迁移解决方案。

 

今天的分享就到这里了,谢谢大家,欢迎留言讨论交流~ 

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接