DM8 数据库 DTS 迁移工具详细使用教程

最近业务上突然有了这种需求,国产化替代,优先选中了国内的噩梦。啊… 口误,是国产数据库优秀的代表达梦数据库。寻思着达梦 DTS 迁移工具的使用,发现具有多种迁移模式。比如支持 DM 到 DM,亦或是 Oracle 迁移用户数据到 DM8。
在这里插入图片描述

当然,DM8 在 Windows 下安装很简单,图形化界面,基本就是下一步下一步,注意你安装的路径。Linux 下安装稍微麻烦一点,万变不离其宗,只要注意安装过程中需要实例化(初始化 DATA,类似于 MySQL 以及 MariaDB),以及注册达梦数据库的服务 DmServiceDMSERVER。也可以参考达梦官方教程,但是坑很多。这里只是抛砖引玉,linux 下达梦数据库的部署教程以及遇到的坑也在编写中。

tips:个人使用中,感觉比较有用的几个官方手册,进行了标注,仅供参考
在这里插入图片描述

正文

一、首先介绍 Windows 下的使用

1、安装后的快捷方式启动

1.1、这样截图给人的感觉比较直观,常用的有:DM 管理工具、DM 数据迁移工具,偶尔也会用上 SQL 交互式查询工具。DM 用户手册有很多内容,实用性高的就是安装手册以及开发人员手册和管理员手册,根据个人使用总结出来的。

1.2、DM 官网直通车:https://www.dameng.com/

1.3、在官网下载技术文档以及 DM 数据库需要注册登录,可以申请开发版取到 key 解锁更多的功能。各大数据库公司都很骚,不注册没法获取官网的资源。
在这里插入图片描述

2、安装的目录 (tool 所在目录)

1
D:\software\dmdbms\tool

在这里插入图片描述

3、达梦 8 数据库 DTS 工具使用教程

3.1、DTS 迁移例子讲解,以 Oracle 中的 scott 用户迁移作为讲解。
在这里插入图片描述

3.2、DTS 设置数据源(此次迁移的库 Oracle)
在这里插入图片描述

3.3、DTS 设置目的 DM8 的连接信息(迁移的目的 DM8 数据库)
在这里插入图片描述
3.4、DTS 选择要迁移的对象(指定 scott 用户)在这里插入图片描述

3.5、DTS 迁移对象对应 scott 用户的表在这里插入图片描述
3.6、DTS 完成迁移向导,确认迁移信息。点击完成,开始迁移。
在这里插入图片描述

3.7、在 DM8 客户端管理工具验证迁移后的 scott 用户
在这里插入图片描述

二、其次介绍 linux 下的使用

1、定位 DTS 所在目录

找到 DTS 所在目录(服务器端),比如 DM8 默认安装的目录 /opt/dmdbms/,具体是 tool 还是 tools 我记不清了,容易记混。

有没有 dmdba 这一级目录,我也有点记住不住了。最终是视实际安装目录定,找到 tool 目录,里面有很多启动工具的脚本命令。你也可以创建快捷方式,放到桌面,现在国产 linux 服务器也是适配了桌面。

直接在终端运行 dts,也就是达梦数据迁移工具(普通用户需要 sudo 提权,root 用户直接运行)

1
2
#(这是我个人的安装路径)
/opt/dmdbms/bin/tool/DTS

2、定位 manager 所在目录

直接在终端运行 DM 管理工具(普通用户需要 sudo 提权,root 用户直接运行)

1
/opt/dmdbms/bin/tool/manager

三、设置自动 DM 数据自动备份

这里只是附带的记录了 DM8 设置自动备份,这里需要打开上面描述过的 DM 管理工具。

1、右键代理创建代理环境

在这里插入图片描述

2、创建代理后生成作业功能

在这里插入图片描述

3、新建作业

在这里插入图片描述

4、新建作业设置备份

在这里插入图片描述

5、作业步骤

在这里插入图片描述

6、作业调度

在这里插入图片描述

7、查看 DDL 备份语句

在这里插入图片描述

8、选择备份数据库

在这里插入图片描述

这里同样的步骤,去设置增量备份。通过设置 DDL 语句,设置定期清除备份。这里不做截图说明。

9、增量备份

1
2
3
4
5
6
7
#除周六外,每晚23:30做增量备份。你也可以在DM管理工具右键新建增量备份作业。
call SP_CREATE_JOB('increment _bak',1,0,'',0,0,'',0,'increment _bak');
call SP_JOB_CONFIG_START('increment _bak');
call SP_ADD_JOB_STEP('increment _bak', 'increment _bak', 6, '11000000D:\software\dmdbms\data\DAMENG\bak', 1, 2, 0, 0, NULL, 0);
--call SP_ADD_JOB_STEP('increment _bak', 'increment _bak', 6, '11000000D:\software\dmdbms\data\DAMENG\bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('increment _bak', 'increment _bak', 1, 2, 1, 63, 0, '23:30:00', NULL, '2021-06-25 22:03:58', NULL, '');
call SP_JOB_CONFIG_COMMIT('increment _bak');

10、定期清除备份

1
2
3
4
5
6
7
#每天00:00删除7天前的数据,定期清除备份暂未做验证,慎用。要用,把路径改下。
call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'JOB_DEL_BAK_TIMELY');
call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'', ''D:\software\dmdbms\data\DAMENG\bak'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-7);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:00:00', NULL, '2021-06-25 22:06:13', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');