优炫数据迁移系统 UXDMS
1.概述
优炫数据库(UXDB)为您带来一款强大的迁移利器——优炫数据库迁移系统(UXDMS)。它不仅是一款工具,更是一个让数据迁移化繁为简的智能平台。UXDMS专为应对多源数据库环境设计,支持异构数据库间进行数据迁移与同步。系统架构包含以下四个核心模块:
- 首页:作为系统仪表盘,集中展示服务器运行状态、任务统计概览、实时任务动态及系统公告等信息。
- 数据库连接管理:提供对源端与目标端数据库连接配置的完整生命周期管理,支持连接的创建、修改、删除与检索。
- 迁移任务管理:实现迁移任务的全程管控,包括任务的创建、修改、删除、查询,以及运行、终止、暂停、恢复、批量执行、定时调度等操作。其核心功能是将各类源数据库中的数据结构、对象及数据,完整、统一地迁移至优炫数据库。
- 系统管理:负责用户账户的维护,包括用户的增删改查及密码修改等权限管理功能。
2.运行环境要求
硬件环境要求
| 硬件环境 | 配置要求 | | -- | --- | | CPU | x86、Arm、MIPS 等架构,主频不限 | | 内存 | 8GB 以上 | | 硬盘 | 20GB 以上可用空间 | | 网卡 | 1000 Base-T 以上支持 TCP/IP 协议的网卡 |
软件环境要求
| 软件环境 | 配置要求 |
|---|---|
| CentOS 7.x及以上 | 64-bit |
| Ubuntu 18 LTS | 64-bit |
| 银河麒麟服务器操作系统 | - |
| 中标麒麟服务器操作系统 | - |
3.软件安装
3.1. 安装到Linux系统
-
检查docker是否安装以及运行状态
#查看Docker是否安装 docker --version #检查Docker服务状态 sudo systemctl status docker #如果未安装 Docker,按照如下步骤安装: sudo yum install docker sudo systemctl start docker -
拷贝Linux版迁移工具包UXDMS2124A.tar到磁盘上。
-
执行以下命令加载并启动。
#加载镜像 docker load -i UXDMS2124A.tar #启动运行迁移工具 docker run -d --name=UX DMS2124A --restart=always --privileged=true -p 8000:8000 UX DMS:1.0 -
加载后可以直接网页访问,打开浏览器,在浏览器输入本系统的访问地址
http://UXDMSSERVERIP:8000,默认端口为8000,进入系统登录界面。系统默认内置了2个用户,管理员和普通用户,其中管理员可以管理用户,普通用户用户新建连接、迁移任务等操作。

4.首页
用普通用户系统登录成功后,默认展示系统首页。在页面左上角显示系统名称,在页面右上角显示当前登录用户、修改密码、退出登录按钮。页面左侧展示左侧菜单,页面中间展示详细的首页信息。首页界面如下:

5.数据库连接管理
数据库连接管理实现对源数据和目标库的统一管理,主要包含新建连接、查找连接、测试连接和统计连接等内容。主界面如下:

5.1. 新建连接
登录系统后在左侧菜单栏点击“数据库连接管理”,在数据库管连接管理页单击“新建连接”按钮,打开新增数据库连接页。

新建数据库连接界面说明
| 名称 | 说明 |
|---|---|
| 数据库类型【必填项】 | 请选择数据库类型,可选项有 Oracle、UXDB、Mysql、Pgsql、金仓数据库。 |
| 连接名称【必填项】 | 请填写连接名称,连接名称只能包含中文、字母、数字和下划线,长度为 2-30 字符。 |
| 主机地址【必填项】 | 请填写数据库的 IP 地址或者域名。 |
| 端口【必填项】 | 请输入数据库的访问端口。 |
| 数据库名称【必填项】 | 请输入数据库名称。 |
| 用户名【必填项】 | 源数据库的用户名。 |
| 密码【必填项】 | 源数据库的登录密码。 |
单击“确定”,校验连接名称是否唯一,如重名则弹窗报错“Failed”,通过校验,弹窗显示“Success”,完成数据库连接设置。
5.2. 测试连接
数据库连接创建后,在操作区选择“测试”按钮,测试数据库连接。测试成功,弹窗显示连接测试结果“Success”;测试不成功,弹窗显示连接测试结果“Failed”。

5.3. 查找连接
通过连接名称、数据库名称查询连接,支持模糊查询,并且可以根据数据库类型做初步过滤。
目标数据库界面说明
| 名称 | 说明 |
|---|---|
| 主机名【必填项】 | 目标数据库的 IP 地址或域名,推荐直接输入 IP 地址。 |
| 端口【必填项】 | 目标数据库的访问端口。 |
| 用户名【必填项】 | 目标数据库的用户名。 |
| 密码【必填项】 | 目标数据库的登录密码。 |
| 数据库【必填项】 | 目标数据库(UXDB)的库名称。 |
| 连接测试【按钮】 | 以上信息输入完成后,单击此按钮测试数据库连接。测试成功,在此按钮右侧显示“√”;测试不成功,则在此按钮左侧显示“X”。 |
5.4. 删除连接
在数据库连接管理列表页的操作栏,单击“删除”按钮,弹出信息“确认删除连接+所选连接名称?”,单击“确定”按钮,删除选中的连接。若在弹窗中单击“取消”或X按钮,关闭确认弹窗,不删连接。当该连接被迁移任务引用后,该连接不能直接删除,会报错“数据库连接被任务引用”,需要先删除关联任务后才能删除。

6.迁移任务管理
迁移任务管理包含任务新建、查找任务、任务详情、任务状态、任务操作等内容,其中任务新建包含新建和同步。任务操作包含任务详情、任务运行、删除任务和评估任务。同步任务是指将后台任务同步到前端页面,默认系统每隔5分钟也会同步一次。主界面如下:

任务存在多种运行状态,包括:未启动、已停止、运行中、已完成。已停止表示迁移异常终止,需要手动介入查看问题原因,排除异常后,可以再次点击运行。已经完成的任务不可以执行多次。
迁移任务模式是根据选择
源库对象的范围系统自动产生的,当仅迁移表结构时模式指定为结构迁移,仅迁移表数据时模式指定为数据迁移,表和数据都选择迁移时模式指定为结构迁移+数据迁移,只选择非表结构或表数据时,例如仅选择了序列,模式指定为空。
6.1. 新建任务
登录系统后在左侧菜单栏点击“迁移任务管理”,在迁移任务管理页单击“新建任务”按钮。进入选择源数据库界面。

在已经建好的数据库连接中选择源数据库。选中后可以先进行测试连接,连接测试通过后,单击“下一步”,进入选择目标数据库页面。单击“取消”,弹出信息“是否取消创建任务?”,单击“确定”按钮,取消创建任务。若在弹窗中单击“取消”或X按钮,关闭确认弹窗,回到创建页面。后续步骤中每一页面均有“取消”按钮。

在已经建好的数据库连接中选择目标数据库。选中后可以先进行测试连接,连接测试通过后,单击“下一步”,进入模式选择页面。

在源数据库库中的所有模式中,选择要迁移的模式并选中,单击“下一步”,进入对象选择页面。可以使用搜索框快速定位到要迁移的模式,点击“刷新”按钮可以重新读取所选源库内全部模式。
注意
每次迁移任务只能选取一个模式。
在要迁移的数据库模式中选择要迁移的对象。可选择的对象包含表结构、表数据、视图、序列、触发器、存储过程、函数、类型、包。单击“是否迁移”,选中的对象状态栏从未选择变为全部迁移,并且每个选中对象都会出现操作“配置”的按钮。
每一种对象类型都可以选择手动配置迁移对象的范围。系统默认不会删除目标库同名对象,可以手动配置是否删除。

6.1.1配置表结构和表数据对象
新建迁移任务时,支持自定义部分表内容的迁移。用户可在对象选择页面开启“是否迁移”开关,并通过**“配置**”按钮进入表清单进行勾选。
系统支持联动配置逻辑:当同时迁移表结构和表数据时,前者配置会自动同步给后者;若仅迁移表数据,系统将自动简化流程,无需配置索引和约束,仅需选择表对象即可。

每个表都对应可配置选择是否迁移表上的索引和约束,操作方式一致,以下以索引的操作方式为例。单击“选择索引”按钮,弹出配置索引的界面,勾选清单左侧可以选择需要迁移的索引对象,默认是全部选择,选择完成后,点击“确认”按钮,表示选择生效,点击“返回”按钮,则退出索引选择配置。
注意
选择部分索引后,点击“确认”按钮,回到表选择页面后,必须再次点击“确认”按钮,索引配置才可以生效。
说明
约束配置页图标含义为P表示主键约束,U表示唯一约束,R表示外键约束,C表示检查约束,D表示默认值约束。
6.1.2配置视图对象
在新建迁移任务过程中,可以针对视图对象进行迁移配置,在新建任务过程中的对象选择页面,在视图行点击“是否迁移按钮”,待操作栏出现“配置”后,点击“配置”按钮后弹出迁移视图的清单,勾选清单左侧可以选择需要迁移的视图对象,默认是全部选择,选择完成后,点击“确认”按钮,表示选择生效,点击“返回”按钮,则退出配置。

6.1.3配置序列对象
在新建迁移任务过程中,可以针对序列对象进行迁移配置,在新建任务过程中的对象选择页面,在序列行点击“是否迁移按钮”,待操作栏出现“配置”后,点击“配置”按钮后弹出迁移序列的清单,勾选清单左侧可以选择需要迁移的序列对象,默认是全部选择,选择完成后,点击“确认”按钮,表示选择生效,点击“返回”按钮,则退出配置。

6.1.4配置触发器对象
在新建迁移任务过程中,可以针对触发器对象进行迁移配置,在新建任务过程中的对象选择页面,在触发器行点击“是否迁移按钮”,待操作栏出现“配置”后,点击“配置”按钮后弹出迁移触发器的清单,勾选清单左侧可以选择需要迁移的触发器对象,默认是全部选择,选择完成后,点击“确认”按钮,表示选择生效,点击“返回”按钮,则退出配置。

6.1.5配置存储过程、包和函数对象
在新建迁移任务过程中,可以针对存储过程对象进行迁移配置,在新建任务过程中的对象选择页面,在存储过程行点击“是否迁移按钮”,待操作栏出现“配置”后,点击“配置”按钮后弹出迁移存储过程的清单,勾选清单左侧可以选择需要迁移的存储过程对象,默认是全部选择,选择完成后,点击“确认”按钮,表示选择生效,点击“返回”按钮,则退出配置。包、函数和存储过程配置方式相同。

6.1.6 清空配置
在选择了配置迁移内容后,该行会出现“清空配置”的按钮。单击列表的“清空配置”按钮,弹出信息“确认要清空+所选对象的配置吗?”,单击“确定”按钮,删除选中的配置。若在弹窗中单击“取消”或X按钮,关闭确认弹窗,不删除配置。

6.2. 查找任务
通过任务名称、迁移模式、任务状态查询,其中任务名称支持模糊查询。迁移模式包含,结构迁移、数据迁移、结构迁移+数据迁移3种模式,任务状态包含未启动、已完成、已停止、进行中4种状态。

6.3. 任务详情
在数据迁移任务清单列表页,单击任务名称弹出任务详情页面。任务详情内容包含任务基本信息和迁移对象信息,具体有任务ID、任务名称、源数据库库、目标数据库、迁移模式名称、是否删除目标库同名对象。迁移对象以列表形式展示所有要迁移的对象,并且支持检索。


单击“下一步”,进入源库选择页面。
6.4. 任务操作
在数据迁移任务清单页,单击某行列表的“运行”按钮,运行当前行的任务。任务状态从未运行变更到运行中,任务结束后任务状态栏变成已完成。已完成状态表示该任务已经成功结束,不能再次点击“运行”按钮。点击“运行”按钮之后,页面提示任务 "所选任务名称" 启动成功,同时任务状态栏变为运行中。

在数据迁移任务清单页,单击某行列表的“删除”按钮,弹出信息“确认删除任务+所选任务名称?”,单击“确定”按钮,删除选中的任务。若在弹窗中单击“取消”或X按钮,关闭确认弹窗,不删除任务。

为提升迁移成功率,在迁移之前可以先进行评估,在数据迁移任务清单页,单击某行列表的“评估”按钮,开始评估。评估完成后生成评估报告。

评估逻辑为先对比表、然后是对比字段、接下来对比类型、最后是字段长度,长度只针对字符类型进行对比,如果三个都匹配则评估通过。有一个不一致则评估失败。评估完成后,如果评估成功则评估按钮变为“评估通过”,如果失败则评估按钮变为“查看不一致”。点击“评估不一致”按钮即可查看评估结果详情。

在评估结果详情页面点击“下载评估报告”按钮即可查看评估结果详情。评估通过的表,不列出具体字段内容,只显示通过。未通过评估的表会详细列出不一致的具体内容。点击“重新评估”按钮即可再次进行评估。

6.5. 任务状态
在迁移任务管理列表页面的清单中,每个任务对应的状态,状态分为4种,包含未启动、进行中、已完成、已停止。其中新建的任务状态是未启动。可以在任务详情查看任务内容。任务运行过程中显示为运行中,正常结束的任务为已完成,已停止表示任务未正常结束,发生了异常终止。进行中、已完成、已停止均可以点击并查看状态详情。
6.5.1 任务进行中
点击进行中的任务状态,可以查看到迁移任务中所有迁移对象、迁移完成数量、目标库内总数、运行状态、目标库内已存在行数以及任务进度。“刷新”按钮表示刷新当前任务状态,“导出”按钮导出迁移结果,“下载日志”按钮迁移过程中的运行全部日志,报错后“执行SQL文件”按钮,支持以拖拽的方式上传需要手动执行的sql文件,点击确定后,SQL文件立即执行,并在页面显示执行结果和错误日志。

6.5.2 任务已完成
点击"已完成"的任务状态,可以查看到迁移任务的完成情况,包含所有迁移对象状态、数量以及任务进度。“刷新”按钮表示刷新当前任务状态。

点击“导出”按钮,导出当前任务的迁移结果,以网页形式展示任务基本信息。

点击“下载日志”按钮,获取当前迁移过程中的运行全部日志,通过查找error信息帮助迁移操作人员定位失败原因。
点击“执行SQL文件”按钮,支持点击上传需要手动执行的sql文件,点击确定后,SQL文件立即执行,并在页面显示执行结果和错误日志。如手动执行sql产生了错误日志必须手动关闭。

6.5.3 任务已停止
点击"已停止"的任务状态,可以查看到迁移任务的情况,包含所有迁移对象状态、数量以及任务进度。“刷新”按钮表示刷新当前任务状态。

点击“导出”按钮,导出当前任务的迁移结果,以网页形式展示任务基本信息。

点击“下载日志”按钮,获取当前迁移过程中的运行全部日志,通过查找error信息帮助迁移操作人员定位失败原因。

点击“执行SQL文件”按钮,支持点击上传需要手动执行的sql文件,点击确定后,SQL文件立即执行,并在页面显示执行结果和错误日志。如手动执行sql产生了错误日志必须手动关闭。

并在页面显示执行结果和错误日志。如手动执行sql产生了错误日志必须手动关闭。

7.附录
Oracle到UXDB数据类型映射
| Oracle 类型 | UXDB 类型 |
|---|---|
| BFILE | BYTEA |
| BINARY | BYTEA |
| BINARY_DOUBLE | DOUBLE PRECISION |
| BINARY_FLOAT | REAL |
| BLOB | BYTEA |
| CFILE | TEXT |
| CHAR | CHAR |
| CHARACTER | CHAR |
| CLOB | CLOB |
| CONTENTPOINTER | TEXT |
| DATE | TIMESTAMP |
| DECIMAL | NUMBER |
| DOUBLEPRECISION | NUMBER |
| FLOAT | NUMBER |
| INTEGER | NUMBER |
| INTERVALDAYTOSECOND | INTERVAL DAY TO SECOND |
| INTERVALYEARTOMONTH | INTERVAL YEAR TO MONTH |
| INTERVALDAYTOMINUTE | INTERVAL DAY TO MINUTE |
| LOBPOINTER | TEXT |
| LONG | TEXT |
| LONG RAW | BYTEA |
| NCHAR | VARCHAR |
| NCLOB | CLOB |
| NUMBER | NUMBER |
| NVARCHAR | VARCHAR |
| NVARCHAR2 | VARCHAR |
| OID | OID |
| RAW | BYTEA |
| REAL | NUMBER |
| ROWID | VARCHAR |
| SMALLINT | NUMBER |
| TIME | TIME |
| TIMESTAMP | TIMESTAMP |
| TIMEWITHOUTTIMEZONE | TIME |
| TIMEWITHTIMEZONE | TIME |
| TIMESTAMPWITHLOCALTIMEZONE | TIMESTAMPTZ |
| TIMESTAMPWITHTIMEZONE | TIMESTAMPTZ |
| UROWID | VARCHAR |
| USER-DEFINED | USERDEFINED |
| VARCHAR | VARCHAR |
| VARCHAR2 | VARCHAR |
| XMLTYPE | XML |
| JSON | JSON |
8.常见问题
8.1. 安装docker报错
执行yum install docker失败。
- 原因1:yum源问题
使用优炫本地镜像安装包进行安装,具体联系优炫技术支持团队获取。
- 原因2:网络连接问题
#测试网络连通性
ping -c 3 baidu.com