目录
一:产品功能描述
崖山迁移平台(YashanDB Migration Platform,YMP)是YashanDB提供的数据库迁移产品,支持异构RDBMS(Oracle、MySQL、DM)往YashanDB数据库进行迁移评估、离线迁移、数据校验。
二:软件和文档获取
根据“安装前准备”要求,除了YMP安装包外,需要获取崖山数据库安装,如果迁移Oracle数据库,还需要准备OCI环境。 本次体验准备迁移MySQL数据库,OCI就不需要了
软件包名称 | 说明 | 获取方式 |
Yashan Migration Platform 23.2.1(Linux X86) | YMP安装包,用于迁移数据到崖山数据库 | 安装包以及配套产品文档在崖山数据库官网获取:https://download.yashandb.com/download |
YashanDB Personal 23.2.1 (Linux X86) | YashanDB安装包,用于作为迁移的目标库,和YMP业务, |
二:安装部署
1.安装准备:
用于安装YMP的linux虚拟机,按照YMP规格要求,虚拟机大一些,性能应该更好。手上仅有一个2核4G的x86虚拟机,就先用这个了,
虚拟机上已经安装了jdk1.8
2. 一键式安装部署:
此步骤安装了一个内置的崖山数据库作为YMP的业务库。
3.通过网页链接登录YMP, 可以开始体验了。
三:MySQL到YashanDB数据库迁移体验
(选了部分库用于体验,元数据个数1800+, 数据量10G+。)
1.评估
创建任务,从界面看,对MySQL的对象类型支持的较全,包括表,约束,索引,视图,触发器,自定义类型,存储过程和Event。
选择所有类型,开始评估:
从评估结果可以看到,YMP把MySQL的AUTO_INCREMENT转成了序列,event转成了触发器。
兼容率97.65%,对于异构数据库已经是比较高的兼容度了
对不兼容对象的目标DDL做修改,或者忽略。 这里有一个比较好用的操作:批量修改。
选择需要修改的一批对象-点击“批量修改”, 支持文本替换或正则表达式替换, 我这里试用了将MySQL的函数curdate()替换成YashanDB支持的sysdate(),共替换了11个对象。
替换序列起始值也是一个亮点功能:
刷新报告兼容率达到100,可以启动迁移了。
2.迁移
从界面看,迁移分三个阶段,根据了解,将索引和外键约束等放到第三个阶段是为了防止提升数据迁移的性能和防止过程出错:
高级配置中也有性能和容错的配置:
从文档上看,数据迁移兼容null值选项是为了考虑异构数据库的处理差异,增加了容错的处理,我勾选了“数据迁移兼容null值选项”,从迁移过程看,会自动触发重试
迁移结果:
查看元数据迁移失败的部分,正是上面提到的删除了非空约束:
3.校验
迁移完成后,希望能检查迁移后的数据是否和MySQL一致, 试用了校验功能
支持完整对比和统计对比:
使用统计校验先总体看看迁移结果,迁移成功的表数据都一致:
四:总体体验
- YMP是基于WEB的,使用过程比较简单友好。
- 从测试的模型来看,兼容率也比较高,YMP对异构数据库间不一致的地方做了很多转换,不需要过多的人工干预。
- 有一些亮点操作比较有效,比如批量修改和修改序列初始值等。