前言
首届YashanDB「迁移体验官」开放后,陆续收到「体验官」们的投稿,小崖在此把优秀的投稿文章分享给大家~今天分享的用户文章是《使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试》(作者:尚雷),满满干货,不要错过!
📣号外!新的征文活动已开启,点击此处即可跳转活动链接,最高可获千元大奖!🤩
](https://mp.weixin.qq.com/s/sLGLwmSDdKh5xISbj7IxwA)
说一下我和崖山数据库的结缘,大概在去年吧,因为我经常在墨天轮写文章,看到崖山数据库推出了一崖山体验官的活动,我就报名参加了。第一次体验了崖山数据库,也测试了我司数据库到崖山数据库的兼容性,发现崖山数据库的兼容性真的很不错的,尤其是对Oracle的兼容性做的真的挺不错。而且崖山数据库的一些命令和Oracle很兼容,对一些Oracle DBA来说上手特别容易,甚至可以说是无缝衔接。
最近受崖山数据库邀请作为【YashanDB迁移体验官】,体验了一把YMP的迁移,我也搭建了测试环境,并验证了我司一些Oracle和MySQL到崖山数据库的迁移,并参与了崖山的直播和大家分享了YMP的迁移感受。
在验证测试中也发现了一些YMP的问题,也将这些问题反馈了崖山官方技术人员,他们的响应速度也是非常快,对于反馈的一些问题有些已经提交研发进行修复,给他们点个大大的赞。
下面我将为大家附上我本次迁移测试的全过程,以及对YMP的迁移感受。不足之处还望大家多多指正。
也希望大家多多支持崖山,多多支持国产数据库,只有大家齐心协力,国产数据库的将来才会越来越好。
01 产品介绍
根据崖山官网介绍,崖山迁移平台(Yashan Migration Platform),简称YMP,是YashanDB提供的数据库迁移产品,支持异构RDBMS与YashanDB之间进行迁移评估、离线迁移、数据校验的功能。另外,YMP提供页面可视化服务,使用者只需通过一些简单的界面操作,即可完成从评估到迁移到数据一致性评估整个流程的执行与监控,整个操作过程门槛比较低,操作比较流畅。
YMP安装后,会集成一个YashanDB内置库,该内置库的作用是用于YMP进行校验评估是需要的,不能作为业务目标库使用,建议在做数据迁移时,单独部署一套YashanDB(目标端业务库)。
内置库是用于ymp在迁移评估阶段待迁移元数据的兼容度评估,不能作为业务目标库使用,做数据同步测试,部署一套YashanDB(目标端业务库)和YMP自嵌的内置库是很规范的。
当前YMP支持(Oracle、MySQL、DM)等异构库到YashanDB的迁移,也支持YashanDB到YashanDB的同构迁移。
YMP整个迁移过程包括如下六个主要阶段:
-
创建任务
-
迁移评估
-
迁移配置
-
离线迁移
-
校验初始化
-
一致性校验
1.1 产品架构
在崖山官网,有如下一幅图介绍YMP的总体架构,如下所示:
根据上面产品架构显示,主要包括了(对象评估、元数据迁移、数据迁移、数据校验)等几个核心服务。
1.2 数据库版本支持
根据官网资料介绍,当前最新版YMP版本为YMP 23.2,其对异构和同构数据库有一定的版本限制,详见如下:
另外在官网(链接:https://doc.yashandb.com/ymp/23.2/zh/产品简介/产品规格)页面中,也有对异构RDBMS库相应数据类型的支持。
02 外置库部署
部署外置库的目的是为将迁移评估后源端数据迁移到YashanDB后的目标端库,为保证迁移顺利,外置库存放数据目录一定要有足够存储空间。
建议将外置库和YMP内置库分开部署,推荐是将内置库和外置库部署在不同服务器上,若部署在同一台服务器,使用不同用户部署外置库和内置库。
因为条件限制,我本次选择在同一台物理测试服务器上部署外置库和YMP,两者分别部署在不同用户下,外置库选择部署在yashan用户下,内置库部署在ymp用户下。
对于外置库的安装部署,在官方文档里有详细的介绍,本次就不再做过多赘述,只是简单描述整个安装部署过程。(链接:https://doc.yashandb.com/yashandb/23.2/zh/产品描述/产品简介.html)
1) 软件下载:
截止到2024-04-25日,当前YashanDB最新版本为23.2,可在官网主页【https://www.yashandb.com/】,点击【免费下载】根据操作系统类型下载YashanDB 个人版,当前可供下载的类型包括X86和ARM两种类型。
2)环境准备:
环境准备包括服务器系统及网络规划、系统参数调整、目录及用户规划等,服务器和操作系统的配置要满足官网服务器配置需求。
3)软件安装:
崖山数据库的安装方式有命令行安装和可视化安装两种类型,数据库安装类型有(单机主备部署、分布式部署、共享集群部署)这三种部署形态,可以按照自己的业务需求选择相应的部署方式。
4)初始化环境:
数据库安装部署后,需要设置环境变量、初始数据库。如在安装过程中未对监听端口进行调整,默认监听端口为1688。可根据需要设置是否开机启动,实例如下。
[yashan@dsmart install]$ ./bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 10.110.8.42 --port 22 --install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data --begin-port 1688
hostid | group | node_type | node_name | listen_addr | replication_addr | data_path
----------------------------------------------------------------------------------------------------------
host0001 | dbg1 | db | 1-1 | 10.110.8.42:1688 | 10.110.8.42:1689 | /data/yashan/yasdb_data
----------+-------+-----------+-----------+------------------+------------------+-------------------------
Generate config success
补充:安装YashanDB时,可通过指定-d, --child
参数,展示任务以及子任务信息,以便了解部署进度。如下所示:
[yashan@dsmart install]$ ./bin/yasboot cluster deploy -t yashandb.toml -d --child
type | uuid | name | hostid | index | status | return_code | progress | cost
------------------------------------------------------------------------------------------------------------------------
task | 274c34dbc58b9cbd | DeployYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 9
-------+------------------+--------------------+----------+-------------------+---------+-------------+----------+------
child | 9d1fafb987ad2b56 | DeployDBPrimary | host0001 | yashandb.1-1 | SUCCESS | 0 | 100 | 6
+------------------+--------------------+----------+-------------------+---------+-------