达梦数据库迁移工具简单使用介绍

达梦数据库迁移工具简单使用介绍


达梦数据迁移工具简介
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数据库。

下面,我们以DM8之间的数迁移为例,简单介绍DM数据迁移工具的使用方法。

1.迁移需求
本次数据迁移是使用达梦数据迁移工具DTS在线迁移达梦数据库。

1.1.数据库迁移工具
在这里插入图片描述

达梦数据迁移工具,安装达梦数据库时默认安装选项会安装该迁移工具。

1.2.源数据库
数据库类型:达梦8
IP:192.168.1.26
用户名:DMHR
密码:test123456

1.3.目标数据库
数据库类型:达梦8
IP:192.168.1.100
用户名:test
密码:testtesttest

2.迁移前准备
准备好源数据库、目标数据库的IP地址、数据库用户密码、数据库SID等相关信息。确保源数据库、目标数据库处于在线状态,源数据库与目标数据库网络互通。

2.1.创建达梦数据库和用户
先在目标数据库创建数据库表空间、数据库用户。

2.1.1.建表空间
create tablespace “TEST” datafile ‘E:\dmdbms8\data\DAMENG\test.dbf’ size 5120 autoextend on next 1024 maxsize 33554431 CACHE = NORMAL;

2.1.2.创建用户
创建数据库用户时,密码需9位或以上
create user “test” identified by “testtesttest”
limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10
default tablespace “TEST”
default index tablespace “TEST”;

注意:建表空间时,表空间名是大写,建用户指定默认表空间时表空间名也要用大写。

2.1.3.用户授权
grant “DBA”,“RESOURCE”,“PUBLIC” to “test” with admin option;

grant ALTER DATABASE,RESTORE DATABASE,CREATE USER,ALTER USER,DROP USER,CREATE ROLE,CREATE SCHEMA,CREATE TABLE,CREATE VIEW,CREATE PROCEDURE,CREATE SEQUENCE,CREATE TRIGGER,CREATE INDEX,CREATE CONTEXT INDEX,BACKUP DATABASE,CREATE LINK,CREATE REPLICATE,CREATE PACKAGE,CREATE SYNONYM,CREATE PUBLIC SYNONYM,ALTER REPLICATE,DROP REPLICATE,DROP ROLE,INSERT TABLE,UPDATE TABLE,DELETE TABLE,SELECT TABLE,REFERENCES TABLE,GRANT TABLE,INSERT VIEW,UPDATE VIEW,DELETE VIEW,SELECT VIEW,GRANT VIEW,EXECUTE PROCEDURE,GRANT PROCEDURE,SELECT SEQUENCE,GRANT SEQUENCE,EXECUTE PACKAGE,GRANT PACKAGE,DROP PUBLIC SYNONYM,ADMIN REPLAY,ADMIN BUFFER,CREATE TABLESPACE,ALTER TABLESPACE,DROP TABLESPACE,CREATE MATERIALIZED VIEW,SELECT MATERIALIZED VIEW,CREATE DOMAIN,GRANT DOMAIN,USAGE DOMAIN,DUMP TABLE,ADMIN JOB to “test” with admin option;

3.数据库迁移

3.1.数据库迁移

运行DM数据迁移工具
在这里插入图片描述

在这里插入图片描述

新建工程

在这里插入图片描述
在这里插入图片描述

新建迁移任务

在这里插入图片描述在这里插入图片描述

下一步

在这里插入图片描述
在这里插入图片描述输入源数据库信息

在这里插入图片描述

输入目标数据库信息
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

确认迁移任务信息,点击完成即开始迁移

在这里插入图片描述

迁移完成,并且没有报错。

3.2.迁移过程报错处理
如迁移过程有报错,需查看具体错误信息再做处理。

附:Oracle 11g数据库迁移到达梦8的部分错误信息及处理方法
3.2.1.错误提示:无效的序列属性
/* 执行任务: 创建序列"TEST".“LUO” /
/
任务失败: 创建序列"TEST".“LUO” /
/
第6 行附近出现错误:
无效的序列属性 /
/
相关SQL语句: */
CREATE SEQUENCE “TEST”.“LUO”
INCREMENT BY 1
START WITH 29
MAXVALUE 9223372036854775807
MINVALUE 0
CACHE 20;

解决:迁移后在目标数据库执行以下SQL语句,注意MINVALUE 的值改为1
CREATE SEQUENCE “TEST”.“LUO”
INCREMENT BY 1
START WITH 29
MAXVALUE 9223372036854775807
MINVALUE 1
CACHE 20;
3.2.2.错误提示:语法分析出错
1、/* 执行任务: 创建视图"TEST".“V_INFO_DETAIL” /
/
任务失败: 创建视图"TEST".“V_INFO_DETAIL” /
/
第 5 行, 第 38 列[TOP]附近出现错误:
语法分析出错 /
/
相关SQL语句: */
CREATE VIEW “TEST”.“V_INFO_DETAIL” (“PKID”,“INFOID”,“INFOTITLE”,“KEYWORDS”,“CLASSID”,“AUTHORID”,“AUTHORNAME”,“ORGANIZATIONID”,“ORGANIZATIONNAME”,“INFOPATH”,“HITS”,“INCLUDEIMAGE”,“IMAGEPATH”,“IMPORTANTLEVEL”,“TOP”,“CREATETIME”,“PUBLISHTIME”,“ATTACHID”,“ATTACHDIR”,“ATTACHFILE”,“ATTACHTYPE”,“ACTIDS”,“CLASSNAME”)
AS
SELECT i.INFOID||(case when ATTACHID is null then ‘’ else ATTACHID end) AS PKID,i.INFOID, i.INFOTITLE, i.KEYWORDS, i.CLASSID, i.AUTHORID, i.AUTHORNAME,
i.ORGANIZATIONID, i.ORGANIZATIONNAME, i.INFOPATH, i.HITS, i.INCLUDEIMAGE,
i.IMAGEPATH, i.IMPORTANTLEVEL, i.TOP, i.CREATETIME, i.PUBLISHTIME,
a.ATTACHID, a.ATTACHDIR, a.ATTACHFILE, a.ATTACHTYPE, f_getrights(i.INFOID)
as actids,c.classname
FROM T_CM_INFO_INST i
left join V_INFO_ATTACHFILE a
on(i.INFOID = a.INFOID),T_CM_INFO_CLASS_DEF c
WHERE i.classid=c.classid
and i.infostate=2
;

解决方法:达梦SQL的语法与oracle不同。top处增加””,SQL语句在目标数据库执行。
CREATE VIEW “TEST”.“V_INFO_DETAIL” (“PKID”,“INFOID”,“INFOTITLE”,“KEYWORDS”,“CLASSID”,“AUTHORID”,“AUTHORNAME”,“ORGANIZATIONID”,“ORGANIZATIONNAME”,“INFOPATH”,“HITS”,“INCLUDEIMAGE”,“IMAGEPATH”,“IMPORTANTLEVEL”,“TOP”,“CREATETIME”,“PUBLISHTIME”,“ATTACHID”,“ATTACHDIR”,“ATTACHFILE”,“ATTACHTYPE”,“ACTIDS”,“CLASSNAME”)
AS
SELECT i.INFOID||(case when ATTACHID is null then ‘’ else ATTACHID end) AS PKID,i.INFOID, i.INFOTITLE, i.KEYWORDS, i.CLASSID, i.AUTHORID, i.AUTHORNAME,
i.ORGANIZATIONID, i.ORGANIZATIONNAME, i.INFOPATH, i.HITS, i.INCLUDEIMAGE,
i.IMAGEPATH, i.IMPORTANTLEVEL, i.”TOP”, i.CREATETIME, i.PUBLISHTIME,
a.ATTACHID, a.ATTACHDIR, a.ATTACHFILE, a.ATTACHTYPE, f_getrights(i.INFOID)
as actids,c.classname
FROM T_CM_INFO_INST i
left join V_INFO_ATTACHFILE a
on(i.INFOID = a.INFOID),T_CM_INFO_CLASS_DEF c
WHERE i.classid=c.classid
and i.infostate=2
;

2、SQL包含非空格的空白字符(err_time前面)
在这里插入图片描述

将报错的SQL拷到文件编辑工具,如:Notepad。视图-显示符号-显示所有符号,找到非空格的空白字符,删除后,将SQL拷到目的数据库执行。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值