MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)

1.mysql源库授权
grant select on *.* to dm_read@'%' identified by 'password';
flush privileges;
2.设置数据类型映射
设置varchar 按字符存储 ,char也改成varchar char ,(选择强制为字符存储为是,意思是mysql定义的varchar(n)或者char(n),达梦端映射为varchar(n char))json 映射为 clob
说明:mysql的varchar(1)可存储一个汉字,但是达梦的varchar(1)不能存储一个汉字,varchar(2) 或 varchar(1 char ) 可存储一个汉字
需要增加json ->clob 的映射,达梦没json 类型,达梦使用clob 存储json 数据+json函数来实现相应功能

MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)_第1张图片

达梦端varchar(n char)测试:
SQL> create table test1( name varchar(1));
executed successfully

SQL> insert into test1 values('集');
insert into test1 values('集');
[-6169]:Column [name] out of length.

SQL> create table test2( name varchar(1 char));
executed successfully
used time: 6.702(ms). Execute id is 2821801.
SQL> insert into test2 values('集');
affect rows 1

3,源端连接配置:
在迁移出点击新建迁移任务。这一步已经指定了需要迁移的源端库,目前只支持一个任务迁移一个库,暂不支持多个源端库同时进行迁移

MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)_第2张图片

4,目标端连接配置
目的端用户只需要有对要操作的schema有权限的用户即可,非必须是SYSDBA

MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)_第3张图片

5,指定源端及目标端迁移对象

说明:需要提前在目标端建立对应的用户、模式(用户创建后会自动创建同名模式)

注意:勾选保持对象名大小写,并取消勾选默认类型映射关系

这里一定要勾选保持对象名大小写,如果不沟通,工具分析对象任务就会失败,因为Mysq的表和视图名都是小写,工具如果按照大写去分析,会报找不到这个表而失败

MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)_第4张图片

6.

迁移对象配置,可同时迁移表结构及数据

注意按照如下截图进行勾选

说明:

  1. 可根据实际情况,如二次迁移,可勾选【如果目的表已存在,先删除】
  2. 请勿勾选【使用AUTO_INCREMENT自增列】选项,会导致用户使用管理工具访问数据库时出现无法打开表定义情况,不勾选会使用如下方式创建自增列,可实现与mysql一样功能
  3. 注意要勾选应用当前选项到同类对象,不让设置只会应用到当前选择的表或者视图

MySQL迁移到达梦数据库实战(使用达梦的DTS迁移工具)_第5张图片

7,迁移完成

确认是否有报错,有需要根据情况进行处理,直至全部成功

原表有N行数据,必须N行全部插入到目标端,任务才会成功,否则失败。

1)表迁移失败的原因一般都是目标端某列字段比源字段短,造成插入失败,需要设置上一步的“如果目标表已存在,先删除”,

2)视图迁移失败的原因一般是视图中查询了其他数据库或者用户下的表,而该表在达梦中不存在或者没有赋权,造成视图创建失败。、

3)创建唯一性索引失败的原因是,Mysql在存在主键的情况下还允许创建唯一性约束,而达梦不允许,索引会报错。这种情况不用处理,忽略即可。

错误消息: 违反唯一性约束

---------------------------------
ALTER TABLE "TKOMS"."c_training_records" ADD UNIQUE("op_ad","training_time","training_type")

失败的表和视图根据报错,重新迁移即可。

你可能感兴趣的:(数据库,mysql)