1.前言介绍
数据库国产化进程如火如荼的进行,数据库厂商完善内核产品能力的同时也需要兼顾生态工具的发展,尤其是配套的迁移工具。对一线开发、运维人员而言,一款操作简单、容错能力强的迁移工具能极大的提升数据库迁移改造的效率,降低国产数据库改造成本,提供更好的用户体验。
为了真实体验崖山迁移平台(Yashan Migration Platform,YMP)的产品能力,并不仅停留在产品白皮书介绍的梦幻场景中,自行搭建了测试环境,开始了迁移体验之旅。
2.环境说明
环境类型 | 数据库类型 | 版本 | 地址 |
---|---|---|---|
测试源库 | Oracle | 19.0.0.0 | 192.168.33.174 |
测试目标库 | YashanDB | 23.2.1.100 | 192.168.33.169 |
3.安装部署
- 从Oracle官网下载OCI客户端,上传安装包至/data/yashan并解压
- 上传安装包至/data/yashan并解压
- 执行安装
[yashan@host3 yashan-migrate-platform]$ sh bin/ymp.sh install --db /data/yashan/yashandb-23.2.1.100-linux-x86_64.tar.gz --path /data/yashan/instantclient_19_19/
checking install profile.toml...
install version: yashandb 23.2.1.100
update host to yasom...
type | uuid | name | hostid | index | status | return_code | progress | cost
---------------------------------------------------------------------------------------------------------
task | 19403c7920839c39 | DeployYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 9
------+------------------+--------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
-------------------------------------------------------------------------------------------------------
task | 208735b1b286b069 | StopYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 2
------+------------------+------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
--------------------------------------------------------------------------------------------------------
task | 86fb40db6f39607e | StartYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 2
------+------------------+-------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
YMP started successfully!
[yashan@host3 yashan-migrate-platform]$ ps -ef|grep yasdb
yashan 24012 1 5 09:34 ? 00:00:02 /data/yashan/yashan-migrate-platform/db/bin/yasdb open -D /data/yashan/yashan-migrate-platform/db/data/ymp/db-1-1
yashan 24249 23444 0 09:35 pts/1 00:00:00 grep --color=auto yasdb
[yashan@host3 yashan-migrate-platform]$ sh bin/ymp.sh status
YMP is running, pid is 24107.
Built-in database is used, pid is 24012.
- 安装完成,登录管理界面
4.添加数据源
- 创建个人测试环境并添加Oracle、YashanDB测试数据库
5.Oracle迁移测试体验
Oracle测试环境采用某个业务系统测试环境表结构,总共667张业务表,约束/索引3061个,52个触发器,15个视图,14个序列,1个自定义类型,264个同义词对象
- 选择Oracle源库,创建迁移任务
- 进行迁移评估
如上迁移报告中做如下说明:
1.同义词全部涉及Oracle DBLink创建,因此迁移评估无法自动/手动兼容,兼容百分比为0%,此处暂时忽略
2.触发器兼容百分比为50%,查看DDL文件,报错的部分为:select seq_xxx.NEXTVAL INTO:NEW.seqid from DUAL; 而此处的序列 seq_xxx 没有在ymp 用户下创建,自然没有权限执行。需要手动登录到业务账户下创建触发器。
3.索引有一个无法兼容是由于存在一个BITMAP索引,YashanDB暂时不支持该类型索引创建,此处暂时忽略。
-
手动处理完成不兼容的对象后,选择目标数据库,进入下一步迁移配置
-
开始离线迁移
-
进行表结构的一致性校验,100%一致。
6.总结建议
- 该测试数据模型存在一些数据库暂未支持的功能和特性,需要手动处理
- 此次过程测试了Oracle数据的迁移,感受到了不论是YashanDB或YMP对Oracle的兼容性处理较好
- YMP安装、数据迁移过程整体相对顺利,界面操作简单、上手容易
- 若存在大量数据需要迁移的情况,涉及到安装内置库,需要提前规划好YMP机器资源,尤其是磁盘与CPU资源