三问三答:细数GaussDB迁移的核心技术
摘要:本文从客户视角的三个疑问出发,一起了解华为云GaussDB数据库的迁移解决方案具有哪些核心技术,如何做到让客户迁移过程安心、放心、省心。
迁移是数据库选型过程中客户最为关心的话题之一,经过大量的沟通调研,我们总结客户在数据库迁移方面的主要期望:迁移不影响业务运行(安心)、迁移不能丢数据(放心)、迁移实施起来简单(省心)。
本文从客户视角的三个疑问出发,一起了解华为云GaussDB数据库的迁移解决方案具有哪些核心技术,如何做到让客户迁移过程安心、放心、省心。
问题1:能不能搬?
每种数据库都有自己的一些特定的“脾气”,比如Oracle的语言直接在GaussDB上运行不一定能工作,这个就是所谓的“语言不通”,这种场景称之为“异构数据库的迁移”,“语言不通”是长期以来异构数据库迁移替换的最大技术障碍。下面我们从技术和效果两方面来看。
技术方面,华为是怎么解决的?
华为的迁移套件中有一款叫UGO的工具,它像“翻译大师一样”,把这个难题分成两部分来看:
第一部分 读懂Oracle语言:Oracle的语法对应一个个巨大的树形结构,并由一些关键元素构成,比如一条Oracle建表语句,表名是什么,有几列,每列的名字是什么等等。UGO具有专属的语法分析器,能够顺着语法树和枚举探测出每条Oracle的语句元素构成,这样最终理解了语义,读懂了Oracle语言。
第二部分 根据知识库“翻译”成GaussDB的写法:根据刚才的描述,这个技术很像是做“翻译”工作,生活经验告诉我们,翻译的水平高低取决于接触的训练场景和词汇样本是否足够大,华为UGO依靠流程IT和工商银行这两个世界上最复杂的Oracle业务环境训练,截止到现在,已经向UGO注入了几千万行级的代码训练量,这个是业界公布的最高纪录,同类产品没有这方面的相关介绍。
那效果究竟如何?
“翻译大师”UGO依托华为独有的训练场景,接入Oracle后,通常几分钟可以生成一份详细的评估报告,让迁移至GaussDB的可行性一目了然。在工行迁移攻坚战的最高挑战场景,千万级的存储过程迁移中,经过UGO的处理,Oracle 95%代码转化后可以在GaussDB直接运行,去O已经非常接近自动化。
问题2:怎么迁移让业务无感知?
数据库一个非常繁忙的软件,每一秒过去可能成千上万的数据发生了变化,如何在数据高度变化的动态过程中将数据库迁走,比较容易想到的做法是将业务停机来确保数据迁移不丢失,但这对于一个核心业务来说是无法接受的,这样就提出了一个技术问题,有没有一种办法可以在业务运行过程中将数据库迁移到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,数据可对比零丢失,业务可自由选择割接时间,并且搬迁过程中业务无感。总结下来就是,业务无感->安心,数据不丢失->放心,自动化数据同步->省心;
问题3:怎么确保迁移后业务稳定运行?
上面解答了能不能迁移,怎么迁移的问题,那么迁移至GaussDB后能否平稳度过业务峰值的考验,技术上有了上面UGO和DRS的基础,我们能够在Oracle数据库上自动采集数据了。业务上的一个个请求是从应用程序发送至Oracle数据库的,里面有查询请求,也有数据修改请求,这些请求的总和就是业务流量了,业务高峰期采集到业务流量后通过UGO进行语法转化,结合通过DRS构建的真实生产环境数据,这样可以形成了基于GaussDB数据库的业务仿真压测环境。
通过仿真压测,客户可以直接预测GaussDB能否稳定度过业务洪峰,并提前识别是否需要做规格的调整,对于业务本身,也支持细粒度切换的迁移,DRS可以让数据进行双向传输,可并线逐步切流,观察GaussDB的业务承载能力,具备随时可回退能力。
最后,再总结一下华为GaussDB的全套迁移方案, “翻译大师”UGO解决语言不通语法转化的问题,“数据的复制机”DRS解决业务不停机数据迁移的问题,同时DRS工具还提供仿真压测、数据一致性对比等配套能力。通过这些能力华为在金融各大行项目中已经大量落地,同时华为云数据库迁移解决方案是信通院数据库迁移评测中首个获得最高级迁移能力的厂商,华为云GaussDB数据库致力于通过技术,给客户提供一套安心、放心、省心的迁移解决方案。
三问三答:细数GaussDB迁移的核心技术的更多相关文章
- RESTful三问
我觉得学习一个技术,其实就是要弄明白三件事情:是什么(what),为什么(why),怎么用(how).正是所谓的三W方法. 所以打算总结一个"三问"系列.为了自己学习,也分享给别人 ...
- MYSQL加入远程用户或同意远程訪问三种方法
加入远程用户admin密码为password GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'password\' WIT ...
- 【GDI+编程】--从三问开始
一. GDI+三问 1.1 GDI+是什么? GDI+是GDI(Graphics Device Interface)的后继者,是一种图形设备的接口,它构成了Win XP操作系统的子系统的API. 1. ...
- Latex 三线表及设置列数
参考: latex的三线表格及一些错误的修改 latex 三线表 Latex 三线表 及设置列数 绘制三线表: \begin{table}[htbp] \caption{\label{tab:test ...
- 剑指Offer(三十三):丑数
剑指Offer(三十三):丑数 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/baidu_31 ...
- 别人 echo 、你也 echo ,是问 echo 知多少?-- Shell十三问<第三问>
别人 echo .你也 echo ,是问 echo 知多少?-- Shell十三问<第三问> 承接上一章所介绍的 command line ,这里我们用 echo 这个命令加以进一步说明. ...
- OpenGL快问快答
OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. ...
- k3 Bos开发百问百答
K/3 BOS开发百问百答 (版本:V1.1) K3产品市场部 目录 一.基础资料篇__ 1 [摘要]bos基础资料的显示问题_ 1 [摘要]单 ...
- 细数iOS上的那些安全防护
细数iOS上的那些安全防护 龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非 ...
- 细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一
细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一(转) ADO.NET Entity Framework ADO.NET Entity Framework 是微软以 ADO.N ...
随机推荐
- client-go实战之七:准备一个工程管理后续实战的代码
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<client-go实战> ...
- Pandas 读取 Excel 斜着读
读取 Excel 斜着读数据 import pandas as pd def read_sideling(direction, sheet_name, row_start, col_start, ga ...
- 虹科喜报 | 虹科技术工程师【国内首批】拿下Redis认证开发者证书!
要说虹科数据库技术工程师有多强悍,认证考试2022年12月上线,次年2月就以全国首批速度强势通过考试,并于两周后正式收到[Redis认证开发人员]证书! 虹科小云忍不住浅浅炫耀一下: 或许大家对Red ...
- 国产瀚高数据库简单实践 及 authentication method 13 not supported 错误解决方法
近几年IT界软硬件"国产化"搞得很密集,给很多公司带来了商机.但是有些公司拿国外的代码改改换个皮肤,就是"自主知识产权"的国产软件,光明正大卖钱,这个有点... ...
- AcWing 456. 车站分级
原题链接AcWing 456. 车站分级 抽象出题意,停靠过的车站的等级一定严格大于为停靠过的车站的等级,且不存在环,例如车站\(A\)等级大于车站\(B\),则\(A >= B + 1\),不 ...
- OpenAI宫斗,尘埃落定,微软成最大赢家
周末被OpenAI董事会闹剧刷屏,ChatGPT之父Sam Altman前一天被踢出董事会,免职CEO,后一天重返OpenAI,目前结局未知. 很多同学想要围观,缺少背景知识,这里老章为大家简单介绍前 ...
- Excel数据统计与分析
- The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission,iphone手机video标签报错
The request is not allowed by the user agent or the platform in the current context, possibly becaus ...
- Http请求超好用的工具类
话题不多说,直接开整 1.先导入依赖 <dependency> <groupId>io.github.admin4j</groupId> <artifactI ...
- 如何对U盘的使用权限进行管控
对U盘的使用权限进行管控是保护企业信息安全的一项重要措施.以下是一些常见的方法,可帮助您有效管理和控制U盘的使用权限: 禁用U盘端口: 在公司计算机上禁用或限制USB端口的使用,特别是那些不需要使用U ...