已索引

达梦数据迁移工具 DTS 支持:主流数据库迁移到达梦 / 达梦到达梦 / ODBC数据源、JDBC数据源的模式、表、视图到达梦 / 文件到达梦 / 达梦到文件 / Oracle到文件 / 达梦到Oracle的迁移。

迁移过程大同小异,这儿以 MySQL 到达梦为例,因为 Oracle 到达梦更简单一些。

执行 /dmdb/dmdbms/tool/dts(Windows 版本也行),打开数据迁移工具。
左侧栏,右键,新建工程,输入工程名如 MySQL-DM 后,确定。
展开新建的工程,在“迁移”上右击,“新建迁移”。
输入迁移名称如 omsmigrate 后,点“确定”,出现迁移向导,点击“下一步”。

请选择迁移方式

根据实际情况选择,这儿选择 “MySQL ==> DM”

数据源

填入数据源的信息(MySQL):
主机名: 192.32.9.61
端口:3306
用户名:root <--- 注意 root 账户要被允许远程连接
口令:xxxx
数据库名:可以不用选,后面的步骤中会列出该用户所有能访问的数据库。

以上信息填写后,点击“数据库名”一行后面的“刷新”按钮,查看源机上的数据库列表。
如果提示连接数据库失败,多为驱动问题。将源数据库服务器上的 mysql-connector-java.jar包下载到迁移工具所在的服务器,然后手工指定驱动即可。

目的

主机名:输入达梦数据库IP地址(如果迁移工具就在目标服务器的话,可保持默认 localhost)
端口:5236
用户名:SYSDBA(保持默认)
口令:XXXX

迁移选项

这儿配置“获取迁移对象方式”和“迁移策略”,保持默认。
在迁移策略里,可以统一将字符长度扩大x倍(不推荐)。

指定模式

指定源库中的模式和目的模式。
可以将多个模式分别指定到不同的模式,也可以指定到同一个模式。

指定对象

勾选需要迁移的源库对象。

审阅迁移任务

一定要勾选“以表格方式显示执行任务”,然后点击完成。

完成迁移向导

如果有表迁移失败,可以点击“查看详细信息”。
常见的错误是列宽导致数据迁移失败,可以根据实际情况进行处理,比如忽略,修正数据,增加列宽度等。

常见错误处理

列长度超出定义

完成后,提示出错。
点击“查看错误数据”,涉及的表为 "OMS"."OMS_OUTER_EVA",错误原因是:列[EVA_CONTENT]长度超出定义。
点击上一步会回到“迁移选项”,这儿可以将所有列都倍数扩大(不建议),点击“下一步”,选择模式后点击“下一步”,在“指定对象”步骤,仅选择出错的对象,点击“转换”。【DROP该表后,】在“迁移策略选项”标签下,勾选“表定义”下的“如果目的表已存在,先删除”;在“列映射选项”标签下,将相关列精度扩大倍数后再次执行。

可能因为软件的 bug,有时把表手工 drop 后再执行迁移任务,报错信息更具有可读性。

违反唯一约束

这个多发生在之前已经迁移过,再次迁移需要先删除再迁移。如果有多个表都需要先删除再迁移,则需要勾选左下角“应用当前选项到其他同类对象”,然后勾选需要删除重建的表。

无效的模式名

如果将userA用户的表迁移到userB下,在外键定义的 DDL 语句里,reference 可能仍然引用 userA。在“转换”功能页里,要注意“约束”下面的“保留引用表原有模式信息”不要选中。

-- By 许望(RHCA、OCM、VCP)
最后修改:2025 年 07 月 22 日 07 : 02 PM
如果觉得我的文章对你有用,请随意赞赏