1. 概述
运维平台提供界面化功能「项目迁移」,帮助用户完成帆软项目的迁移。包括但不限于:
FineReport项目升级FineBI项目
非运维平台部署项目转运维平台部署项目
非信创项目改造信创项目
跨版本项目迁移
2. 适用项目
运维平台项目迁移工具,对待迁移和目标项目有一定要求。
为了防止浪费新项目的服务器资源,请优先自查以下内容,确保可以使用本文功能进行迁移。
| 检查内容 | 说明 |
|---|---|
| 项目部署方式 | 目标项目必须是运维平台部署的项目,即:
注意事项:
原因说明:
|
| 项目中间件 | 1)信创项目迁移至非信创项目
2)非信创项目迁移至信创/非信创项目
3)信创项目迁移至信创项目
原因说明:
|
| 项目主应用类型 | 1)待迁移项目为 FineBI 项目
2)待迁移项目为 FineReport 项目
3)待迁移项目为 FineDataLink 项目
|
| 项目主应用版本 |
解决方案:
|
| 项目集群情况 | 1)待迁移项目为单机应用 支持迁移到单机/集群项目 2)待迁移项目为集群项目 支持迁移到集群项目 不支持迁移到单机项目 注意事项:
|
3. 迁移前准备
3.1 选择迁移方案
运维平台项目迁移工具,支持「导出导入迁移」和「自动传输迁移」两种迁移方式。
「自动传输迁移」又分为「直连传输迁移」和「中转传输迁移」两种迁移传输方案。
优先推荐:「直连传输迁移」>「中转传输迁移」>「导出导入迁移」
1)如果待迁移项目与目标项目无法接入同一运维平台,则必须选择「导出导入迁移」
例如非信创项目和信创项目,无法接入同一运维平台,此时只能选择「导入导出迁移」方式
例如待迁移项目、目标项目与同一运维平台网络环境不通,,此时只能选择「导入导出迁移」方式
2)网络环境不通,「自动传输迁移」时会自动启用「中转传输迁移」方案,否则默认使用「直连传输迁移」方案
目标项目所在服务器,需要可以通过ssh访问待迁移项目所在服务器,否则「自动传输迁移」时会自动启用「中转传输迁移」方案
目标项目所在服务器,需要可以通过ssh访问待迁移项目的文件服务器(如果有),否则「自动传输迁移」时会自动启用「中转传输迁移」方案
注:如果项目待迁移的文件大小非常大,推荐使用「导出导入迁移」方式
3.2 准备运维平台和项目
| 步骤 | 说明 |
|---|---|
| 准备运维平台及项目的服务器 | 对于待部署/已部署好的运维平台和项目。请检查对应服务器的网络互通 1)项目与运维平台(任何迁移方式都必须满足)
以上两点必须满足。如果无法满足,请通过准备两个运维平台来满足,然后使用「导入导出迁移」方式 2)项目与项目(「自动传输迁移>直连传输迁移」必须满足)
以上两点如果无法满足,会导致「自动传输迁移」时的文件传输路径出现变化,,自动启用「中转传输迁移」而非「直连传输迁移」方案,从而导致迁移耗时和难度增加。因此强烈建议满足该要求
3)项目可用磁盘(「自动传输迁移>中转传输迁移」和「导出导入迁移」必须满足)
4)运维平台可用磁盘(「自动传输迁移>中转传输迁移」必须满足)
|
| 准备运维平台 | 1)尚未部署运维平台 请参考文档部署运维平台:部署运维平台 注意:信创版项目,需要部署信创版运维平台,不可与普通版运维平台对接 2)已部署运维平台 本文基于最新版运维平台的项目迁移工具提供具体迁移方案。 历史版本的项目迁移工具方案可能不满足一些适用项目的迁移,使用方式也不尽相同。 请务必在迁移前,将运维平台升级至最新版本。 |
| 准备目标项目 | 目标项目必须是运维平台部署的项目,不支持非运维平台部署的项目 |
| 运维平台对接项目 | 待迁移项目可能与运维平台尚未对接 请参考文档,将运维平台与待迁移项目对接:接入已有项目 注意:信创版项目,需要与信创版运维平台对接,不可与普通版运维平台对接 |
3.3 准备迁移镜像
由于项目迁移时可能涉跨版本升级,依赖升级镜像project-migration,否则无法正常选择目标项目。
管理员登录对接了目标项目的运维平台,点击「维护中心>镜像管理」,查看是否存在project-migration镜像,如果没有请手动上传。
镜像获取:请联系帆软技术支持获取project-migration的镜像包
镜像上传:请参考「推送单个组件镜像入库」将该镜像上传至目标项目的运维平台的镜像仓库中

3.4 确保系统运维插件
系统运维插件的版本,影响项目迁移工具的使用方法,因此请确保升级至最新。
1)请确保升级运维平台至最新版本(V2.26.0及以上版本)。
2)登录对接的待迁移项目和目标项目。
3)点击「管理系统>插件管理」,查看并升级「系统运维」插件至最新版本。(例如运维平台是V2.26版本,插件版本就应当是V3.26版本)

3.5 确保备份项目
下文的操作可能会对待迁移项目和目标项目,进行升级、配置更改、文件拷贝等操作。
以防万一,请在操作前对项目进行整体备份,包括工程本身、外接配置库、集群组件等等。
优先建议直接对待迁移项目和目标项目所在服务器,创建工程快照,便于版本控制、回退到旧版本或查找问题的更改。
如无法创建工程快照,请至少使用运维平台「备份项目」功能,对待迁移项目和目标项目进行备份。

3.6 确保项目可用
请确保在迁移前,待迁移项目和目标项目均存活可用。

4. 迁移前检查
迁移前检查,是对迁移项目和目标项目之间是否适配、项目是否满足迁移要求等情况进行逐一检查。
1)管理员登录运维平台,点击「维护中心>项目迁移」,点击「迁移前检查」。
2)选择项目:
如果待迁移项目和目标项目对接在同一运维平台,同时选择即可对照检测。
如果待迁移项目和目标项目对接在不同运维平台,分别选择分别检测,并将检测结果下载到本地对照查看即可。
3)点击「开始检查」,请耐心等待检查完成,请勿切换至其他界面,可能导致检查中断。
4)迁移前检查结束后,支持「下载检查报告」到本地查看。请参考下文,对风险项进行评估和处理。

4.1 配置库检测
| 检测内容 | 要求及建议 |
|---|---|
| 配置外接配置库 | 检测要求:目标项目必须启用了外接数据库作为配置库 解决方案:请参考文档「集群管理」为项目配置外接配置库 |
| 配置库版本 | 检测要求:待迁移项目和目标项目所使用的配置库,必须满足以下数据库类型和版本要求 解决方案:请参考文档「集群管理」为项目更换符合要求的外接配置库 |
| 配置库字符集 | 检测要求:若待迁移项目和目标项目使用了MySQL配置库,必须使用 utf8mb3 字符集编码 原因说明:
解决方案:
|
| 配置库排序规则 | 检测要求:待迁移项目和目标项目的配置库,排序规则必须设置为大小写敏感 原因说明:
解决方案:
|
| 配置库用户权限 | 检测要求:待迁移项目和目标项目所使用的配置库用户,必须有配置库的完整DDL权限(数据库结构的创建、修改和删除等权限),以满足配置表架构调整、配置信息调整等诉求 解决方案:请自行根据所使用的配置库类型,查阅对应数据库帮助文档,为数据库用户配置DDL权限 |
4.2 定制化内容检测
| 分类 | 要求及建议 |
|---|---|
| 迁移目录 | 迁移工具会帮助用户迁移一些必要文件,无需用户手动迁移。 一定会迁移的目录如下:
可选迁移的目录如下(使用迁移工具时界面可选,不选就不迁移): 此类目录如果不使用迁移工具迁移,应当在迁移工具执行完毕后,手动将文件从待迁移工程,上传到目标项目的每一个工程节点的外挂目录的对应文件夹内
|
| 迁移范围外的目录 | 内容说明: 待迁移项目webroot和webroot/WEB-INF下,有一些用户自定义创建的文件夹,即为「迁移范围外的目录」,均需用户自行迁移。
建议操作: 1)请在迁移前对待迁移工程评估并执行:
2)如无法在迁移前合并至help文件夹,请在迁移工具执行完毕后:
|
| 不迁移目录 | 内容说明: 待迁移项目webroot和webroot/WEB-INF下,有一些虽然是帆软应用默认创建的文件夹,但无需迁移。不迁移目录包括(如不存在则不在迁移报告中列出):
建议操作: 原则上此类目录不应当迁移/没必要迁移(日志、缓存、回退等文件),请自行评估迁移影响和必要性 例如embed文件夹,如果手动进行了迁移,会导致迁移项目和目标项目在迁移后同时对接同一个外接配置库,从而导致项目运行异常 如果其中有自定义存放的资源文件,请参照迁移范围外的目录的处理方式进行处理。 1)请在迁移前对待迁移工程评估并执行:
2)如无法在迁移前合并至help文件夹,请在迁移工具执行完毕后:
|
| 非官方提供的JAR | 内容说明: 非官方提供的jar,即为非帆软官方提供的定制功能JAR包,或第三方驱动包,默认不迁移。
建议操作: 1)请在迁移前评估迁移对此部分内容的影响,帆软无法确保迁移后相关JAR仍能生效 2)请在迁移工具执行完毕后,手动将上述列出的所有非官方提供的JAR包,上传到目标项目的每个工程节点的外挂目录的customlib文件夹中 3)请在目标项目启动后,依次确认每个非官方提供的JAR包功能是否生效 |
| 静态资源 | 内容说明: 静态资源,即js、css、html等文件,一般被模板文件引用。
建议操作: 1)请在迁移前评估迁移对此部分内容的影响,帆软无法确保迁移后,模板中的引用路径是否发生变化 2)请在目标项目启动后,依次确认对应模板是否仍可正常预览和使用 |
| 非市场插件 | 内容说明: 非市场插件,即此类插件中,不存在帆软官方签名,可能是第三方定制插件。 检测报告中将列出待迁移项目/webroot/WEB-INF/plugins下的自定义插件 建议操作: 1)请在迁移前评估迁移对此部分内容的影响,帆软无法确保迁移后插件仍可生效。 2)请在目标项目启动后,依次确认对应插件功能是否正常。 |
| 自定义servlet | 内容说明: 帆软项目的servlet默认为webroot/decision 用户可能由于短域名访问、基于安全考虑更改工程名等因素,修改了默认servlet 检测报告中将列出待迁移项目的servlet 建议操作: 1)如果用户自定义了待迁移项目的「decision」
2)如果用户自定义了待迁移项目的「webroot」
|
4.3 磁盘检测
| 检测内容 | 要求及建议 |
|---|---|
| 剩余磁盘空间 | 如使用「自动传输迁移>中转传输迁移」和「导出导入迁移」: 待迁移项目每一个应用组件外挂目录/工程webroot所在磁盘目录,剩余可用磁盘空间必须大于50G,以确保有足够空间存放导出或压缩的迁移文件包 |
5. 执行迁移
下文将分别描述「自动传输迁移」和「导入导出迁移」的迁移步骤。
5.1 自动传输迁移
管理员登录运维平台,点击「维护中心>项目迁移>自动传输迁移」。
1)选择迁移项目和目标项目。
如果项目不符合第二章列出的适用范围,将无法出现被选中。
2)选择迁移内容。
即迁移项目中的「管理系统>定时调度」任务,是否一并迁移到目标项目
如果不勾选定时调度任务:迁移完成后需要手动在目标工程创建新的定时调度任务。
如果勾选定时调度任务:任务配置和执行计划将一并迁移到目标工程,可能导致迁移项目和目标项目同时触发同一个任务,请在迁移完成后自行评估是否暂停迁移项目中的定时调度任务
3)选择迁移目录。
包括工程/webroot/WEB-INF下的:reportlets、schedule、assets(不包括temp_attach)、assets/temp_attach
这些目录均建议迁移,但其中的文件过大,工具迁移效率较低,用户可自行决定使用工具迁移或手动拷贝迁移。
如果勾选:迁移工具会在迁移过程中帮助迁移这些文件,但会导致迁移时长增加,请耐心等待
如果不勾选:在迁移工具执行完毕后,请手动将文件从待迁移工程,上传到集群目标项目的文件服务器,或单机目标项目工程节点的外挂目录对应文件夹内
| 文件夹 | 说明 |
|---|---|
| reportlets | 作用:FineReport模板存放目录 如果不迁移,会导致工程中所有FineReport模板都丢失 |
| schedule | 作用:定时调度生成的文件 如果不迁移,定时任务挂载到决策平台的结果报表无法访问 |
| assets(不包括temp_attach) | 作用:FineReport模板备份文件、通用的共享持久化目录
|
| assets/temp_attach | 作用:FineBI数据表相关信息、FineReport读写缓存存储路径
|
4)输入直连传输配置
此处即为「自动传输迁移」的「直连传输迁移」和「中转传输迁移」两种迁移传输方案生效的关键点
如果使用「直连传输迁移」:请输入待迁移项目的任一节点的ssh连接信息,所准备的用户必须有读权限。
如果使用「中转传输迁移」:无需填写,可跳过
5)点击「开始迁移」
迁移工具会根据SSH信息,自动检测目标项目到迁移项目、迁移项目文件服务器的网络联通性,并确定最终迁移方案。
并自行完成以下迁移工作,请耐心等待迁移完成即可:
直连传输迁移:迁移项目—SSH传输文件—>目标项目
中转传输迁移:迁移项目—压缩文件、传输压缩包—>运维平台—传输压缩包—>目标项目—解压

5.2 导出导入迁移
5.2.1 导出迁移包
管理员登录对接了迁移项目的运维平台,点击「维护中心>项目迁移>导出迁移包」。
1)选择迁移项目。
请务必确保项目符合第二章列出的适用范围,否则后续将无法成功导入目标项目。
2)选择迁移目录。
包括工程/webroot/WEB-INF下的:reportlets、schedule、assets(不包括temp_attach)、assets/temp_attach
这些目录均建议迁移,但其中的文件过大,工具迁移效率较低,用户可自行决定使用工具迁移或手动拷贝迁移。
如果勾选:迁移工具会在迁移过程中帮助迁移这些文件,但会导致迁移时长增加,请耐心等待
如果不勾选:在迁移工具执行完毕后,请手动将文件从待迁移工程,上传到集群目标项目的文件服务器,或单机目标项目工程节点的外挂目录对应文件夹内
| 文件夹 | 说明 |
|---|---|
| reportlets | 作用:FineReport模板存放目录 如果不迁移,会导致工程中所有FineReport模板都丢失 |
| schedule | 作用:定时调度生成的文件 如果不迁移,定时任务挂载到决策平台的结果报表无法访问 |
| assets(不包括temp_attach) | 作用:FineReport模板备份文件、通用的共享持久化目录
|
| assets/temp_attach | 作用:FineBI数据表相关信息、FineReport读写缓存存储路径
|

3)点击「开始导出」
请耐心等待导出迁移包完成,并根据提示找到对应迁移包。
对于运维平台部署的项目,导出后的迁移包存储在:待迁移项目任一工程节点的外挂目录的/help/migration/integrate目录下
对于非运维平台部署的项目,导出后的迁移包存储在:待迁移项目任一工程节点的/webroot/help/migration/integrate目录下

5.2.2 手动拷贝迁移包
请将上节获取的迁移包,手动拷贝到目标项目
1)对于FineBI项目:
请将迁移包fr-bi.zip,上传至目标项目每一个工程外挂目录/bi-web/help/migration/integrate目录下(如果help下没有该目录,手动创建即可)
请将迁移包bi-engine.zip解压,获得一个classes文件夹,将classes文件夹上传至目标项目每一个worker外挂目录下的polars文件夹中(如果没有该目录,手动创建即可)
2)对于FineReport项目:
请将迁移包fr-bi.zip,上传至目标项目每一个工程外挂目录/fr/help/migration/integrate目录下(如果help下没有该目录,手动创建即可)
5.2.3 导入迁移包
管理员登录对接了目标项目的运维平台,点击「维护中心>项目迁移>导入迁移包」。
1)选择目标项目
请务必确保项目符合第二章列出的适用范围,否则将无法成功导入迁移包。
2)选择迁移内容
即迁移项目中的「管理系统>定时调度」任务,是否一并迁移到目标项目
如果不勾选定时调度任务:迁移完成后需要手动在目标工程创建新的定时调度任务。
如果勾选定时调度任务:任务配置和执行计划将一并迁移到目标工程,可能导致迁移项目和目标项目同时触发同一个任务,请在迁移完成后自行评估是否暂停迁移项目中的定时调度任务
3)点击「开始导入」
迁移工具会将上节手动上传的资源包导入目标项目,请耐心等待迁移完成即可。

6. 迁移后操作
6.1 完成遗留手动迁移
请根据迁移记录,查看是否存在未成功迁移的文件,并手动执行迁移
请根据4.2节定制化内容检测,将需要手动迁移的内容自行迁移到目标项目的对应位置
请将迁移过程中未选的「迁移目录」,手动迁移到目标项目的对应位置
请根据迁移过程中选择的定时调度任务,判断是否暂停迁移工程的调度任务
6.2 启动目标项目
迁移成功后,目标项目处于关闭状态,请手动启动。
管理员登录运维平台,选中目标项目,点击「维护>组件管理」。
请对「bi-web/fr/fdl」组件进行一键「启动」,确保所有「bi-web/fr/fdl」容器启动至「running」状态。

6.3 数据抽取(BI)
注:仅FineBI工程需要执行本节操作。
1)管理员登录目标工程,点击「公共数据>全局更新」。
2)执行「立即全局更新」,即可抽取最新数据,并存放到正确的存储路径中。

