「YashanDB迁移体验官」使用YMP 迁移Oracle数据到YashanDB

0、前言

在数据库行业,数据迁移的需求是常见的。面对不同迁移需求,也有各自适合的迁移方案。
前期测试过使用OGG同步Oracle数据到YashanDB,功能上是能够跑通的,但是这是商业产品,仅用于个人的测试。

还有了解到kettle、DataX也可以同步数据到YashanDB,这些是开源的产品,如果遇到问题可能要依赖社区资源解决。

YMP是YashanDB官方提供的迁移工具,在兼容性上应该和YashanDB做的更好,有问题也可以咨询原厂解决,所以本次体验如何使用YMP来同步数据到YashanDB。

1.机器资源准备&YMP安装部署

1.1 资源准备

在整个测试中,我们可能会使用到Oracle、MySQL、DM、YashanDB以及YMP同步工具,这些应用都需要环境部署。
准备1台虚拟机,用于安装YMP(其它环境的准备在此不做其它说明):

  • 操作系统:CentOS 7.9,YMP当前仅支持Linux,所以需要准备一台虚拟机安装YMP。
  • cpu/内存/磁盘:4C/32G/500G
  • IP:192.168.33.176

YMP是通过web端浏览器中图形化界面操作使用,当前不支持命令创建和配置同步任务。

1.2 安装YMP

参考官方文档安装部署YMP,初次使用推荐大家按照默认的配置以及步骤去安装,可以快速将环境部署起来。熟练使用之后再做自定义选项的调整。

1.2.1 安装前的准备

强烈建议参考官方手册操作,做好安装前的准备,以免后面安装过程遇到不必要的问题。
几个常见且容易忽略的问题,特别注意:
1.防火墙关闭(或者配置白名单),作用是开放这个8090端口,YMP的服务端口。测试环境建议直接关闭防火墙。

#root用户下操作
systemctl stop firewalld 
systemctl disable firewalld

2.Java 11版本:YMP仅支持在JDK8或JDK11的环境下安装。

#查看java版本
java -version

3.浏览器的版本:YMP支持浏览器Google Chrome、Microsoft Edge和Firefox,建议使用当前较新的版本。
在这里插入图片描述

1.2.2 安装

首次安装,我是按照官方文档中默认推荐方式安装的。包括软件包准备、安装前准备和安装完成,一共几分钟,整个安装步骤非常简单。
1.准备YMP安装包、YashanDB安装包、Oracle OCI安装包。
在这里插入图片描述
2.解压OCI安装包

unzip instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip

3.解压YMP安装包

unzip yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip

4.使用默认内置库安装YMP并指定OCI

cd yashan-migrate-platform
sh bin/ymp.sh install --db /home/ymp/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path /data/ymp/client/instantclient_19_19
# --db:是yashandb的包的目录,作为内置库使用。即这种安装方式YMP安装过程中会部署一个YashanDB作为它的内置库,这个库不能做为目标库,所以还要准备另外一个YashanDB的库,用于目标端数据库源。
# --path:是我们刚才解压的OCI的目录。

5.安装完成,测试访问连接

浏览器访问http://192.168.33.176:8090/
#这里ip替换成自己的ip,端口默认是8090。默认用户密码是admin/admin

在这里插入图片描述

能正常访问到这个页面,代表YMP环境已经部署好了。

2.数据迁移步骤

数据迁移是以“任务”为单位去完成的。

目前YMP仅支持离线全量迁移,即在迁移的过程中,尽量保证源端数据设置成仅读模式,不然在最后数据校验阶段,可能存在源端和目标端数据不一致的情况。

整个步骤就是两大步:1.创建数据源;2.创建同步任务。同步任务中包含【创建任务】—>【迁移评估】—>【迁移配置】—>【离线迁移】—>【校验初始化】—>【一致性校验】,共6个环节。
在这里插入图片描述

接下来,我们详细看看每个步骤和环节的作用是什么以及具体实操动作。

2.1 第1步:数据源的准备

YMP的主要作用就是同步源端数据(目前仅支持Oracle、MySQL、DM)到目标端(目前仅支持YashanDB),所以我们需要先将数据源配置起来(包括源端和目标端)。

我准备了6个数据源,其中包括源端的Oracle 19c(19.3.0.0.0)、Oracle 11g(11.2.0.4.0)、MySQL 5.7(5.7.35)、MySQL 8.0(8.0.25),以及目标端的当前官网支持下载的两个YashanDB个人版:23.1和23.2版本。
在这里插入图片描述

源端和目标端的数据源添加方式没有任何差异,均是在页面上【数据源管理】->【添加数据源】界面配置,配置的时候不区分源端和目标端。只有在创建任务的时候会限制选择。

2.2 第2步:创建同步任务

2.2.1 创建任务

创建任务是一切任务的起点。详细步骤参考:创建任务。
1.关于源端数据库的选择,我们可以看到是不能选择YashanDB的。
在这里插入图片描述
2.关于内置库和外置库,它们的作用是一样的,都是用于作为YMP迁移数据过程中使用,比如元数据校验、迁移评估等。这里的内置库是我们在安装YMP时,YMP自动部署的那个YashanDB,默认端口是8091,和手动部署的YashanDB(默认端口1688)是不冲突的。外置库代表的是,我们自己部署了一套YashanDB,这个库也要添加到数据源中。因为我们安装步骤中,默认安装的内置库,所以这里用默认选项“内置库”就可以,不推荐大家修改。
在这里插入图片描述
从后台进程看YMP自建的内置库
在这里插入图片描述

3.关于选择评估对象,因为YMP支持常用的一些数据库对象,大家可以按需选择迁移对象。比如要做全库迁移,那就全选;比如仅做表数据库的迁移,就仅选择表即可。
在这里插入图片描述
4.关于其它设置,使用默认的即可
在这里插入图片描述

2.2.2 迁移评估

上个环节配置完成后,点击【下一步:开始评估】,就开始迁移评估,评估过程中,页面上会显示评估的进度,如下图
在这里插入图片描述
评估完成后,会显示评估结果,包括评估了多少对象、对象兼容和不兼容的情况、PL/SQL的情况、迁移的数据量以及预估要迁移的时间等。
在这里插入图片描述

这里要注意一点,只有当兼容度达成100%,才能开启下一步的迁移配置。
这里要注意一点,只有当兼容度达成100%,才能开启下一步的迁移配置。
这里要注意一点,只有当兼容度达成100%,才能开启下一步的迁移配置。

如果遇到不兼容的情况,有两种方式解决:
1.在“对象详情”中,筛选不兼容的对象,忽略掉
在这里插入图片描述
2.在“对象详情”中,筛选不兼容的对象,手动修改语句,直到兼容
在这里插入图片描述
一般如果是测试环境,如果想快速体验后面的功能,可以选择忽略,如果是真实的业务数据迁移需求,要根据实际情况评估选择忽略或者修改。

我这里是测试环境,就选择了忽略。

忽略之后,要重新刷报告,针对忽略的情况,再重新评估一次。
在这里插入图片描述
此时可以看到,兼容度达到100%了,我们可以开启下一步的迁移配置了。
在这里插入图片描述

2.2.3 迁移配置

这个环节主要是配置目标端数据库的信息以及YMP会做一个预检查,比如表空间的检查、版本是否一致、权限够不够等,就是把迁移中的风险评估提前做了,后面就可以顺利迁移。
我们可以看到,目标端的数据库只能是YashanDB。
在这里插入图片描述

我的测试环境报了两个问题:

  1. 版本检查未通过是指:我内置库的版本是23.2,而目标库我选择的是23.1,这里我们是要求内置库和目标库的YashanDB版本必须要保持一致的。也可以理解,因为YMP内置库的作用就是为了做兼容性评估,如果目标库版本和内置库版本不一致,这里就会有版本特性不一致的风险,导致评估结果不准确。
  2. 表空间检查是指:数据依赖底层的表空间存储介质,而YMP做的是逻辑数据的同步,并不会同步表空间的信息,所以我们要提前把对应的表空间给创建好。

在这里插入图片描述
接下来把目标库选择23.2,以及把相关的表空间建好,再次检查,就可以通过了。
也会有一些告警项,可以忽略。
在这里插入图片描述

2.2.4 离线迁移

这一环节,就是真正的在同步数据了,界面上可以观察到数据的同步进度以及一个性能监控信息。
在这里插入图片描述
迁移完成之后,会生成任务日志和迁移报告,如果我们在迁移过程中报错了或者迁移失败了,可以通过这两个部分来定位问题。
在这里插入图片描述

2.2.5 校验初始化

迁移完成之后,可以做一个一致性的校验,这里的校验初始化,是指可以自定义的配置一些要校验的对象。因为校验也会有性能和资源的开销,虽然做了全库的迁移,但是有可能只想检验一下表数据的情况,甚至可以选择仅校验表的行数是否一致。这个环节就可以自定义校验项了。
在这里插入图片描述

我选择的是默认的校验情况。下一步就开始一致性校验。

2.2.6 一致性校验

校验完成之后,也会有一个校验报告,可以用来分析源端和目标端不一致的情况。
在这里插入图片描述
到这个环节,整个迁移任务就顺利完成了。

4.整体感受

整个迁移步骤比较简单,但是还是有一定的技术门槛。至少需要了解数据库的一些功能特性、遇到问题分析问题的手段和数据库经验等。
从三个维度来分享我的整个迁移感受:

  1. 官方文档:文档的描述比较简单,常见问题涵盖面比较少,建议可以补充一些常见问题项
  2. 产品体验:整个产品使用比较简单,界面操作简洁明确,思路也很清晰,感觉不错
  3. 原厂支持:在测试的过程中也遇到到在技术交流群的咨询,原厂的响应和问题解答响应都很及时,体验不错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值