ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MySQL数据库迁移达梦数据库学习报告

2026/8/31 6:36:35 拓冰建站 浏览量
MySQL数据库迁移达梦数据库学习报告 文章目录MySQL数据库迁移达梦数据库学习报告概述源库环境准备MySQL数据库安装数据库实例配置创建测试数据库与业务对象源库连接信息确认迁移前评估启动DTS工具创建评估工程与节点配置评估数据源配置评估内容与策略选择评估对象执行评估并查看报告执行迁移创建迁移节点配置迁移数据源配置迁移策略选择迁移对象执行迁移任务迁移后对比创建对比节点配置对比选项选择对比对象对比中的精度差异说明验证迁移结果验证测试表验证视图验证函数验证存储过程验证触发器学习总结MySQL数据库迁移达梦数据库学习报告使用DTS工具完成MySQL到DM的迁移评估、执行、对比与验证概述本次学习通过达梦数据迁移工具DTS完成从MySQL数据库到达梦数据库的完整迁移示范过程。整个流程包括源库环境准备、迁移前兼容性评估、执行数据迁移、迁移后数据对比以及迁移结果验证五个阶段全面掌握异构数据库迁移的标准流程和关键要点。项目配置源数据库MySQL 8.0.46Windows环境目标数据库达梦DM8Linux环境迁移工具达梦DTSData Migration Tool迁移对象表、视图、函数、存储过程、触发器迁移数据库db_mysql源库环境准备MySQL数据库安装在Windows宿主机环境下完成MySQL数据库的安装本次实战使用MySQL 8.0.46版本。通过MySQL Installer安装向导完成软件安装。数据库实例配置MySQL软件安装完成后通过MySQL Installer进行实例配置主要步骤如下类型与网络配置类型选择Development Computer端口保持默认3306确保网络开放以便Linux端DTS工具访问设置管理员root密码设置root密码为Mysql123设置Windows服务自动生成服务名MySQL80设置为开机自启执行配置确认所有配置项无误后点击Execute执行配置创建测试数据库与业务对象使用root用户登录MySQL创建测试数据库并设置字符集-- 创建数据库字符集设为utf8mb4CREATEDATABASEdb_mysqlDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;-- 切换到该数据库USEdb_mysql;在db_mysql数据库中创建部门表dept与员工表emp并插入测试数据-- 创建部门表CREATETABLEdept(deptnoINTPRIMARYKEY,dnameVARCHAR(50),locVARCHAR(50));-- 创建员工表CREATETABLEemp(empnoINTPRIMARYKEY,enameVARCHAR(50),jobVARCHAR(30),mgrINT,hiredateDATE,salDECIMAL(10,2),commDECIMAL(10,2),deptnoINT,createtimeDATETIME,remarkVARCHAR(200),FOREIGNKEY(deptno)REFERENCESdept(deptno));-- 插入测试数据INSERTINTOdeptVALUES(10,ACCOUNTING,NEW YORK);INSERTINTOdeptVALUES(20,RESEARCH,DALLAS);INSERTINTOdeptVALUES(30,SALES,CHICAGO);INSERTINTOempVALUES(7369,SMITH,CLERK,7902,1980-12-17,800,NULL,20,NOW(),NULL);INSERTINTOempVALUES(7499,ALLEN,SALESMAN,7698,1981-02-20,1600,300,30,NOW(),NULL);COMMIT;在表的基础上创建多种数据库对象包括视图、存储过程、函数和触发器-- 创建视图CREATEVIEWv_emp_deptASSELECTe.empno,e.ename,e.sal,d.dnameFROMemp eJOINdept dONe.deptnod.deptno;-- 创建函数DELIMITER//CREATEFUNCTIONfn_salary_level(salDECIMAL(10,2))RETURNSVARCHAR(20)DETERMINISTICBEGINIFsal3000THENRETURN高薪;ELSEIFsal1000THENRETURN中薪;ELSERETURN普通;ENDIF;END//DELIMITER;-- 创建存储过程DELIMITER//CREATEPROCEDUREsp_get_employees_by_dept(INp_deptnoINT)BEGINSELECT*FROMempWHEREdeptnop_deptno;END//DELIMITER;-- 创建触发器DELIMITER//CREATETRIGGERtrg_emp_before_insert BEFOREINSERTONempFOR EACH ROWBEGINIFNEW.remarkISNULLTHENSETNEW.remarkCONCAT(自动生成,NEW.ename,的入职记录);ENDIF;END//DELIMITER;源库连接信息确认迁移前确认MySQL源库的连接参数确保达梦DTS工具能够正常访问源库参数值说明宿主机IP192.168.1.xxxMySQL所在Windows主机IP端口3306MySQL默认端口数据库名db_mysql迁移的数据库用户名root迁移用户密码Mysql123用户密码注意需要确保Windows防火墙开放3306端口且MySQL用户允许从远程IP连接需要执行GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY 密码;并执行FLUSH PRIVILEGES;。迁移前评估在正式迁移前对迁移任务进行评估是确保迁移成功的必要环节。评估能提前发现源数据库与目标数据库之间的兼容性问题包括对象语法兼容性、字符集兼容性、对象类型支持度以及数据量评估等。启动DTS工具在达梦数据库所在的Linux环境下开启图形化界面权限并设置DISPLAY变量进入达梦安装目录的tool目录执行./dts启动达梦数据迁移工具。# 设置图形化显示exportDISPLAY:0.0# 进入工具目录cd/home/dmdba/dmdbms/tool# 启动DTS./dts创建评估工程与节点在DTS工具中创建迁移工程mysql_to_dm在工程下的评估目录中新建评估任务assess_employee迁移路径选择MySQL DM。配置评估数据源配置MySQL源库连接信息包括主机IP、端口、数据库名、用户名和密码。配置完成后点击测试连接确认源库连接正常。配置评估内容与策略本次评估对象数量较少选择选择评估对象方式手动指定待评估对象。由于数据量较小无需统计表信息评估SQL和评估策略按默认选项处理。选择评估对象指定评估数据库为db_mysql选择该数据库下所有对象包括表dept/emp、视图v_emp_dept、函数fn_salary_level、存储过程sp_get_employees_by_dept、触发器trg_emp_before_insert。执行评估并查看报告完成所有配置后确认评估任务配置无误点击完成开始执行评估。评估完成后查看评估报告分析兼容性结果。本次评估结果显示该版本MySQL数据库对象与达梦数据库兼容性较好。其中视图与触发器标记为不兼容其他对象完全兼容或转换后兼容。但在后续迁移后对比与迁移验证中证明视图与触发器实际成功迁移并能正常使用评估结果存在一定的误报情况。执行迁移创建迁移节点在工程mysql_to_dm下的迁移目录中新建迁移任务migrate_employee迁移路径选择MySQL DM。配置迁移数据源分别配置源端和目的端的数据源连接源端MySQL配置与评估节点配置一致目的端达梦配置配置达梦目标库的IP、端口、用户名和密码测试连接确认正常配置迁移策略迁移策略与评估节点配置相同选择选择迁移对象方式手动指定需要迁移的对象。选择迁移对象指定数据库为db_mysql勾选需要迁移的所有对象类型包括该数据库下的两张表dept、emp、视图、函数、存储过程和触发器。执行迁移任务查看迁移任务配置确认源端和目的端对象对应关系无误后点击完成开始执行迁移。迁移过程中可以查看每个对象的迁移状态和进度。迁移后对比迁移完成后需要对源库和目标库的对象定义和数据进行对比验证迁移的准确性和完整性。创建对比节点在DTS工具中创建对比节点数据源配置与迁移节点保持一致源端为MySQL目的端为达梦。配置对比选项选择对比指定类型的对象对比策略保持默认。对比内容包括对象定义DDL语句和数据DML依据两个维度。注意对比时不要勾选忽略大小写选项。如果勾选忽略大小写在对比执行时可能出现定义与数据不一致的情况。因为MySQL中的表字段名是小写而达梦实例配置了大小写敏感CASE_SENSITIVEY迁移后字段名会自动转为大写忽略大小写会导致对比逻辑混乱。选择对比对象指定db_mysql模式并选择该模式下所有对象执行对比。对比完成后查看对比报告获取对比结果。 截图位置12对比报告结果本次对比结果显示不一致数量为0说明源端和目的端db_mysql模式下的对象和数据完全一致迁移成功。对比中的精度差异说明在对比过程中发现emp表和dept表的createtime字段DATETIME类型存在显示精度差异MySQL数据库DATETIME精度为秒显示格式为16:43:31.0达梦数据库DATETIME类型支持纳秒级精度显示格式为16:43:31.000000000这是由于两个数据库的DATETIME类型默认精度不同导致的显示差异实际数据值是一致的不影响数据的正确性。如果需要统一显示格式可以在达梦端通过TO_CHAR函数指定格式输出。验证迁移结果使用达梦管理工具Manager连接达梦目标库在模式中可以看到从MySQL迁移过来的db_mysql模式。对迁移过来的对象进行功能验证确保所有对象都能正常使用。验证测试表查询dept和emp表的数据确认数据完整且与源库一致-- 查询部门表SELECT*FROMdb_mysql.deptORDERBYdeptno;-- 查询员工表SELECT*FROMdb_mysql.empORDERBYempno;-- 统计数据量SELECTCOUNT(*)FROMdb_mysql.dept;SELECTCOUNT(*)FROMdb_mysql.emp;验证视图查询迁移过来的视图确认视图定义正确且能正常查询-- 查询视图SELECT*FROMdb_mysql.v_emp_dept;-- 查看视图定义SELECTTEXTFROMALL_VIEWSWHEREOWNERDB_MYSQLANDVIEW_NAMEV_EMP_DEPT;验证函数调用迁移过来的函数确认函数能正常执行并返回正确结果-- 调用函数SELECTdb_mysql.fn_salary_level(5000)FROMDUAL;SELECTdb_mysql.fn_salary_level(15000)FROMDUAL;验证存储过程执行迁移过来的存储过程确认存储过程能正常运行-- 执行存储过程CALLdb_mysql.sp_get_employees_by_dept(20);验证触发器插入一条数据到emp员工表触发器trg_emp_before_insert会自动开启事务并生成该条数据的remark字段验证触发器是否正常工作-- 插入数据触发触发器remark字段不指定值由触发器自动生成INSERTINTOdb_mysql.emp(empno,ename,job,mgr,hiredate,sal,comm,deptno,createtime)VALUES(9999,TEST,CLERK,7902,DATE2026-01-01,800,NULL,20,SYSDATE);-- 验证触发器执行结果remark字段应自动生成SELECTempno,ename,remarkFROMdb_mysql.empWHEREempno9999;-- 清理测试数据DELETEFROMdb_mysql.empWHEREempno9999;COMMIT;学习总结通过本次MySQL到达梦的完整迁移实践深入掌握了异构数据库迁移的标准流程和关键要点MySQL安装完成后需要通过MySQL Installer进行实例配置包括配置类型选择、端口设置、root密码设置和Windows服务配置。默认端口3306需要确保网络开放以便远程DTS工具访问。迁移前评估能提前发现兼容性问题但评估结果存在一定的误报情况。本次评估显示视图和触发器不兼容但在后续迁移后对比与验证中证明视图与触发器成功迁移并有效使用。因此评估结果仅供参考最终以迁移后实际验证为准。迁移后进行对比验证时不要勾选忽略大小写选项。因为MySQL表字段名是小写而达梦实例配置了大小写敏感CASE_SENSITIVEY迁移后字段名自动转为大写忽略大小写会导致对比时出现定义与数据不一致的误报。MySQL与达梦的DATETIME类型存在精度差异MySQL默认精度为秒达梦支持纳秒级精度。这会导致显示格式不同MySQL显示16:43:31.0达梦显示16:43:31.000000000但实际数据值一致不影响正确性。可通过TO_CHAR函数统一显示格式。达梦DTS工具支持MySQL到DM的完整迁移包括表、视图、函数、存储过程、触发器等多种对象类型。对于MySQL特有的语法如DELIMITER、AUTO_INCREMENT等DTS会自动进行语法转换。迁移完成后需要对所有对象进行功能验证包括表数据查询、视图查询、函数调用、存储过程执行和触发器触发确保每个对象都能在达梦环境下正常运行。特别是触发器需要通过实际操作验证其业务逻辑是否正确执行。整个迁移流程评估→迁移→对比→验证形成了完整的闭环是生产环境数据库迁移的标准方法论。每个环节都有其不可替代的作用评估降低风险、迁移执行数据转移、对比验证准确性、功能验证确保可用性。