其他数据库到DM的迁移

迁移工具

dmdbms/tools/dts

迁移前提

先创建目的数据库的用户和表空间

迁移步骤

创建迁移
  • 打开 DMDTS 迁移工具点击左上方的 3 色图标新建迁移工程。

  • 打开刚刚创建的工程右键点击“迁移”,选择“新建迁移”。

新建迁移,自定义迁移名称。

  • 新建迁移完成后点击下一步。
  • 从“其他数据库迁移到达梦”选项中选择迁移方式为“Oracle ==> DM”。
  • 选择迁移方式:SQL SERVER–>DM 迁移。
连接数据库

迁移方式选择完毕后开始连接数据库,首先连接源端 Oracle 数据库,再连接目的端 DM 数据库。

  • 连接源端 Oracle 数据库。
    输入源端 Oracle 数据库相关登录信息,在“数据库名”选项中选择需要迁移的数据库。

    在创建连接 Oracle 数据库时建议通过指定驱动的方式来连接数据库,避免因为驱动版本不适配等问题导致迁移失败。驱动可以在 Oracle 官网获取与 Oracle 迁移版本相对应的驱动。
  • 连接源端Sql Server数据库
    1)主机名:SQL Server 数据库所在的主机名或 IP 地址。
    2)端口:SQL Server 端口号,默认 1433。
    3)用户名:SQL Server 的用户名,默认为 sa。
    4)口令:SQL Server 数据库用户名对应的密码。
    5)数据库名:点【刷新】按钮获取已有的数据库,在数据库下拉列表中选择需要连接的库。如果选择【默认】,则连接到 master 库上。本例选择迁移 bk_stores 数据库。
  • 连接目的端 DM 数据库。
    输入目的端 DM 数据库相关登录信息,选择与源端对应的迁移用户连接数据库。
    配置迁移对象及策略。
  • 迁移对象方式及迁移策略中勾选“保持对象名大小写”。

    当勾选了“使用默认数据类型映射关系”后在迁移时 DTS 会将源端 Oracle 数据库中相应的数据类型采用默认的映射关系映射到目的端 DM 数据库中。如果在这里勾选了“使用默认数据类型映射关系”,后面又自定义了数据类型映射关系,DTS 会优先选择使用自定义的数据映射关系。

    在“迁移策略”点击“查看数据类型映射关系”可以查看源端 Oracle 到目的端 DM 的数据类型映射关系,包括“源数据类型名”、“源精度”、“源标度”、“目的数据类型名”、“目的精度”等等。
  • 勾选源端待迁移的模式。
    这需要勾选源端待迁移的模式下的数据。
    在指定模式阶段,用户可以通过“源模式”选择源端要迁移的模式,通过“目的模式”来指定迁移到 DM 的模式,通过是否勾选“创建模式”、“表”、“视图”、“存储过程/函数”、“触发器”来指定目的端 DM 是否要迁入源端 Oracle 中的这些对象。由于在 DM 数据库准备阶段已经提前将 DBTEST 模式创建好了,这里就不勾选“创建模式”。
  • 勾选源端数据库中需要迁移的模式下的数据对象。
    这里可以看到源端待迁移模式下所有的数据对象,用户可以自定义选择 Oracle 需要迁移的具体对象。
      注意
      在 SQL 评估阶段不兼容的对象不需要勾选,待其它对象迁移完成后,再手动修改和导入这些不兼容的对象。
    用户可以通过点击右上方的“分析源对象”统计选中的源端待迁移对象。用户可以通过该功能对源端迁移对象进行统计分析,包括“源对象统计”、“源表统计”、“源表详细”。

    待迁移具体对象勾选完毕后可以通过点击转换进行自定义对象迁移策略。
  • 自定义对象迁移策略。
    点击转换后可以设置表的映射关系,包括迁移策略和列映射选项。
    ① 迁移策略。
    在迁移策略中可根据需要设置表及数据迁移的策略。在左侧选项中可以选择“表定义”、“主键”、“约束”、“索引”等的迁移策略;在右侧选项中可以配置与迁移数据相关的策略。

    部分选项说明:
    a. 压缩:指定迁移的目的表是否按照压缩方式存储。
    b. 强制聚集索引:即使源表的主键为非聚集主键,创建目的表时也会被转换为聚集主键。
    c. 强制非聚集索引:即使源表的主键为聚集主键,创建目的表时也会被转换为非聚集主键。
    d. 启用标志列插入:如果表上有标志列,则迁移数据时会强制向标志列插入值,以保证源和目的数据完全一致
    e. 显示行数:将在迁移任务过程中,显示数据的行数。
    f. 拷贝记录:如果目的表已存在,直接拷贝记录,不需要创建表。
    g. 删除后拷贝记录:迁移过程中先删除已存在的目的表,再重新创建新目的表。
    h. 源一次读取行数:设置从数据源中读取数据时每次读取数据的行数,该参数决定内存中缓存结果集的大小,对于数据量很大的数据源,设置该参数,可以控制内存的使用。
    i. 目的一次提交行数:设置向目的数据库中每次写入数据的行数。当数据量比较大时,减小该参数的值可以减少内存的使用。但会影响迁移的速度。
    j. 缓存批数:设置缓存队列的长度。调整该参数可以调整迁移过程中内存的使用。
      注意
      如果数据量较大,可以选着先迁移表结构定义相关内容,再迁移数据,最后迁移索引。
    ② 列映射选项。
    在列映射选项中可根据需求修改源端迁移到目的端表的列名、数据类型、精度、小数位数、默认值、是否可空、主键、自增列、起始值、增量信息等。

    完成映射关系的配置后,需要勾选“应用当前选择项到其他同类对象”,选择该选项后,将弹出对话框,选择其他同类对象,将此策略应用到相同对象上。如果不勾选“应用当前选择项到其他同类对象”,那么配置的迁移策略只会对当前选中的表生效。
    开始迁移
  • 检查迁移任务,确认迁移对象是否正确。
  • 检查确认后点击“完成”即可开始迁移。
    对象补迁
    由于 Oracle 和 DM 数据库在某些语法使用上存在差异,导致某些对象可能会迁移失败,再加上在迁移评估阶段语法不兼容的对象,用户需要根据 DM 语法手动修改这些无法使用工具迁移的对象再导入到 DM 数据库中。
文档更新时间: 2025-06-13 14:42   作者:方杰