SQLark实现数据库国产替换迁移:MySQL->达梦数据库

最近有一个项目涉及从 MySQL 到达梦数据库的国产替换,经过了解发现 SQLark(百灵连接)开发工具可以提供全生命周期的数据迁移解决方案,决定体验一下。

先说结论,本次测试基于 SQLark 自动完成的迁移对象比例为 90.58 %。

相关测试环境配置如下:

  • 源端数据库:MySQL 8.0,使用官方示例数据库 sakila;
  • 目标数据库:DM 8,提前创建相应的模式 SAKILA;
  • 迁移工具:SQLark V3.5。

SQLark 一次完整的数据库迁移流程包括迁移评估、数据迁移以及迁移校验几个步骤。

迁移评估

迁移评估环节通过分析数据库对象、大表、大字段表等迁移重难点情况,采集源库对象的 SQL 语句,评估语法兼容性,生成准确的改造工作量和迁移策略。详细流程如下图所示:

我们首先在 SQLark 菜单栏中点击“数据迁移”按钮:

此时,SQLark 会打开一个浏览器地址,并显示迁移工具页面:

该页面可以创建迁移评估任务和数据迁移两种任务。点击“创建评估任务”:

选择“MySQL->DM”并且设置一个任务名称,点击“确认”按钮。

导入或者新建一个源端数据库连接,我们这里使用 SQLark 中已经建立的好的 MySQL 数据库。

点击下一步选择评估范围:

这次我们需要迁移的数据库是 sakila,点击下一步生成源端数据库画像:

源库概览源库包含了源库的基本参数信息、对象兼容性分析结果和表数据统计信息。

示例中我们需要重点关注的是 12 个不兼容对象和 3 个包含大字段的表,点击模式对象(sakila)可以进一步查看详细信息:

其中,重点关注对象展示了从源库迁移到目标库的风险点,主要包括含大字段表(3 个)、未分区大数据量表(0)、分区表(0)、不兼容对象(12 个,其中视图 3 个、存储过程 3 个、函数 3 个、触发器 3 个)及无效对象(0)。

点击页面“导出画像”按钮可以生成 PDF 格式的源端数据库画像报告,方便迁移方案文档编写。

点击下一步生成迁移策略:

策略总览显示了当前迁移任务的待迁移对象数量、兼容情况,改写工作量及预计迁移耗时等基本信息。

该页面同时还列出了后续迁移步骤,包括:初始化目标数据库环境、数据库对象迁移、对象改写以及迁移校验。

点击页面“导出策略”按钮可以生成 PDF 格式的迁移策略,作为迁移实施的参考。

迁移实施

SQLark 数据迁移环节提供一站式全自动迁移,以合理的策略完成对象结构迁移、全量数据迁移,并对迁移效果进行一致性验证,采取任务式管理方式保障迁移工作完成。详细流程如下图所示:

在前面完成迁移评估后,点击页面右上角”立即开启自动化迁移“创建并启动数据迁移任务,或者也可以通过数据迁移首页创建数据迁移任务。

同样,选择“MySQL->DM”(默认)并且设置一个任务名称,点击“确认”按钮。

导入或者新建目标数据库连接,这里我们使用 DM 数据库。点击下一步:

该页面可以选择需要迁移的源端数据库,同时指定迁移范围。其中全量迁移将会按照依赖关系,对数据库对象实施自动化迁移;指定范围迁移可以选择需要迁移的数据库对象,甚至包括表中需要迁移的数据行。

这里我们选择全量迁移。

另外,点击”迁移配置/断点续传“可以对迁移过程进行一些配置:

以上配置可以基于具体项目需要进行调整。

点击下一步,进行目标数据库的环境检查:

SQLark 提供一套包含了空间、字符集编码、页大小等 10 多项参数的全面的环境检查清单,并且针对检查未通过的项目给出修复操作指引,修改完成后可点击重新检查。

修复完成之后,点击下一步开启数据库迁移:

迁移概览页面可以查看当前迁移任务的总进度、模式迁移进度、用户和角色迁移进度和待处理清单。

示例中的待处理清单包含 34 个异常对象,1 个异常表数据,具体信息如下:

点击对象名所在行,可以查看该对象的详细报错信息、处理建议及源/目的 DDL 语句等,并进行改写操作。

以示例中的第一个异常对象(address)为例,错误信息是”dm.jdbc.driver.DMException: 第12 行附近出现错误: 非法的基类名[SYSGEO]“。原因在于我们使用了 DM 数据库的空间数据类型,这个类型由扩展包 DMGEO 提供。

根据 DM 文档,用户在使用 DMGEO 包之前,需要提前调用系统过程 SP_INIT_GEO_SYS(1) 创建 DMGEO 包,包创建成功后就可以使用空间数据类型以及包提供的方法。

我们在 SQLark 中创建 DMGEO 包之后,点击 address 对象的“重迁”按钮解决问题。

其他问题经过分析,主要剩下的都是存储过程、函数、视图中的一些特殊语法,需要手动进行改写迁移。

本次测试基于 SQLark 自动完成的迁移对象比例为 90.58 %。

迁移校验

最后,点击下一步进行迁移校验。

校验概览显示了当前迁移任务的校验统计范围、迁移对象数量校验和表数量校验结果统计情况。

迁移校验详情分析了具体的迁移情况,本次测试表和数据实现了一致迁移,主要的问题是存储过程等复杂对象需要人工完成改写迁移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不剪发的Tony老师

为 5 个 C 币而折腰。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值