1. 概述
1.1 版本
| 运维平台版本 | 功能变更 |
|---|---|
| V2.5.0 | - |
| V2.6.0 | 支持通过工具实现tomcat集群迁移容器化 |
| V2.26.0 | 优化项目迁移传输效率,提供更详细的迁移报告,提升用户操作体验 |
| V2.27.0 | 项目迁移支持自动迁移bi-engine-worker组件的customlib文件夹 |
| V2.36.0 | 支持迁移FineDataLink项目 |
1.2 应用场景
运维平台提供界面化功能「项目迁移」,帮助用户完成帆软项目迁移,包括但不限于:
1)FineReport 项目升级为 FineBI 项目。
2)非运维平台部署项目转为运维平台部署项目。
3)非信创项目改造为信创项目。
4)跨版本项目迁移。
1.3 功能入口与页签
管理员登录运维平台,点击「维护中心>项目迁移」,页面包含 6 个页签:
| 页签 | 用途 |
|---|---|
| 迁移前检查 | 校验待迁移项目与目标项目是否满足迁移条件,输出可下载的检查报告 |
| 导出迁移包 | 「导出导入迁移」的导出环节,从待迁移项目导出迁移包 |
| 导入迁移包 | 「导出导入迁移」的导入环节,将迁移包导入目标项目 |
| 自动传输迁移 | 一键完成导出、传输、导入、升级全流程 |
| 迁移记录 | 查看历史迁移记录,下载报告,对失败的自动迁移发起重试 |
| Swift 日志迁移 | 独立功能,用于迁移 Swift 日志数据,支持断点续传 此功能不在本文中描述,详情请参见:Swift日志迁移ElasticSearch |

2. 适用项目
本节用于在动手前判断项目能否使用本工具迁移。
为避免浪费目标服务器资源,请先逐项自查,全部满足后再进入迁移前准备。
| 检查项 | 说明 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 部署方式 | 目标项目必须为运维平台部署。各组合的支持情况如下:
非运维平台部署的待迁移项目迁移至运维平台部署时,可能存在兼容影响。迁移前须先确认兼容问题,详见:迁移前兼容须知 运维平台部署具有隔离性、可移植性、灵活性、可伸缩性和可控性等优势,可降低维护成本和资源成本,因此仅支持迁移到运维平台部署的目标项目。 | ||||||||||||||||||||||||||||||
| 信创类型与中间件 | 中间件要求取决于待迁移项目的信创类型和部署方式:
信创项目的定制化功能在转为非信创项目后无法确保正常运行,因此不支持信创迁移至非信创。 运维平台部署的项目均使用 Tomcat/宝兰德/东方通中间件。为确保迁移后不存在兼容问题,非运维平台部署的待迁移项目必须使用上述对应中间件。 | ||||||||||||||||||||||||||||||
| 应用类型 |
| ||||||||||||||||||||||||||||||
| 应用版本 | 待迁移项目主应用版本须满足最低版本要求,且目标项目版本不低于待迁移项目版本。 FineBI/FineReport
FineDataLink
版本映射关系由运维平台自动获取。若在「自动传输迁移」中选不到目标项目,通常说明该版本组合不在支持范围内,或缺少迁移镜像。 版本不满足时的处理
| ||||||||||||||||||||||||||||||
| 集群架构 | 此处单机/集群指项目是否采用集群架构(是否对接了状态服务、文件服务等集群组件),而非 FineBI/FineReport/FineDataLink 的应用数量。待迁移项目与目标项目的应用数量不一致,不影响迁移。
|
3. 迁移前准备
3.1 选择迁移方案
运维平台项目迁移工具,支持「导出导入迁移」和「自动传输迁移」两种迁移方式。
「自动传输迁移」又分为「直连传输迁移」和「中转传输迁移」两种迁移传输方案。
优先推荐:「直连传输迁移」>「中转传输迁移」>「导出导入迁移」
1)如果待迁移项目与目标项目无法接入同一运维平台,则必须选择「导出导入迁移」
例如非信创项目和信创项目,无法接入同一运维平台,此时只能选择「导入导出迁移」方式
例如待迁移项目、目标项目与同一运维平台网络环境不通,,此时只能选择「导入导出迁移」方式
2)网络环境不通,「自动传输迁移」时会自动启用「中转传输迁移」方案,否则默认使用「直连传输迁移」方案
目标项目所在服务器,需要可以通过ssh访问待迁移项目所在服务器,否则「自动传输迁移」时会自动启用「中转传输迁移」方案
目标项目所在服务器,需要可以通过ssh访问待迁移项目的文件服务器(如果有),否则「自动传输迁移」时会自动启用「中转传输迁移」方案
注:如果项目待迁移的文件大小非常大,推荐使用「导出导入迁移」方式
3.2 准备运维平台和项目
| 步骤 | 说明 |
|---|---|
| 准备运维平台及项目的服务器 | 对于待部署/已部署好的运维平台和项目。请检查对应服务器的网络互通 1)项目与运维平台(任何迁移方式都必须满足)
以上两点必须满足。如果无法满足,请通过准备两个运维平台来满足,然后使用「导入导出迁移」方式 2)项目与项目(「自动传输迁移>直连传输迁移」必须满足)
以上两点如果无法满足,会导致「自动传输迁移」时的文件传输路径出现变化,,自动启用「中转传输迁移」而非「直连传输迁移」方案,从而导致迁移耗时和难度增加。因此强烈建议满足该要求
3)项目可用磁盘(「自动传输迁移>中转传输迁移」和「导出导入迁移」必须满足)
4)运维平台可用磁盘(「自动传输迁移>中转传输迁移」必须满足)
|
| 准备运维平台 | 1)尚未部署运维平台 请参考文档部署运维平台:部署运维平台 注1:信创版项目,需要部署信创版运维平台,不可与普通版运维平台对接 注2:如使用「导出导入迁移」方式,准备了两个运维平台,请确保两个运维平台的版本号完全一致,否则可能无法成功导入。 2)已部署运维平台 本文基于最新版运维平台的项目迁移工具提供具体迁移方案。 请参考文档将将运维平台升级至最新版本:外网升级运维平台、内网升级运维平台 注1:历史版本的项目迁移工具方案可能不满足一些适用项目的迁移,使用方式也不尽相同。 注2:如使用「导出导入迁移」方式,准备了两个运维平台,请确保两个运维平台的版本号完全一致,否则可能无法成功导入。 |
| 准备目标项目 | 目标项目必须是运维平台部署的项目,不支持非运维平台部署的项目 |
| 运维平台对接项目 | 待迁移项目可能与运维平台尚未对接 请参考文档,将运维平台与待迁移项目对接:接入已有项目 注意:信创版项目,需要与信创版运维平台对接,不可与普通版运维平台对接 |
3.3 准备迁移镜像
项目迁移可能涉及跨版本升级,依赖升级镜像 project-migration,镜像缺失会导致无法正常选择目标项目。
1)管理员登录对接了目标项目的运维平台,点击「维护中心>项目迁移>迁移前检查」,查看是否能正常选择目标项目。
2)如果选不到目标项目,说明缺少对应版本的 project-migration 镜像。
3)建议直接将运维平台升级至最新版本,以获得内置的 project-migration 镜像。
4)如不升级,请联系帆软技术支持获取 project-migration 镜像包,并参见「推送单个组件镜像入库」,将镜像上传至目标项目所在运维平台的镜像仓库。

3.4 确保系统运维插件
系统运维插件版本影响项目迁移工具的使用方式,务必升级至最新。
1)确保运维平台已升级至最新版本(V2.26.0 及以上)。
2)分别登录待迁移项目和目标项目。
3)点击「管理系统>插件管理」,将「系统运维」插件升级至最新版本。例如运维平台为 V2.26 版本,插件版本应为 V3.26 版本。

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

3.6 确保项目可用
迁移前,待迁移项目和目标项目均须处于存活可用状态,且两者不能是同一个项目。

4. 迁移前检查
迁移前检查用于逐项校验待迁移项目与目标项目是否适配、是否满足迁移要求。
务必:迁移前检查未通过时,「导出迁移包」与「自动传输迁移」会被拒绝执行。
1)管理员登录运维平台,点击「维护中心>项目迁移>迁移前检查」。
2)选择项目:
两个项目对接在同一运维平台时,同时选择即可对照检测;
对接在不同运维平台时,分别选择、分别检测,并将结果下载到本地对照查看。
3)点击「开始检查」,页面每 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. 执行迁移
下文将分别描述「自动传输迁移」和「导入导出迁移」的迁移步骤。
注1:迁移操作互斥,同一时间只能执行一个迁移任务。
注2:迁移过程中不可变更待迁移项目与目标项目的选择。
注3:重新进入页面时,系统会自动恢复未完成任务的进度展示。
5.1 自动传输迁移
本节完成一键式导出、传输、导入与升级,适用于两个项目接入同一运维平台的场景。
管理员登录运维平台,点击「维护中心>项目迁移>自动传输迁移」。
1)选择迁移项目和目标项目。
如果项目不符合第二章列出的适用范围,将无法出现被选中。
2)选择迁移内容。
即迁移项目中的「管理系统>定时调度」任务,是否一并迁移到目标项目
如果不勾选定时调度任务:迁移完成后需要手动在目标工程创建新的定时调度任务。
如果勾选定时调度任务:任务配置和执行计划将一并迁移到目标工程,可能导致迁移项目和目标项目同时触发同一个任务,请在迁移完成后自行评估是否暂停迁移项目中的定时调度任务
注:FineDataLink不支持迁移定时调度任务,界面中该选项不可勾选。
3)选择迁移目录。
包括工程/webroot/WEB-INF下的:reportlets、schedule、assets(不包括temp_attach)、assets/temp_attach
这些目录均建议迁移,但其中的文件过大,工具迁移效率较低,用户可自行决定使用工具迁移或手动拷贝迁移。
如果勾选:迁移工具会在迁移过程中帮助迁移这些文件,但会导致迁移时长增加,请耐心等待
如果不勾选:在迁移工具执行完毕后,请手动将文件从待迁移工程,上传到集群目标项目的文件服务器,或单机目标项目工程节点的外挂目录对应文件夹内
注:FineDataLink可选迁移目录仅有 assets 与 assets/temp_attach。
| 文件夹 | 说明 |
|---|---|
| reportlets | 作用:FineReport模板存放目录(FineDataLink项目无此项) 如果不迁移,会导致工程中所有FineReport模板都丢失 |
| schedule | 作用:FineBI/FineReport定时调度生成的文件(FineDataLink项目无此项) 如果不迁移,定时任务挂载到决策平台的结果报表无法访问 |
| assets(不包括temp_attach) | 作用:FineReport模板备份文件、通用的共享持久化目录
|
| assets/temp_attach | 作用:FineBI数据表相关信息、FineReport读写缓存存储路径
|
4)输入直连传输配置
此处即为「自动传输迁移」的「直连传输迁移」和「中转传输迁移」两种迁移传输方案生效的关键点
如果使用「直连传输迁移」:请输入待迁移项目的任一节点的ssh连接信息,所准备的用户必须有读权限。SSH 测试结果分为两个维度:工程 SSH 连通性、文件服务连通性。连接失败时,界面会提示失败原因,例如连接失败、帮助路径无权限。
如果使用「中转传输迁移」:无需填写,可跳过
5)点击「开始迁移」
工具会根据 SSH 信息自动检测目标项目到待迁移项目及其文件服务器的网络连通性,确定最终传输方案,并依次完成:
直连传输迁移:迁移项目—SSH传输文件—>目标项目
中转传输迁移:迁移项目—压缩文件、传输压缩包—>运维平台—传输压缩包—>目标项目—解压
迁移完成后,可在页面查看结果并下载迁移报告。

5.2 导出导入迁移
本节适用于两个项目无法接入同一运维平台,或迁移文件体积过大的场景。
5.2.1 导出迁移包
管理员登录对接了迁移项目的运维平台,点击「维护中心>项目迁移>导出迁移包」。
1)选择迁移项目。
请务必确保项目符合第二章列出的适用范围,否则后续将无法成功导入目标项目。
2)选择迁移目录。
包括工程/webroot/WEB-INF下的:reportlets、schedule、assets(不包括temp_attach)、assets/temp_attach
这些目录均建议迁移,但其中的文件过大,工具迁移效率较低,用户可自行决定使用工具迁移或手动拷贝迁移。
如果勾选:迁移工具会在迁移过程中帮助迁移这些文件,但会导致迁移时长增加,请耐心等待
如果不勾选:在迁移工具执行完毕后,请手动将文件从待迁移工程,上传到集群目标项目的文件服务器,或单机目标项目工程节点的外挂目录对应文件夹内
| 文件夹 | 说明 |
|---|---|
| reportlets | 作用:FineReport模板存放目录(FineDataLink项目无此项) 如果不迁移,会导致工程中所有FineReport模板都丢失 |
| schedule | 作用:定时调度生成的文件(FineDataLink项目无此项) 如果不迁移,定时任务挂载到决策平台的结果报表无法访问 |
| 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下没有该目录,手动创建即可)
3)对于FineDataLink项目:
请将迁移包fdl.zip,上传至目标项目每一个工程外挂目录/fdl/help/migration/integrate目录下(如果help下没有该目录,手动创建即可)
5.2.3 导入迁移包
管理员登录对接了目标项目的运维平台,点击「维护中心>项目迁移>导入迁移包」。
1)选择目标项目
请务必确保项目符合第二章列出的适用范围,否则将无法成功导入迁移包。
2)选择迁移内容
即迁移项目中的「管理系统>定时调度」任务,是否一并迁移到目标项目
如果不勾选定时调度任务:迁移完成后需要手动在目标工程创建新的定时调度任务。
如果勾选定时调度任务:任务配置和执行计划将一并迁移到目标工程,可能导致迁移项目和目标项目同时触发同一个任务,请在迁移完成后自行评估是否暂停迁移项目中的定时调度任务
3)点击「开始导入」
迁移工具会将上节手动上传的资源包导入目标项目,请耐心等待迁移完成即可。

6. 迁移记录与重试
点击「维护中心>项目迁移>迁移记录」,可查看历史迁移情况。
1)记录按时间倒序排列,展示序号、操作时间、结束时间、操作人、待迁移项目、目标项目、迁移类型(自动/手动)、状态(成功/失败)与备注。
2)迁移成功的记录支持下载迁移报告。
3)迁移失败的记录会展示错误信息。仅「自动传输迁移」失败的记录支持「重试导入」,手动导出、手动导入失败不支持重试。
4)点击「重试导入」后,页面跳转至「自动传输迁移」并自动打开迁移进度弹窗。
7. 迁移后操作
7.1 完成遗留手动迁移
请根据迁移记录,查看是否存在未成功迁移的文件,并手动执行迁移
请根据4.2节定制化内容检测,将需要手动迁移的内容自行迁移到目标项目的对应位置
请将迁移过程中未选的「迁移目录」,手动迁移到目标项目的对应位置
请根据迁移过程中选择的定时调度任务,判断是否暂停迁移工程的调度任务
7.2 启动目标项目
迁移成功后目标项目处于关闭状态,需手动启动。
1)管理员登录运维平台,选中目标项目,点击「维护>组件管理」。
2)对「bi-web/fr/fdl」组件执行一键「启动」。
3)确认所有「bi-web/fr/fdl」容器均启动至 running 状态。

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

8. 注意事项
1)目标项目版本必须不低于待迁移项目版本,且目标项目不可为非运维平台部署。
2)迁移前检查未通过时,导出与自动迁移会被拒绝执行。
3)迁移操作互斥,同一时间只能执行一个迁移任务;迁移过程中不可变更项目选择。
4)导入操作会重启目标项目;FineDataLink 迁移会关闭对应项目的业务任务。
5)「直连传输迁移」依赖 SSH 连通,SSH 不通时会自动降级为「中转传输迁移」,迁移耗时与难度都会增加。
6)使用「中转传输迁移」或「导出导入迁移」时,相关磁盘剩余空间必须大于 50 G。
7)使用两个运维平台执行「导出导入迁移」时,两个平台版本号必须完全一致。
8)警告:请勿手动迁移 embed 文件夹,否则会导致两个项目同时对接同一个外接配置库,引发项目运行异常。
9)迁移涉及配置更改与文件拷贝,操作前务必完成项目备份或工程快照。
