---
title: 新建迁移工程
description: "系统迁移功能聚焦于中间件、数据库及Java应用的迁移支持，通过解析用户提供的x86架构源软件包信息，可自动在目标机器上完成鲲鹏适配版本的软件包安装与部署全流程。支持容器迁移和非容器迁移。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0069.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0069.html
indexId: c1a201e923dfa8f62253f9c0c3f3a2d0d4d4deea7823bacad96bf028d77f07de79
---
# 新建迁移工程

系统迁移功能聚焦于中间件、数据库及Java应用的迁移支持，通过解析用户提供的x86架构源软件包信息，可自动在目标机器上完成鲲鹏适配版本的软件包安装与部署全流程。支持容器迁移和非容器迁移。

- 容器迁移：覆盖中间件（支持Redis、Nginx和Nacos）和Java应用迁移。
- 非容器迁移：覆盖数据库、中间件和Java应用迁移，支持迁移路线为  迁移路径
。对于Java语言实现的中间件，提供通用中间件迁移能力。

#### 前提条件

已成功登录鲲鹏DevKit。


#### 注意事项

- 同一节点迁移任务结束后，支持在该节点新建迁移任务。
- 已被其他工程占用的节点，可等待占用工程结束后自动释放节点或删除占用工程后重新选择该节点。
- 同一节点下的成分不能迁移到相同的目标成分。
- 支持添加本机节点（即当前登录的DevKit节点）为迁移工程节点。


#### 操作步骤

1. 在页面左侧，选择“系统迁移”单击进入“新建工程”页签。
  图1 新建工程

2. 填写“迁移工程名称”。工具默认会自动生成工程名称，也可根据实际情况进行自定义修改。
名称需要满足如下要求：

  - 只能由中文、字母、数字、“.”、“-”和“_”组成。
  - 长度为1字符 ~ 64字符。
3. 请在“成分选型表”配置需要迁移的成分信息，支持以下两种方式。
- 配置迁移成分过程中，可单击左下角“保存配置内容”，保存当前已配置信息。
- 界面会根据所选择的迁移内容实时显示预计的迁移时长，用户可根据实际情况调整迁移计划。
- 所选成分中，若存在待完善成分信息，将会以红点标记，请补充完整后开始迁移。
- 目标节点支持Kylin V10 SP3（Arm）和UOS V20（Arm）。


  - 方式一：批量导入源成分

    a. 单击“成分选型表”上方“批量导入源成分”，可在弹窗中导入需要解析的源成分，并选择目标节点。
      图2 批量导入源成分

    b. 导入源成分，支持导入源成分压缩包和Docker Compose文件。

      - 压缩包：根据弹窗上方提示信息，通过脚本采集源节点上数据库、中间件、应用包及配置文件信息，采集完成后会打包成一个压缩包，具体操作方式请参见        批量导入源成分方式
。
      - Docker Compose文件：通过解析Docker Compose文件，可以获取文件中支持迁移的容器成分。
        Docker Compose是一个用于定义和运行多容器应用程序的工具。它是解锁精简高效的开发和部署体验的关键。Compose简化了对整个应用程序堆栈的控制，使您可以在一个简单易懂的YAML配置文件中管理服务、网络和卷。

    c. 选择“目标节点”。可按照节点IP地址进行搜索，若节点不存在可单击“添加节点”，添加目标节点。最多支持添加20个节点，具体操作可参考      Agent管理(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/Appendixes/Appendixes/KunpengDevKit_0057.html)
。
    d. 目标节点选择完成后，单击“确定”，解析后成分将展示在“成分选型表”中。
      若采集成分时指定“-F”参数，则会在中间件下增加对应的“CustomDirectory xxx”迁移成分（xxx表示打包目录），迁移实施阶段会将指定的目录和数据拷贝至目标环境。

      图3 成分选型表

    e. 可单击“成分选型表”中“操作”列“编辑”按钮完善配置信息。
**表1 导入成分信息**

| 参数 | 说明 |
| --- | --- |
| 容器迁移 | 是否为容器迁移，不支持修改。 |
| 成分归属 | 成分归属，仅支持“数据库”、“中间件”、“应用”。 |
| 源节点 | 请输入成分所在源节点IP地址。 |
| 目标节点 | 选择成分目标节点，可按照节点IP地址进行搜索，若节点不存在可单击“添加节点”，添加目标节点。最多支持添加20个节点，具体操作可参考Agent管理(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/Appendixes/Appendixes/KunpengDevKit\_0057.html)。 |
| 源成分 | 源成分 |
| 源成分名 | 需要迁移的源成分名称。 |
| 中间件名 | 需要迁移的中间件名称。 只能由字母、数字、“\-”“\_”和空格组成。 长度为1字符 ~ 64字符且必须以字母开头。 说明： “源成分名”为“JavaMiddleware”时显示该参数。 |
| 版本号 | 源成分的版本号，仅支持数据库、中间件。 |
| 源成分来源 | 默认为“批量导入源成分”，不支持修改。 |
| 源成分所在路径 | 显示源成分所在路径，不支持修改。 |
| 目标成分 | 目标成分 |
| 目标成分名 | 需要迁移至的目标成分名称。 |
| 目标成分来源 | 选择目标成分来源，仅支持数据库、中间件。 外网地址下载：默认从鲲鹏镜像仓下载目标成分包，并自动化安装。 节点服务器获取：从目标节点的指定路径下获取目标成分包，并进行自动化安装。 访问鲲鹏镜像仓(https://mirrors.huaweicloud.com/kunpeng/archive/Kunpeng\_Middleware/)，获取目标成分的安装包文件。 使用SSH远程登录工具，将安装包文件上传至节点服务器的自定义路径。 指定安装包文件所在路径为目标成分所在路径。 目标成分包上传：请单击下方提示信息中“下载成分包”，获取目标成分包。 说明： 若“源成分名”为“JavaMiddleware”，则“目标成分来源”表示中间件所需的依赖文件，可通过软件迁移评估或官网获取。 |
| 外网地址 | 迁移目标外网地址。 说明： “目标成分来源”选择“外网地址下载”时显示该参数。 |
| 目标成分所在路径 | 目标成分在目标节点中路径。 说明： “目标成分来源”选择“节点服务器获取”时显示该参数。 若“源成分名”为“JavaMiddleware”，可指定为依赖文件存放目录，或将依赖文件进行打包，指定包含该压缩包的完整路径。 |
| 目标成分包上传 | 单击“上传”，上传所需的目标软件包，格式为：zip、tar、tar.gz、jar。 说明： “目标成分来源”选择“目标成分包上传”时显示该参数。 若“源成分名”为“JavaMiddleware”，多个依赖文件需打包后上传。 |
| 默认部署路径 | 显示目标成分的默认部署路径，不支持修改。 说明： 在迁移过程中，工具会根据源成分的路径来部署目标成分，若无法确定源路径，则使用默认部署路径。具体部署路径请以迁移结果页面的指导建议为准。 |
| 商用证书 | 单击“上传”，上传所需的商用证书。 |


**表2 Compose成分信息**

| 参数 | 说明 |
| --- | --- |
| 容器迁移 | 是否为容器迁移，不支持修改。 |
| 成分归属 | 成分归属，仅支持“中间件”、“应用”。 |
| 源节点 | 请输入成分所在源节点IP地址。 |
| 目标节点 | 选择成分目标节点。可按照节点IP地址进行搜索，若节点不存在可单击“添加节点”，添加目标节点。最多支持添加20个节点，具体操作可参考Agent管理(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/Appendixes/Appendixes/KunpengDevKit\_0057.html)。 |
| 源成分 | 源成分 |
| 源成分名 | 迁移的源成分名称。 |
| 源成分来源 | 显示导入的Docker Compose文件。 |
| 以下配置属于高级配置，可为迁移操作提供更加详尽的指导。 | 以下配置属于高级配置，可为迁移操作提供更加详尽的指导。 |
| Dockerfile | 单击“上传”，上传所需的Dockerfile文件。 |
| Image来源 | 节点服务器获取：从目标节点的指定路径下获取Image文件，进行扫描分析，并生成迁移指导报告。 Image上传：上传Image文件进行扫描分析，并生成迁移指导报告，若文件大小超过上限（默认2048MB）请使用“节点服务器获取”。 |
| Image | 若“Image来源”选择“节点服务器获取”，请输入Image文件在目标节点中的路径。 若“Image来源”选择“Image上传”，请单击“上传”，上传所需的Image文件。 |
| env\_file | 单击“上传”，上传所需的env\_file文件。 |
| 挂载卷来源 | 节点服务器获取：从目标节点的指定路径下获取挂载卷文件，进行扫描分析，并生成迁移指导报告。 挂载卷上传：上传挂载卷文件进行扫描分析，并生成迁移指导报告，若文件大小超过上限（默认2048MB）请使用“节点服务器获取”。 |
| 挂载卷 | 若“挂载卷来源”选择“节点服务器获取”，请输入挂载卷文件在目标节点中的路径。 若“挂载卷来源”选择“挂载卷上传”，请单击“上传”，上传所需的挂载卷文件。 |
| 容器层来源 | 节点服务器获取：从目标节点的指定路径下获取容器层文件，进行扫描分析，并生成迁移指导报告。 容器层上传：上传容器层文件进行扫描分析，并生成迁移指导报告，若文件大小超过上限（默认2048MB）请使用“节点服务器获取”。 |
| 容器层 | 若“容器层来源”选择“节点服务器获取”，请输入容器层文件在目标节点中的路径。 若“容器层来源”选择“容器层上传”，请单击“上传”，上传所需的容器层文件。 |
| Redis数据文件来源 | 节点服务器获取：从目标节点的指定路径下获取Redis数据文件，进行扫描分析，并生成迁移指导报告。 Redis数据文件上传：上传Redis数据文件进行扫描分析，并生成迁移指导报告，若文件大小超过上限（默认2048MB）请使用“节点服务器获取”。 |
| Redis数据文件 | 若“Redis数据文件来源”选择“节点服务器获取”，请输入Redis数据文件在目标节点中的路径。 若“Redis数据文件来源”选择“Redis数据文件上传”，请单击“上传”，上传所需的Redis数据文件。 |
| 目标成分 | 目标成分 |
| 目标成分名 | 显示目标成分名称。 |
| 目标成分来源 | 显示导入的Docker Compose文件。 |


  - 方式二：添加成分信息，可手动添加容器和非容器成分信息。

    a. 单击“添加成分信息”。
    b. 填写成分信息，参数如      表3
和      表4
所示。
      图4 手动添加

**表3 非容器成分信息**

| 参数 | 说明 |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 容器迁移 | 是否为容器迁移。 |  |  |  |  |  |  |  |  |  |  |
| 成分归属 | 成分归属，仅支持“数据库”、“中间件”、“应用”。 |  |  |  |  |  |  |  |  |  |  |
| 源节点 | 请输入成分所在源节点IP地址。 |  |  |  |  |  |  |  |  |  |  |
| 目标节点 | 选择成分目标节点。可按照节点IP地址进行搜索，若节点不存在可单击“添加节点”，添加目标节点。最多支持添加20个节点，具体操作可参考Agent管理(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/Appendixes/Appendixes/KunpengDevKit\_0057.html)。 |  |  |  |  |  |  |  |  |  |  |
| 源成分 | 源成分 |  |  |  |  |  |  |  |  |  |  |
| 源成分名 | 需要迁移的源成分名称。 说明： 对于Java类通用中间件，可选择“JavaMiddleware”走通用中间件迁移流程。 |  |  |  |  |  |  |  |  |  |  |
| 中间件名 | 请输入需要迁移的中间件名称，可自定义。 只能由字母、数字、“\-”“\_”和空格组成。 长度为1字符 ~ 64字符且必须以字母开头。 说明： “源成分名”选择“JavaMiddleware”后显示该参数。 |  |  |  |  |  |  |  |  |  |  |
| 版本号 | 源成分的版本号，仅支持数据库、中间件。 |  |  |  |  |  |  |  |  |  |  |
| 源成分来源 | 选择源成分来源，仅支持中间件、应用。 说明： 中间件除RabbitMQ外，其余源成分请参见迁移源成分准备相关指导进行打包。 节点服务器获取：从目标节点的指定路径下获取源成分包，进行扫描分析，并生成迁移指导报告。若成分归属为“中间件”，请按照如下步骤进行操作。 将待扫描的源成分对应安装目录打包为压缩包，以tar.gz格式压缩包为例，压缩包名称及源成分对应目录请根据实际情况替换。 1 tar cvf xxx.tar.gz /xxx/xxx/xxx 使用SSH远程登录工具，将压缩包文件上传至节点服务器的自定义路径。 执行如下命令，进入保存压缩包文件的自定义目录。 1 cd 自定义路径 执行如下命令解压源成分压缩包，压缩包名称请根据实际情况替换。 1 tar xvf xxx.tar.gz 解压完成，可选择执行如下命令删除源成分压缩包。 1 rm \-f xxx.tar.gz 指定解压后的文件路径为源成分所在路径。 源成分包上传：上传迁移源成分包进行扫描分析，并生成迁移指导报告。若成分归属为“中间件”，请按照如下步骤进行操作。 将待扫描的源成分对应目录打包为压缩包，以tar.gz格式压缩包为例，压缩包名称及源成分对应目录请根据实际情况替换。 1 tar cvf xxx.tar.gz /xxx/xxx/xxx 上传源成分压缩包文件。 无源成分：不提供源成分包，也不进行迁移指导分析（仅中间件支持该选项）。 | 1 | tar cvf xxx.tar.gz /xxx/xxx/xxx | 1 | cd 自定义路径 | 1 | tar xvf xxx.tar.gz | 1 | rm \-f xxx.tar.gz | 1 | tar cvf xxx.tar.gz /xxx/xxx/xxx |
| 1 | tar cvf xxx.tar.gz /xxx/xxx/xxx |  |  |  |  |  |  |  |  |  |  |
| 1 | cd 自定义路径 |  |  |  |  |  |  |  |  |  |  |
| 1 | tar xvf xxx.tar.gz |  |  |  |  |  |  |  |  |  |  |
| 1 | rm \-f xxx.tar.gz |  |  |  |  |  |  |  |  |  |  |
| 1 | tar cvf xxx.tar.gz /xxx/xxx/xxx |  |  |  |  |  |  |  |  |  |  |
| 源成分所在路径 | 需要输入源成分在目标节点中路径。 说明： “源成分来源”选择“节点服务器获取”时显示该参数。 |  |  |  |  |  |  |  |  |  |  |
| 源成分包上传 | 单击“上传”，上传所需的源软件包，格式为：zip、tar、tar.gz。 说明： “源成分来源”选择“源成分包上传”时显示该参数。 |  |  |  |  |  |  |  |  |  |  |
| 目标成分 | 目标成分 |  |  |  |  |  |  |  |  |  |  |
| 目标成分名 | 需要迁移至的目标成分名称。 |  |  |  |  |  |  |  |  |  |  |
| 目标成分来源 | 选择目标成分来源，仅支持数据库、中间件。 外网地址下载：默认从鲲鹏镜像仓下载目标成分包，并自动化安装。 节点服务器获取：从目标节点的指定路径下获取目标成分包，并进行自动化安装。 访问鲲鹏镜像仓(https://mirrors.huaweicloud.com/kunpeng/archive/Kunpeng\_Middleware/)，获取目标成分的安装包文件。 使用SSH远程登录工具，将安装包文件上传至节点服务器的自定义路径。 指定安装包文件所在路径为目标成分所在路径。 目标成分包上传：请单击下方提示信息中“下载成分包”，获取目标成分包。 说明： 若“源成分名”为“JavaMiddleware”，则“目标成分来源”表示中间件所需的依赖文件，可通过软件迁移评估或官网获取。 |  |  |  |  |  |  |  |  |  |  |
| 外网地址 | 迁移目标外网地址。 说明： “目标成分来源”选择“外网地址下载”时显示该参数。 |  |  |  |  |  |  |  |  |  |  |
| 目标成分所在路径 | 目标成分在目标节点中路径。 说明： “目标成分来源”选择“节点服务器获取”时显示该参数。 若“源成分名”为“JavaMiddleware”，可指定为依赖文件存放目录，或将依赖文件进行打包，指定包含该压缩包的完整路径。 |  |  |  |  |  |  |  |  |  |  |
| 目标成分包上传 | 单击“上传”，上传所需的目标软件包，格式为：zip、tar、tar.gz、jar。 说明： “目标成分来源”选择“目标成分包上传”时显示该参数。 若“源成分名”为“JavaMiddleware”，多个依赖文件需打包后上传。 |  |  |  |  |  |  |  |  |  |  |
| 默认部署路径 | 显示目标成分的默认部署路径，不支持修改。 说明： 在迁移过程中，工具会根据源成分的路径来部署目标成分，若无法确定源路径，则使用默认部署路径。具体部署路径请以迁移结果页面的指导建议为准。 |  |  |  |  |  |  |  |  |  |  |
| 商用证书 | 单击“上传”，上传所需的商用证书。 |  |  |  |  |  |  |  |  |  |  |


**表4 容器成分信息**

| 参数 | 说明 |
| --- | --- |
| 容器迁移 | 是否为容器迁移。 |
| 成分归属 | 成分归属，仅支持“中间件”、“应用”。 |
| 源节点 | 请输入成分所在源节点IP地址。 |
| 目标节点 | 选择成分目标节点。可按照节点IP地址进行搜索，若节点不存在可单击“添加节点”，添加目标节点。最多支持添加20个节点，具体操作可参考Agent管理(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/Appendixes/Appendixes/KunpengDevKit\_0057.html)。 |
| 源成分 | 源成分 |
| 源成分名 | 需要迁移的源成分名称。 |
| 版本号 | 源成分的版本号，仅支持中间件。 |
| 源成分来源 | 选择源成分来源： Dockerfile（中间件默认已勾选） Image |
| Dockerfile | 单击“上传”，上传所需的Dockerfile文件。 |
| Image来源 | 节点服务器获取：从目标节点的指定路径下获取Image文件，进行扫描分析，并生成迁移指导报告。 Image上传：上传Image文件进行扫描分析，并生成迁移指导报告，若文件大小超过上限（默认2048MB）请使用“节点服务器获取”。 说明： “源成分来源”选择“Image”时显示该参数。 |
| Image | 单击“上传”，上传所需的Image文件。 说明： “Image来源”选择“Image上传”时显示该参数。 |
| 目标成分 | 目标成分 |
| 目标成分名 | 显示目标成分名称。 |
| 目标成分来源 | 显示目标成分的来源。 |


    c. 填写完成后单击“确定”。
4. 填写“IP地址映射表”。IP地址映射用于建立源节点与目标节点的IP地址对应关系，提高解析的准确性，QuickFix将依据映射表提供修改建议。系统会自动识别成分选型表中的映射关系，若映射关系不准确，可手动添加或编辑。
图5 IP地址映射表

  - 当添加或编辑成分后，系统将根据以下规则处理：

    - 若IP地址映射表中不存在该源IP地址和目标IP地址的映射关系，会自动将映射关系添加至IP地址映射表。
    - 编辑成分时，若其余成分没有使用该成分当前的IP地址映射关系，则该映射关系将被删除（若该映射关系为用户手动添加或编辑，则不会删除），并将修改后的映射关系添加至IP地址映射表。
    - 若IP地址映射表中已存在相同的映射关系，则不进行添加。
    - 若IP地址映射表中已存在相同源IP地址，但目标IP地址不同，将更新该源IP地址对应的目标IP地址。
  - 当删除成分后，系统会检查选型表中是否存在与其映射关系一致的成分，并根据以下规则处理：

    - 若不存在，会进行回滚，若无回滚目标IP地址，则删除该映射关系。若该映射关系为用户手动添加或编辑，则不会自动删除。
    - 若存在，则IP地址映射表不进行删除。
  - 多个源IP地址可以映射到同一目标IP地址；同一源IP地址不能映射到多个不同的目标IP地址。
  - 若源IP地址与目标IP地址相同，则无需添加映射关系。
5. 信任目标成分外网地址：目标成分来源若选择“外网地址下载”，请确认是否信任目标成分外网地址。
  若开启“信任目标成分外网地址”，则本次迁移任务的所有软件下载将跳过SSL证书认证，请确保外网地址是可信的下载链接。

6. 确认应用有无源码。
  若有应用包的源码，请继续迁移数据库、中间件及应用，并使用配置忽略文件功能完成SQL和配置的迁移；若无应用包的源码，请选择“无源码”进行SQL和配置迁移。

  若选择“无源码”，会对用户上传的应用包进行分类，非开源JAR包需要进行源码提取和SQL/配置分析。可通过配置忽略文件配置需要过滤的JAR包和groupID。 无源码迁移支持对中间件（Tomcat/Resin）收集的.class文件和批量指定打包目录中收集的.class文件进行源码提取和部署。 .class文件是Java源代码（.java文件）经过编译器（javac）编译后生成的二进制字节码文件。勾选以下任意一种即可支持无源码迁移： 同类型中间件迁移（Tomcat > Tomcat）包含对应应用，且“源成分来源”为“源成分包上传”或“批量导入源成分”。 同类型中间件迁移（Resin > Resin）包含对应应用，“源成分来源”为“批量导入源成分”。 批量导入源成分的打包目录，即“CustomDirectory xxx”成分。 容器应用不支持无源码迁移。

  图6 无源码迁移配置

**表5 SQL迁移配置参数说明**

| 参数 | 说明 |
| --- | --- |
| 迁移源数据库 | 指定迁移源数据库，可提升源码SQL迁移的准确性。 说明： 当MySQL迁移至Vastbase时，若当前环境未部署Vastbase\-transform.jar，需配置相关下载信息，否则将不会对SQL进行兼容性评估与转换。 |
| 迁移目标数据库 | 指定迁移目标数据库，可提升源码SQL迁移的准确性。 |
| 工具包来源 | 选择工具包来源。 外网地址下载：将自动从鲲鹏镜像仓下载Vastbase\-transform.jar至DevKit工具安装节点。 工具包上传：请复制下方提示信息中下载工具包链接，自行获取Vastbase\-transform.jar。 |
| 工具包上传 | 单击“上传”，上传已下载Vastbase\-transform.jar。 说明： “工具包来源”选择“工具包上传”时显示该参数。 |
| 配置DDL | 需要扫描SQL的源码包建议配置DDL（数据定义语言），DDL记录了数据库表、字段的完整信息，通过DDL语句可以提升SQL语句解析的准确性。DDL文件获取请参见导出数据库定义语言文件方法。 |
| 迁移目标中间件类型 | 不涉及 宝兰德迁移策略：上传的源码包包含内置Tomcat相关配置文件，且需要迁移至内置宝兰德。 东方通迁移策略：上传的源码包包含内置Tomcat相关配置文件，且需要迁移至内置东方通。 |


7. 单击“开始迁移”，进入迁移实施界面。
