第1章达梦迁移工具说明
DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。
DM数据迁移工具支持:
◆ 主流大型数据库Oracle、SQLServer、MySQL、DB2、PostgreSQL、Informix、Kingbase、Sybase的模式、表、视图、序列、索引迁移到DM;
◆ ODBC数据源、JDBC数据源的模式、表、视图迁移到DM;
◆ DM数据库的模式、表、视图、序列、索引迁移到主流大型数据库Oracle、SQLServer、MySQL;
◆ DM数据库之间模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限的迁移;
◆ DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到XML文件;
◆ DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到SQL脚本文件;
◆ DM数据库的表、视图数据迁移到文本文件;
◆ DM数据库的表、视图数据迁移到Excel文件;
◆ DM数据库的表、视图数据迁移到Word文件;
◆ SQL脚本文件迁移到DM数据库;
◆ XML文件迁移到DM数据库;
◆ 指定格式的文本文件、Word文件和Excel文件迁移到DM数据库。
第2章迁移准备
一、达梦数据库建库
需要明确原库的如下参数:
字符集:原库的字符集,例如UTF-8,GB18030等
字符串是否对大小写敏感:如果敏感就区分大小写;如果不敏感则不区分大小写
VARCHAR类型以字符为单位:在mysql中VARCHAR为1个字符长度,在达梦中如果不选以字符为单位,则为3个字符长度。
除此之外,还有空格填充模式、改进字符串hash算法免得
二、修改数据库兼容配置
达梦数据库提供了多种兼容模式,包括但不限于SQL92、Oracle、MS SQL Server、MySQL等,通过设置兼容模式参数,可以使其与特定数据库的兼容性得到提升。
配置文件:dm.ini
文件位置:安装目录
参数:COMPATIBLE_MODE
参数值:0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata, 7:PG
修改后重启数据库生效。
三、账号准备
信息名称 内容 说明
原库管理员账号 数据库root账号,密码 设计root运行远程登录
达梦数据库SYSDBA账号 数据库管理员账号,密码
第3章建设迁移工程
一、迁移操作
3.1.1打开达梦的迁移工具(DTS)
3.1.2新建工程
3.1.3在工程下依次点:作业=》迁移=》=》新建迁移
3.1.4选择迁移对象以及目标
3.1.5输入原数据库账号和密码
2、点刷新,获取数据库下的dabase信息,并选择需要迁移的库
注1:给定的默认驱动版本为5.0,建议通过"指定驱动"修改为所连接数据库自带的驱动。
说明:达梦DTS默认的mysql驱动只是5.0版本的,如果驱动版本与需要迁移的数据库版本不同,则需要使用与当前数据库匹配的驱动。
注2:经过实测,达梦自带驱动能对5.7.36版本的mysql使用,但是更高版本则需要使用对应版本的驱动。
指定版本驱动
3.1.6刷新成功,选择数据库后,下一步
3.1.7输入目标达梦数据库的管理员信息(最好是SYSDBA账户),并下一步
3.1.8配置复制内容
A、源、目标模式、需要复制的内容
B、原有的表如果有大小写或者驼峰,且对小写敏感,一定要勾选保持对象大小写
C、默认数据类型映射关系,字符长度。默认为1
3.1.9选择需要迁移的对象
可以全选,也可以只选择某个表单。
说明:
A、目标对象是可以自定义名称的
B、也可以只迁移上次出错的,为了提速还可以使用多线程迁移数据
C、可以自定义转换内容:例如表定义、约束、索引、存储等,根据实际需求选择。越简单,迁移报错可能性越低,丢失外键、索引可能性越高。
3.1.10创建任务,点击“完成”,开始任务。
3.1.11开始执行
如果没有报错,就可以完成迁移。如果有报错,则需要针对出现的错误一一解决。
二、常见错误解决
3.2.1创建对象失败
创建表失败的原因有可能:
1、对象已存在
问题分析:在区分大小写情况下,通过大小写区分表,在不区分大小的时候,就会形成表名相同。
处理方式:
删除同名表单,保证源表的唯一性。
2、sql无法执行
无法执行的可能:不同数据库表达不同。
报错:
分析:
通过对比发现,达梦数据库在创建表时没有加主键等,只创建字段,只做了最简单的表创建,但是还是报错了。
分析发现,是转换工具在"CREATED_" TIMESTAMP(0) DEFAULT 'CURRENT_TIMESTAMP(3)' NOT NULL, 中对'CURRENT_TIMESTAMP(3)' 添加了单引号。
删除单引号后执行成功。
3.2.2添加约束失败
需要确认表已经完成,表单正常。
3.2.3数据导入失败
在mysql的默认下VARCHAR只有1位字符,在达梦默认下VARCHAR有3位字符长度,造成从mysql导入数据可能会超长。但是此配置需要在建库是设置。如果遇到此类错误,只能删库重建。
同样的问题还有,字符集问题,需要建库的时候配置与原库相同的字符集。
文章
阅读量
获赞