崖山迁移平台YMP核心服务包括:对象评估、源数据迁移、数据迁移、数据校验。本次体验涉及YMP的核心服务。
数据库版本支持
数据库端 | 数据库类型 | 说明 |
---|---|---|
源端 | Oracle | 支持的版本为 11g,12c,19c,21c,部署形态为单机和RAC |
源端 | MySQL | 支持的版本为 5.6,5.7,8.0 |
源端 | DM | 支持的版本为 8 |
目标端 | YashanDB | 适配YashanDB数据库v23.2版本,形态支持单机、共享集群,并兼容YashanDB数据库v22.2版本。 |
二、介质准备
Yashan Migration Platform安装包下载地址:
登录:https://download.yashandb.com/download
选择:Yashan Migration Platform 23.2.1(根据虚机CPU架构自行选择x86或者arm)
三、迁移环境准备
迁移环境准备如下:
数据库端 | 数据库类型 | 版本 | 地址 |
---|---|---|---|
源端 | DM | DM8 | 192.168.33.186 |
目标端 | YashanDB | V23.2.1.100 | 192.168.23.58 |
此次分享主要体验崖山迁移平台,DM/YashanDB安装不展开描述。
四、YMP安装
1. 安装前准备:
服务器配置
项目 | 说明 |
---|---|
系统 | CentOS 7.6以上、KylinOS V10 |
架构 | X86-64/ARM-64 |
CPU | 4核及以上 |
内存 | 8G及以上 |
磁盘 | SSD(建议不小于待同步表中的最大单表数据量的三倍) |
操作系统参数调整
需确保操作系统max user processes最大用户线程数不小于65535。
# 查看最大用户线程数 # ulimit -u
# 执行如下命令使最大用户线程数临时生效,重启后无效 # ulimit -u 65536
# 执行执行如下命令将最大用户线程数写入/etc/security/limits.conf文件,重启后参数永久生效
# echo "
# * soft nproc 65536
# * hard nproc 65536
# " >> /etc/security/limits.conf
目录划分
建议在服务器 新建用户以安装部署YMP,注意YMP安装路径不可包含英文句号,以使用新建YMP用户为例,安装路径为/home/ymp。
如安装路径下已存在db目录与bin/yasldr目录(例如/home/ymp/yashan-migrate-platform/db与/home/ymp/yashan-migrate-platform/bin/yashandb_client),需先清空目录。
安装默认端口(服务器默认关闭防火墙)
YMP监听 | 数据库监听 | 主机间通信 | yasom | yasagent |
---|---|---|---|---|
8090 | 8091 | 8092 | 8093 | 8094 |
用户准备
创建一个用户用于安装YMP,以YMP为例,在用户创建和授权后,后续所有安装步骤均在该用户下操作。
# 新建YMP用户
# useradd -d /home/ymp -m ymp
# passwd ymp
应用环境准备
JDK环境准备
YMP仅支持在JDK8或JDK11的环境下安装。通过Java官方路径下载上述版本的JDK并安装成功后,还需配置如下环境变量:
# 个人环境配置的是JDK11:
# vi /etc/profile
# 在文件结尾添加如下
# export JAVA_HOME=/usr/tools/jdk11
# export PATH=$JAVA_HOME/bin:$PATH
# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 重新载入配置文件
# source /etc/profile
# 安装成功后查看JDK版本信息
# java -version
libaio环境准备
YMP运行需要libaio动态库
# 查看是否已安装libaio动态库
# rpm -qa | grep libaio
# 若未有版本信息打印,安装libaio
# yum install -y libaio
客户端要求
YMP支持浏览器Google Chrome、Microsoft Edge和Firefox,建议使用当前较新的版本。
浏览器支持 | 要求版本 |
---|---|
Google Chrome | 88 及以上版本 |
Microsoft Edge | 88 及以上版本 |
Firefox | 78 及以上版本 |
2. YMP安装:
上传安装包至ymp主目录并解压
# 切换至YMP安装目录
$ cd /home/ymp/
$ unzip yashan-migrate-platform-x86-64.zip
执行安装命令
# 进入安装目录查看帮助
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh -h
安装内置库并启动YMP
# 进入安装目录执行安装命令 [ymp@hadoop1 yashan-migrate-platform]$ cd /home/ymp/yashan-migrate-platform/
[ymp@hadoop1 yashan-migrate-platform]$ sh bin/ymp.sh install --db /home/ymp/yashandb-23.2.1.100-linux-x86_64.tar.gz checking install profile.toml... install version: yashandb 23.2.1.100 update host to yasom... YMP started successfully! Start YMP without OCI client path, the data migration from Oracle to Yashan will be unavailable!
访问YMP
访问方式:http://IP:PORT/,PORT默认8090,初始账户名和密码是(admin/admin)
首次登录会强制修改密码。
五、YMP使用
1. 数据源管理:
添加数据源
点击右上角【+ 添加数据源】,填写基础信息之后点击【测试连接】,只有测试连接成功才可以成功添加数据源。
若测试连接失败会提示对应的失败消息,例如用户名或密码错误等。
2. 创建迁移任务:
评估配置
迁移评估
下载评估报告,查看评估详情,提示如右信息: -- 无法获取DDL信息,原因,-- 数据库查询异常[DBMS_METADATA.MD_FILL_DDL] Readonly transaction。
日志反馈给YMP研发,经分析YMP团队使用的DM8与本人使用的DM8存在环境差异(本人DM环境不支持查询系统索引的ddl语句),报错信息继续在DM技术论坛反馈,得到的答复是2022年后版本DM8是支持查询系统索引的ddl语句,2022年之前版本不支持查询系统索引的ddl语句。
接下来手动忽略不兼容的索引、约束DDL,手动修改不兼容的表DDL。
刷新报告,兼容率从0%提升至100%
迁移配置采用默认方式,ymp目前值支持离线迁移,离线迁移成功
迁移报告和任务日志可以下载,对象列表提供迁移详细信息,此次DM测试库未造数,迁移工具性能不具代表性。
校验初始化
一致性校验
如上图可知存在三个表对象跳过,校验详情均提示表没有主键和唯一键,之前迁移评估时候批量忽略了约束采用手动写入的DDL(保护所有约束),该报错信息可忽略
此外,校验报告和任务运行日志可以下载,可提供校验详细信息。
六、个人使用感受
此次迁移DM整体相对于MySQL不是那么顺畅,在兼容性评估这块卡了些时间,对于DM产品本身不支持的功能,ymp产品最好做到规避,而不是让用户对所有对象(此次对象兼容占比0%)进行手动修改。已经忽略的对象也不需要在之后一致性对比中进行校验。
整体而言,ymp团队支持力度大,崖山团队提供了个很好的工具进行国产数据库替换,特别对于之前使用DM的客户,减少了大量工作。