1. 概述
1.1 版本
工程版本 | 功能变更 |
---|---|
FineReport11.0 FineBI6.0 | - |
1.2 应用场景
相比于普通集群工程,容器化部署的工程,升级和维护成本较低。
本文方案帮助用户将原有非容器化部署的FineBI集群工程,迁移为容器化部署的集群工程。
迁移FineBI工程和集群组件(状态服务器、文件服务器、外接数据库等)。
迁移后,原工程可以再启动使用。
注:全文以FineBI作为演示。FineReport迁移步骤基本一致,仅需要两个点:
1)拷贝文件时,FineReport和FineBI需要拷贝的文件不完全相同,注意文档中的表格即可。
2)使用运维平台启停容器时,FineReport关闭的是fr组件,FineBI关闭的是bi6组件。
2. 新容器化工程准备
2.1 部署运维平台
容器化FineBI工程,需要通过运维平台部署。因此用户需要先部署一个FineOps运维平台。
详情请参见:部署运维平台
2.2 部署新容器化工程
进行迁移前,用户需要先通过运维平台部署一个容器化集群工程。
详情请参见:部署新项目-FineBI、部署新项目-FineReport
注1:请记录下MySQL、Redis、minio组件的相关信息,由于密码随机生成,请务必修改MySQL、Redis、minio组件的密码,方便后续使用。
注2:请记录下FineBI工程的挂载路径,用户可自定义路径。这是工程文件的存放路径,后面步骤中需要用到。
2.3 确认新工程服务器剩余磁盘空间
1)检查原非容器化工程的大小。
2)根据原工程大小,适度扩大新容器化工程所在服务器节点剩余磁盘空间,建议大于原工程的两倍,最少剩余磁盘大小500G。
2.4 确认新工程版本
由于容器化部署的 FineBI 工程,一般为帆软发布的较新版本。因此用户需要先确认新工程版本,确保后续升级旧工程到同一版本。
管理员登录新容器化工程,点击「管理系统>注册管理>版本信息」,查看新容器化工程的小版本号(精确到JAR包日期)。
2.5 关闭新容器化工程
用户登录运维平台,点击「运维管理>项目管理」,点击新容器化部署的工程项目后的「组件管理」按钮。
找到bi6组件,点击「停止」按钮,即可关闭新容器化集群的全部工程节点。如下图所示:
2.6 备份config
请在FineBI工程的挂载路径/fanruanxxx/bi目录下,找到config文件夹,并另行备份。
该文件夹中存放的yaml文件中,有着工程部署所用语句,后续运营维护时可能会需要使用/查找,请务必异地备份。
3. 原非容器化工程准备
3.1 备份原工程
在进行工程迁移前,为避免迁移失败,导致工程文件丢失无法回退等问题,请务必对原工程进行备份后再进行后续操作。
请参考 工程备份还原方案 3.1节,对工程进行备份。
3.2 升级原工程
由于容器化部署的 FineBI 工程,一般为帆软发布的较新版本。
因此用户需要将原非容器化部署的工程升级到同一新版本,方可进行同版本间的迁移。
1)获取JAR包
付费用户请联系帆软技术支持,获取2.4节新工程同一小版本的工程JAR包(精确到JAR包日期)。
技术支持联系方式:前往「服务」,选择「在线支持」、电话「400-811-8890」。
2)升级原非容器化工程
请参考「FineBI小版本升级 / FineReport小版本升级」文档升级工程至指定版本。
3.3 关闭其他工程节点
请参考 关闭或重启FineBI工程 / 关闭或重启FineReport工程 文档,关闭原非容器化部署的其他工程节点,只保留一个工程节点存活。
3.4 迁移外接数据库
为了保证新老工程的平台配置完全一致,需要同步两个工程的配置库。但不能让新老工程使用同一个外接数据库。
1)新建空数据库
如果老工程外接数据库使用的非MySQL8类型数据库:
新工程外接数据库仍然部署在该数据库下的新库里,2.2节的MySQL数据库无需使用
请在老工程原外接数据库地址新建一个库名,作为待迁移的空库
如果老工程外接数据库使用的MySQL8类型数据库:
新工程外接数据库建议部署在2.2节的MySQL数据库里
请在2.2节容器化部署的MySQL8组件新建一个库名,作为待迁移的空库
2)迁移数据库
管理员登录原工程唯一存活的节点,点击「管理系统>系统管理>常规>外接数据库」。
配置外接数据库为上一步的空库
勾选「迁移数据至要启用的数据库」
点击「启用新数据库」
当出现提示「已成功切换至目标数据库!」,则代表外接数据库切换成功。
3.5 安装minio资源仓库插件
由于需要让原非容器工程对接容器化部署的集群组件,因此需要先安装必要插件。
管理员登录原工程唯一存活的节点,点击「管理系统>插件管理」,安装「minio资源仓库」插件。如下图所示:
3.6 对接集群组件
管理员登录原工程唯一存活的节点,点击「管理系统>智能运维>集群配置」。
1)开启「状态服务器」。选择「单机Redis」,输入2.2节记录的Redis组件信息。
2)开启「文件服务器共享」。选择「MinIO」,输入2.2节记录的MinIO组件信息。
3)缓存模式选择「关闭缓存」,集群通信协议选择「TCP」。
4)开启「开启集群」按钮。
参考 关闭或重启FineBI工程 文档,重启该工程节点。
再次查看「管理系统>智能运维>集群配置」,查看集群配置是否已更新。
3.7 关闭原工程
请参考 关闭或重启FineBI工程 / 关闭或重启FineReport工程 文档,关闭原工程全部工程节点。
4. 迁移工程
4.1 拷贝文件
将原非容器化集群最后存活的那个工程节点和原文件服务器中的必要文件,拷贝到容器化集群的各个节点和minio服务器中。
1)请提前检查原非容器化部署的集群,是否配置了外挂目录、是否配置共享文件服务器,确保拷贝到正确的文件。
2)新容器化工程外挂文件所在位置,为2.2节记录的挂载路径。
注1:请勿直接 docker cp 整个webroot文件夹到容器,会导致功能异常。
注2:请勿直接拷贝整个webroot文件夹到容器化工程的外挂目录,部分文件不可以被覆盖。
注3:请勿使用3.1节备份的文件,而是使用工程最终的文件进行拷贝操作。
注4:MinIO使用的是S3协议,不能直接上传文件到服务器上进行使用。详情请参见:MinIO文件服务器简介
FineBI需要拷贝的文件
原非容器化工程目录 | 新容器化工程外挂目录 | 说明 | ||
---|---|---|---|---|
%Tomcat_HOME%/logs | %BI_HOME%/fanruanxxx/bi6/tomcat_logs | 作用:Tomcat通用日志位置 是否必须拷贝:用户自行决定,Tomcat历史访问日志,可不拷贝 | ||
%Tomcat_HOME%/webapps/webroot/bi-data | %BI_HOME%/fanruanxxx/bi6/bi-data | 作用:FineBI抽取数据 是否必须拷贝: 如果新老工程在同一服务器上,可重新-v挂载原工程的bi-data文件夹,或在新工程启动后重新抽取数据,无需拷贝 如果新老工程不在同一服务器上,不建议拷贝,该文件夹一般数据量太大,拷贝困难,可在新工程启动后重新抽取数据 | ||
%Tomcat_HOME%/webapps/webroot/logs | %BI_HOME%/fanruanxxx/bi6/logs | 作用:swift日志 是否必须拷贝:用户自行决定 如果不拷贝,会丢失工程历史操作日志(即logdb),「管理系统>平台日志」功能无数据 如对历史使用情况无要求,无需拷贝 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/classes | %BI_HOME%/fanruanxxx/bi6/classes | 作用:工程调用的默认和自定义class文件 是否必须拷贝:必须拷贝 有可能存在自定义的class文件,如不拷贝会影响工程正常使用 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/config | %BI_HOME%/fanruanxxx/bi6/config | 作用:配置库相关文件 是否必须拷贝:必须拷贝 平台调用的配置库(finedb),如不拷贝会影响工程正常使用 | ||
找到以下两个目录: %Tomcat_HOME%/webapps/webroot/WEB-INF/lib %Tomcat_HOME%/webapps/webroot/WEB-INF/customLib 除以下工程自带JAR之外的自定义定制JAR,全部拷贝:
| %BI_HOME%/fanruanxxx/bi6/customlib | 作用:工程定制/外部引入的JAR包 是否必须拷贝:必须拷贝,如不拷贝会影响模板访问 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/plugins | %BI_HOME%/fanruanxxx/bi6/plugins | 作用:插件相关文件 是否必须拷贝:必须拷贝,如不拷贝会影响插件相关功能的实现 | ||
%ftp%/backup | minio文件服务器文件存放路径/backup | 作用:工程历史备份文件 是否必须拷贝:用户自行决定,可存储在原始的目录下备份,可不拷贝 | ||
%ftp%/assets/temp_attach | minio文件服务器文件存放路径/assets/temp_attach | 作用:FineBI数据表相关信息 是否必须拷贝:必须拷贝 该文件夹中存放着工程Excel原始文件信息,如不拷贝该文件夹会导致原始Excel丢失 | ||
%ftp%/assets/vcs | minio文件服务器文件存放路径/assets/vcs | 作用:FineReport模板备份文件 是否必须拷贝:用户自行决定 如果工程未使用FineReport模板,或不需要回退历史开发的FineReport模板,则无需拷贝 | ||
%ftp%/assets/其他文件 | minio文件服务器文件存放路径/assets/其他文件 | 作用:通用的共享持久化目录 是否必须拷贝:必须拷贝 工程正常运行所需要的文件,如不拷贝会影响工程正常使用 | ||
%ftp%/reportlets | minio文件服务器文件存放路径/reportlets | 作用:FineReport模板存放目录 是否必须拷贝:用户自行决定 如果工程未使用FineReport模板,则无需拷贝 | ||
%ftp%/schedule | minio文件服务器文件存放路径/schedule | 作用:定时调度生成的文件 是否必须拷贝:用户自行决定 如果不拷贝,定时任务挂载到决策平台的结果报表无法访问 |
FineReport需要拷贝的文件
原非容器化工程目录 | 新容器化工程外挂目录 | 说明 | ||
---|---|---|---|---|
%Tomcat_HOME%/logs | %FR_HOME%/fanruanxxx/fr/tomcat_logs | 作用:Tomcat通用日志位置 是否必须拷贝:用户自行决定,Tomcat历史访问日志,可不拷贝 | ||
%Tomcat_HOME%/webapps/webroot/logs | %FR_HOME%/fanruanxxx/fr/logs | 作用:swift日志 是否必须拷贝:用户自行决定 如果不拷贝,会丢失工程历史操作日志(即logdb),「管理系统>平台日志」功能无数据 如对历史使用情况无要求,无需拷贝 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/classes | %FR_HOME%/fanruanxxx/fr/classes | 作用:工程调用的默认和自定义class文件 是否必须拷贝:必须拷贝 有可能存在自定义的class文件,如不拷贝会影响工程正常使用 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/config | %FR_HOME%/fanruanxxx/fr/config | 作用:配置库相关文件 是否必须拷贝:必须拷贝 平台调用的配置库(finedb),如不拷贝会影响工程正常使用 | ||
找到以下两个目录: %Tomcat_HOME%/webapps/webroot/WEB-INF/lib %Tomcat_HOME%/webapps/webroot/WEB-INF/customLib 除以下工程自带JAR之外的自定义定制JAR,全部拷贝:
| %FR_HOME%/fanruanxxx/fr/customlib | 作用:工程定制/外部引入的JAR包 是否必须拷贝:必须拷贝,如不拷贝会影响模板访问 | ||
%Tomcat_HOME%/webapps/webroot/WEB-INF/plugins | %FR_HOME%/fanruanxxx/fr/plugins | 作用:插件相关文件 是否必须拷贝:必须拷贝,如不拷贝会影响插件相关功能的实现 | ||
%ftp%/backup | minio文件服务器文件存放路径/backup | 作用:工程历史备份文件 是否必须拷贝:用户自行决定,可存储在原始的目录下备份,可不拷贝 | ||
%ftp%/assets/temp_attach | minio文件服务器文件存放路径/assets/temp_attach | 作用:读写缓存存储路径 是否必须拷贝:必须拷贝 该文件夹中存放着工程读写(图片)缓存,不拷贝可能会导致模板设置的背景图片预览为空 | ||
%ftp%/assets/vcs | minio文件服务器文件存放路径/assets/vcs | 作用:FineReport模板备份文件 是否必须拷贝:用户自行决定 如果工程不需要回退历史开发的FineReport模板,则无需拷贝 | ||
%ftp%/assets/其他文件 | minio文件服务器文件存放路径/assets/其他文件 | 作用:通用的共享持久化目录 是否必须拷贝:必须拷贝 工程正常运行所需要的文件,如不拷贝会影响工程正常使用 | ||
%ftp%/reportlets | minio文件服务器文件存放路径/reportlets | 作用:FineReport模板存放目录 是否必须拷贝:必须拷贝,如不拷贝会导致工程所有模板丢失 | ||
%ftp%/schedule | minio文件服务器文件存放路径/schedule | 作用:定时调度生成的文件 是否必须拷贝:用户自行决定 如果不拷贝,定时任务挂载到决策平台的结果报表无法访问 |
4.2 启动新工程
用户登录运维平台,点击「运维管理>项目管理」,点击新容器化部署的工程项目后的「组件管理」按钮。
找到bi6组件,点击组件后的「启动」按钮,即可启动该集群所有工程节点。如下图所示:
4.3 验证是否迁移成功
依次登录所有工程节点:
1)查看「管理系统>智能运维>集群配置>节点管理」中是否出现所有集群节点,说明多节点集群全部配置成功
2)查看各节点的工程配置是否相同,说明外接数据库配置成功
4.4 数据抽取
工程迁移后,一般需要重新进行数据抽取。
请先登录新工程,检查并修改数据存放路径。新服务器和老服务器的路径不一定一致,请确保是您所需要存放数据的路径。
新容器化集群默认为抽取集群,数据存放路径修改方法请参考:数据存放路径
5. 启动原非容器化工程
1)将3.1节备份的webroot工程文件,覆盖原非容器化部署的工程各个节点的webroot工程
2)参考 关闭或重启FineBI工程 / 关闭或重启FineReport工程 文档,启动原非容器化部署的工程。