尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DTS工具mysql迁移达梦实战

DTS工具mysql迁移达梦实战 DTS工具mysql迁移达梦实战**DTS工具简介DTS工具介绍DM 数据迁移工具DM Data Transformation Service简称 DTS。DTS 是提供数据迁移功能及与之相关的辅助功能的工具主要功能有迁移前的评估、迁移、迁移后对比以及异构数据库到 DM 的SQL语句转换功能等。迁移路径主要包括主流大型数据库迁移到 DM、DM 迁移到主流大型数据库、DM 到 DM、文件迁移到 DM 以及 DM 迁移到文件等。迁移内容包括数据库中的各类对象和对象中存储的数据具体根据不同迁移配置略有区别。主要功能迁移:迁移包括迁移管理迁移配置以及迁移实施。迁移管理是把迁移分成项目和组进行管理可以对迁移进行增删改查迁移配置以向导方式供用户配置迁移信息迁移实施是根据迁移配置生成迁移任务分发执行迁移任务。对比:对比同样包括对比管理对比配置以及对比实施。对比管理是把对比分成项目和组进行管理可以对对比进行增删改查对比配置以向导方式供用户配置对比信息对比实施是根据对比配置生成对比任务分发执行对比任务。评估:评估同样包括评估管理评估配置以及评估实施。评估管理是把评估分成项目合组进行管理可以对评估进行增删改查评估配置以向导方式供用户配置评估信息评估实施是根据评估配置生成评估任务分发执行评估任务。转换:转换包括转换管理转换配置和转换执行。转换管理是指把转换分成项目和组进行管理可以对转换进行增删改查转换配置可以配置转换规则也可以为部分转换规则配置参数转换执行是指执行从源数据源到目的数据源的SQL转换操作。DTS入门系统架构DTS 系统结构分为单机 DTS 和多机 DTS。对于轻量级任务DTS 可以在单机上执行消耗较少资源即可满足用户需求。然而当业务较为复杂对性能要求较高时就需要多台机器联合执行。本文中仅介绍单机操作。2.2单机DTSDTS 采用插件式的体系结构来实现功能每个数据源之间的迁移/对比/评估/转换以插件的方式加入系统。系统结构图如下****其中迁移功能是从源端数据库或文件中通过 jdbc 或读取文件的 API 读取对象和数据信息通过对象和数据转换把对象和数据迁移到目的端的数据库或文件中。其中配置文件用于保存迁移的元数据信息包括迁移管理的迁移信息和迁移配置信息迁移过程中会把迁移日志写到日志文件中把迁移过程中出错的数据信息写到错误文件中。对比功能是分别从源端和目的端数据库或文件中通过 jdbc 或读取文件的 API 读取对象和数据信息进行对比。其中配置文件用于保存对比的元数据信息包括对比管理的对比信息和对比配置信息对比过程中会把对比日志写到日志文件中把对比过程中不一致的对象/数据写到不一致文件中。评估功能是从源端数据库通过 jdbc 读取对象和数据信息进行评估。其中配置文件用于保存评估的元数据信息包括评估管理的评估信息和评估配置信息评估过程中会把评估日志写到日志文件中。转换功能分为两步一是根据源端数据库SQL语法规则解析源SQL二是根据配置的转换规则转换成符合目的端数据库SQL语法规则的SQL2.3使用DTSDTS 可以通过命令行和图形化两种方式使用其功能。使用命令行执行迁移等各类功能操作简单迅速但要求用户提前准备好配置文件图形化操作稍微复杂但可以在没有配置文件时当下进行配置。另外图形化操作也可以生成配置文件用于命令行进行迁移等操作。准备工作DTS图形化页面打开在DTS安装机器上执行export display 本机ip:00,00然后执行xhost 在DTS程序目录下执行./dts打开图形化界面。mysql准备工作在源端mysql数据库中创建一张测试表并向表中插入一定量的数据用于测试。表创建CREATE TABLEmigrate_test(idBIGINT NOT NULL AUTO_INCREMENT COMMENT ‘主键自增ID’,user_nameVARCHAR(64) NOT NULL COMMENT ‘用户名’,ageTINYINT DEFAULT NULL COMMENT ‘年龄’,scoreDECIMAL(10,2) DEFAULT 0.00 COMMENT ‘分数小数’,statusTINYINT DEFAULT 1 COMMENT ‘状态 1启用 0禁用’,create_timeDATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,update_timeDATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,birthdayDATE DEFAULT NULL COMMENT ‘生日日期’,remarkTEXT COMMENT ‘大文本备注’,content_longLONGTEXT COMMENT ‘超长文本’,phoneVARCHAR(20) DEFAULT NULL COMMENT ‘手机号’, PRIMARY KEY (id), UNIQUE KEYuk_phone(phone), KEYidx_status_createtime(status,create_time) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT‘MySQL迁移达梦综合测试表’;创建存储过程存入数据SET GLOBAL log_bin_trust_function_creators 1;DELIMITER $$DROP PROCEDURE IF EXISTS proc_insert_migrate_5w $$CREATE PROCEDURE proc_insert_migrate_5w(IN p_total INT)BEGINDECLARE v_batch_size INT DEFAULT 1000;DECLARE v_loop_cnt INT DEFAULT 0;DECLARE v_max_loop INT;– 当前表最大idDECLARE v_start_id BIGINT;SET v_max_loop CEIL(p_total / v_batch_size);SELECT IFNULL(MAX(id),0) INTO v_start_id FROM migrate_test;WHILE v_loop_cnt v_max_loop DOINSERT INTO migrate_test(user_name,age,score,status,birthday,remark,content_long,phone)SELECTCONCAT(‘user_’, LPAD(v_start_id row:row1,6,‘0’)) AS user_name,FLOOR(RAND()*35 18) AS age,ROUND(RAND()*45 50,2) AS score,FLOOR(RAND()*2) AS status,DATE_ADD(‘1985-01-01’, INTERVAL FLOOR(RAND()*15000) DAY) AS birthday,CONCAT(‘迁移测试备注_’,v_start_id row) AS remark,CONCAT(‘【LONGTEXT迁移校验】MySQL迁移达梦大文本字段序号:’,v_start_id row,’ AAAAABBBBBCCCCCDDDDDEEEEE’) AS content_long,– 用序号生成唯一手机号13 9位数字保证永不重复CONCAT(‘13’,LPAD((v_start_id row),9,‘0’)) AS phoneFROM information_schema.tables t1, information_schema.tables t2CROSS JOIN (SELECT row:0) varLIMIT v_batch_size;SET v_loop_cnt v_loop_cnt 1;END WHILE;END $$DELIMITER ;– 调用生成5万条CALL proc_insert_migrate_5w(50000);4.DTS迁移4.1创建迁移任务打开DTS工具页面在工程组中选中迁移创建新的迁移流程设置迁移队列名称在迁移流向中选择mysql-dm流向4.2添加数据源信息4.2.1添加源端信息在页面填写源端mysql的信息输入数据源地址用户名密码如下图所示。4.2.2 添加目标端信息在页面填写目标端达梦的信息输入数据源地址用户名密码如下图所示4.3迁移选项4.3.1 迁移配置在页面上选择获取迁移对象方式和迁移策略本次测试获取迁移对象方式使用选择迁移对象迁移策略选择出错后继续执行使用默认数据类型映射关系。4.3.2 选择迁移对象在页面中选择本次所迁移的库选择完成后进入下一步选择需要迁移的表4.3.3 选择执行方式选择执行方式可以选择远程执行和在本机执行本次测试使用在本机执行远程执行可以通过添加主机信息进行4.3.4审阅迁移任务在审阅迁移任务页面可以查看本次迁移任务的详细信息在该界面可以点击测试模块对映射配置进行调整。4.3.5 启动迁移在审阅迁移完成后点击完成程序会自动开始迁移任务具体信息如下图。可以点击迁移报告查看迁移完成信息**4.3.6 目标库验证源端表结构源端表数据量目标端表结构目标端表数据量本次DTS迁移验证成功实战完毕想了解跟多内容可以查看达梦社区https://eco.dameng.com
返回列表