UGO 数据库和应用迁移。
DRS 数据复制服务。
简单一点说 ,数据库适配过程分两个工具对应的是两个阶段。
第一阶段UGO
数据库对象适配 用UGO工具,这里有个区别就是UGO跟数据库里面的数据没有关系,只跟数据库对象有关系。
UGO原库扫描
UGO工具首先对原库进行一个扫描,查出数据库有多少对象,比如,表结构,索引,存储过程,触发器,,,等。并且评估直接用UGO改造迁移到GaussDB成功率多少。一般mysql都成功率在90%以上,Oracle应该更高一点。
UGO对象迁移
UGO第二部有了第一步的评估任务以后在此任务的基础上再创建一个迁移任务,在比过程中就是对原库的语法,数据库对象进行改造,UGO有自己的模板可以对mysql数据库进行改造,这个模板mysql大概有20条个相关条列,这些也是可以编辑的。模板设定好以后进行语法改造,此过程仅仅是在UGO内部在把mysql的语法在改写,改写出来以后,我们检查一下就可以进行正式迁移了,一般正式迁移的成功率比第一步评估后的成功率稍微低一点,后续就是把没成功都一个一个手动去改,这个UGO一般会显示出那一行失败。改完以后也可以一个一个尝试迁移,直到成功为止。
***UGO单机版***部署都情况下还有应用迁移功能,扫描mybatis文件,然后更改sql部分。在公有云没有此功能。
UGO工具已经用完了那就轮到DRS工具了。
第二阶段DRS
现在GaussDB除了数据其他都有了,表结构,索引,,,,等等。
在DRS创建实时同步任务,可以选择全量+增量的方式把数据迁移到GaussDB。
迁移任务进入增量模式后,数据就是在实时同步的状态了,我们需要暂停一下原库的业务,停止写入,然后进行数据对比。酒可以完成割接了,迁移是个大工程,一般都是华为自己的团队搞,咱们提出诉求即可。
现在谈谈一些区别吧:
其实DRS也有UGO一样的数据库对象改造能力,但是没有UGO强,DRS能改造的数据库对象类型有限之内改造表结构和索引,不支持其他存储过程,触发器等等对象。如果有一张表结构在UGO是手动修改下语法可以解决的问题。直接在DRS迁移的话可能需要更改原库的内容,数据同步任务可能面临失败的问题。
但是呢UGO目前支持的链路还是不多,大部分目标库都是GaussDB的链路。如果有些链路在UGO没有,比如mysql和oracle之间的数据库同步,那我们只能使用DRS来同步表结构和数据了。
简单来说如果是准备上GaussDB的 咱们把 对象 和 数据 分开 迁移,前者UGO后者DRS。
如果是其他链路咱们可以直接考虑DRS即可。
直接在华为云搜DRS或者UGO就能看到产品文档了哦