Oracle数据库迁移达梦数据库
2026/8/31 6:36:32 网站建设 项目流程

文章目录

  • Oracle数据库迁移达梦数据库
    • 概述
    • 源库环境准备
      • Oracle数据库安装
      • 数据库实例配置
      • 创建测试用户与业务对象
      • 源库连接信息确认
    • 迁移前评估
      • 启动DTS工具
      • 创建评估工程与节点
      • 配置评估数据源
      • 配置评估内容与策略
      • 选择评估对象
      • 执行评估并查看报告
    • 执行迁移
      • 创建迁移节点
      • 配置迁移数据源
      • 配置迁移策略
      • 选择迁移对象
      • 执行迁移任务
    • 迁移后对比
      • 创建对比节点
      • 配置对比选项
      • 选择对比对象
    • 验证迁移结果
      • 验证测试表
      • 验证视图
      • 验证函数
      • 验证存储过程
      • 验证触发器
    • 学习总结

Oracle数据库迁移达梦数据库

使用DTS工具完成Oracle到DM的迁移评估、执行、对比与验证

概述

本次学习通过达梦数据迁移工具DTS,完成从Oracle数据库到达梦数据库的完整迁移示范过程。整个流程包括源库环境准备、迁移前兼容性评估、执行数据迁移、迁移后数据对比以及迁移结果验证五个阶段,全面掌握异构数据库迁移的标准流程和关键要点。

项目配置
源数据库Oracle 21.3 XE(Windows环境)
目标数据库达梦DM8(Linux环境)
迁移工具达梦DTS(Data Migration Tool)
迁移对象表、视图、函数、存储过程、触发器
迁移模式C##USER_A

源库环境准备

Oracle数据库安装

在Windows宿主机环境下完成Oracle数据库的安装,本次实战使用Oracle 21.3 XE版本。解压缩安装包后点击setup.exe启动安装向导,按照提示完成软件安装。

数据库实例配置

Oracle软件安装完成后,需创建数据库实例才能进行数据存储。使用Database Configuration Assistant(DBCA)工具进行实例配置,主要步骤如下:

  • 在数据库操作中选择"创建数据库"
  • 创建模式选择"高级配置"
  • 部署类型选择"单实例数据库"
  • 设置数据库标识:全局数据库名为orcl.dameng.com,SID为XE
  • 存储选项保持默认文件系统
  • 网络配置确保监听端口为1521
  • 设置SYS、SYSTEM等管理员账号密码
  • 确认配置无误后点击"完成"开始创建实例


创建测试用户与业务对象

使用SYS管理员登录Oracle数据库,创建测试用户并授予必要权限:

-- 创建用户CREATEUSERC##USER_A IDENTIFIED BY "Dameng123!";-- 授予权限GRANTCONNECT,RESOURCETOC##USER_A;GRANTCREATEVIEW,CREATEPROCEDURE,CREATETRIGGERTOC##USER_A;GRANTUNLIMITEDTABLESPACETOC##USER_A;

切换到C##USER_A用户,创建测试业务对象,包括部门表DEPT、员工表EMP,并插入测试数据;同时创建视图、函数、存储过程和触发器等数据库对象,用于验证迁移的完整性。

-- 创建部门表CREATETABLEDEPT(DEPTNOINTPRIMARYKEY,DNAMEVARCHAR(50),LOCVARCHAR(50));-- 创建员工表CREATETABLEEMP(EMPNOINTPRIMARYKEY,ENAMEVARCHAR(50),JOBVARCHAR(30),MGRINT,HIREDATEDATE,SALDECIMAL(10,2),COMMDECIMAL(10,2),DEPTNOINTREFERENCESDEPT(DEPTNO));-- 插入测试数据INSERTINTODEPTVALUES(10,'ACCOUNTING','NEW YORK');INSERTINTODEPTVALUES(20,'RESEARCH','DALLAS');INSERTINTODEPTVALUES(30,'SALES','CHICAGO');INSERTINTOEMPVALUES(7369,'SMITH','CLERK',7902,DATE'1980-12-17',800,NULL,20);INSERTINTOEMPVALUES(7499,'ALLEN','SALESMAN',7698,DATE'1981-02-20',1600,300,30);COMMIT;


源库连接信息确认

迁移前确认Oracle源库的连接参数,确保达梦DTS工具能够正常访问源库:

参数说明
宿主机IP192.168.1.xxxOracle所在Windows主机IP
监听端口1521Oracle默认监听端口
服务名orcl.dameng.com全局数据库名
用户名C##USER_A迁移用户
密码Dameng123!用户密码

注意:需要确保Windows防火墙开放1521端口,且Oracle监听服务正常运行。

迁移前评估

在正式迁移前,对迁移任务进行评估是确保迁移成功的必要环节。评估能提前发现源数据库与目标数据库之间的兼容性问题,包括对象语法兼容性、字符集兼容性、对象类型支持度及数据量评估等,有效降低迁移风险。

启动DTS工具

在达梦数据库所在的Linux环境下,开启图形化界面权限并设置DISPLAY变量,进入达梦安装目录的tool目录,执行./dts启动达梦数据迁移工具。

# 设置图形化显示exportDISPLAY=:0.0# 进入工具目录cd/home/dmdba/dmdbms/tool# 启动DTS./dts

创建评估工程与节点

在DTS工具中创建迁移工程oracle_to_dm,在工程下的评估目录中新建评估任务assess_employee,迁移路径选择ORACLE => DM

配置评估数据源

配置Oracle源库连接信息,包括主机IP、端口、服务名、用户名和密码。配置完成后点击"测试连接",确认源库连接正常。

配置评估内容与策略

本次评估对象数量较少,选择"选择评估对象"方式手动指定待评估对象。由于数据量较小,无需统计表信息,评估SQL和程序兼容性时按默认选项处理,保持默认单线程执行即可。

选择评估对象

指定评估模式为C##USER_A,选择该模式下所有对象,包括两张测试表(DEPT、EMP)、视图、函数、存储过程和触发器。

执行评估并查看报告

完成所有配置后,确认评估任务配置无误,点击"完成"开始执行评估。评估完成后查看评估报告,分析兼容性结果。

本次评估结果显示,该版本Oracle数据库对象与达梦数据库兼容性较好。其中触发器存在不兼容项,其他对象完全兼容或转换后兼容。对于不兼容的对象,DTS会给出具体的不兼容原因和修改建议,需要在迁移前或迁移后进行人工调整。

执行迁移

创建迁移节点

在工程oracle_to_dm下的迁移目录中新建迁移任务migrate_employee,迁移路径选择ORACLE => DM

配置迁移数据源

分别配置源端和目的端的数据源连接:

  • 源端Oracle配置:与评估节点配置一致
  • 目的端达梦配置:配置达梦目标库的IP、端口、用户名和密码,测试连接确认正常

配置迁移策略

迁移策略与评估节点配置相同,选择"选择迁移对象"方式,手动指定需要迁移的对象。

选择迁移对象

指定对象所在模式为C##USER_A,勾选需要迁移的所有对象类型,包括该模式下的两张表(DEPT、EMP)、视图、存储过程、函数与触发器。


执行迁移任务

查看迁移任务配置,确认源端和目的端对象对应关系无误后,点击"完成"开始执行迁移。迁移过程中可以查看每个对象的迁移状态和进度。

注意:如果目的端达梦数据库中已存在同名表,表迁移会失败。需要先删除目的端已存在的对象,或者在迁移策略中选择"删除已存在对象"选项。

迁移后对比

迁移完成后,需要对源库和目标库的对象定义和数据进行对比,验证迁移的准确性和完整性。

创建对比节点

在DTS工具中创建对比节点,数据源配置与迁移节点保持一致,源端为Oracle,目的端为达梦。

配置对比选项

选择"对比指定类型的对象",对比策略保持默认。对比内容包括对象定义(DDL语句)和数据(DML依据)两个维度。

选择对比对象

指定C##USER_A模式并选择该模式下所有对象,执行对比。对比完成后查看对比报告,获取对比结果。


本次对比结果显示,不一致数量为0,说明源端和目的端C##USER_A模式下的对象定义和数据完全一致,迁移成功。

验证迁移结果

使用达梦管理工具Manager或disql命令行工具连接达梦目标库,对迁移过来的对象进行功能验证,确保所有对象都能正常使用。

验证测试表

查询DEPT和EMP表的数据,确认数据完整且与源库一致:

-- 查询部门表SELECT*FROMC##USER_A.DEPT ORDER BY DEPTNO;-- 查询员工表SELECT*FROMC##USER_A.EMP ORDER BY EMPNO;-- 统计数据量SELECTCOUNT(*)FROMC##USER_A.DEPT;SELECTCOUNT(*)FROMC##USER_A.EMP;

验证视图

查询迁移过来的视图,确认视图定义正确且能正常查询:

-- 查询视图SELECT*FROMC##USER_A.V_EMP_DEPT;-- 查看视图定义SELECTTEXTFROMALL_VIEWSWHEREOWNER='C##USER_A'ANDVIEW_NAME='V_EMP_DEPT';

验证函数

调用迁移过来的函数,确认函数能正常执行并返回正确结果:

-- 调用函数SELECTC##USER_A.FN_SALARY_LEVEL(5000) FROM DUAL;SELECTC##USER_A.FN_SALARY_LEVEL(15000) FROM DUAL;

验证存储过程

执行迁移过来的存储过程,确认存储过程能正常运行:

-- 执行存储过程CALLC##USER_A.SP_GET_EMPLOYEES_BY_DEPT(20);-- 或使用EXECEXECC##USER_A.SP_GET_EMPLOYEES_BY_DEPT(20);

验证触发器

执行触发触发器的操作,确认触发器能正常触发并执行预期逻辑:

-- 插入数据触发触发器INSERTINTOC##USER_A.EMP(EMPNO, ENAME, JOB, DEPTNO)VALUES(9999,'TEST','CLERK',10);-- 验证触发器执行结果SELECT*FROMC##USER_A.EMP WHERE EMPNO = 9999;-- 清理测试数据DELETEFROMC##USER_A.EMP WHERE EMPNO = 9999;COMMIT;

📸 截图位置17:触发器验证结果

学习总结

通过本次Oracle到达梦的完整迁移实践,深入掌握了异构数据库迁移的标准流程和关键要点:

  1. Oracle数据库安装完成后同样需要创建数据库实例才能执行SQL,实例配置通过DBCA工具完成,监听端口默认1521。
  2. 迁移前进行兼容性评估是必要环节,能提前发现对象语法不兼容问题,有效降低迁移风险。评估报告会给出每个对象的兼容性状态和修改建议。
  3. 达梦DTS工具支持Oracle到DM的完整迁移,包括表、视图、函数、存储过程、触发器等多种对象类型,迁移过程可视化,操作简便。
  4. 迁移后进行数据对比是验证迁移准确性的关键步骤。通过对比源端和目的端的对象定义和数据,可以确认迁移是否完整、准确。本次对比结果不一致数量为0,证明迁移成功。
  5. 迁移完成后需要对所有对象进行功能验证,包括表数据查询、视图查询、函数调用、存储过程执行和触发器触发,确保每个对象都能在达梦环境下正常运行。
  6. 对于评估中标记为不兼容的对象(如部分触发器语法),需要在迁移后进行人工检查和调整,确保业务逻辑正确。
  7. 整个迁移流程(评估→迁移→对比→验证)形成了完整的闭环,是生产环境数据库迁移的标准方法论,值得在实际项目中推广应用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询