1. 概述
1.1 版本
工程版本 | 功能变更 |
---|---|
FineReport11.0 FineBI6.0 | - |
1.2 应用场景
相比于单机工程,集群具有高可用性、高性能、易于管理、可伸缩性和安全保障等优点,适用于企业级的报表生成和管理需求。
本文方案,帮助用户将原有容器化部署的单机工程,迁移为容器化部署的集群工程。
注:全文以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 记录新工程集群信息
管理员登录新工程,点击「管理系统>智能运维>集群配置」。
记录下状态服务器Redis和文件服务器MinIO的相关信息(密码是2.2节记录下的密码)。
2.5 关闭新工程
用户登录运维平台,点击「运维管理>项目管理」,点击新工程项目后的「组件管理」按钮。
找到bi6组件,点击「停止」按钮,即可关闭新工程。如下图所示:
2.6 备份config
请在新工程任意节点的挂载路径/fanruanxxx/bi目录下,找到config文件夹,并另行备份。
该文件夹中存放的yaml文件中,有着工程部署所用语句,后续运营维护时可能会需要使用/查找,请务必异地备份。
3. 原单机工程准备
3.1 备份原工程
在进行工程迁移前,为避免迁移失败,导致工程文件丢失无法回退等问题,请务必对原工程进行备份后再进行后续操作。
请使用运维平台的 备份管理 功能对原工程进行手动备份。
3.2 升级原工程
工程迁移的前提是,两个工程必须处于同一版本。
管理员登录运维平台,点击「运维管理>项目管理」点击新老工程后的「组件管理」,查看bi6组件的当前版本是否相同(精确到日期)。
若两个工程版本不相同,可参考该文档更新工程版本:外网升级指定版本/内网升级项目
3.3 映射集群所需端口
1)FineBI
单机环境重新docker run修改7800,7830,7840,7850,7870配置
docker run -e "DB_CACHE_EXTERNAL_PORT=7850" -e "MEMBER_EXTERNAL_PORT=7870" -e "FILE_SYNC_EXTERNAL_PORT=7830" -e "GENERAL_CACHE_EXTERNAL_PORT=7840" -e "CORE_EXTERNAL_PORT=7800"
单机环境重新docker run添加映射端口,添加50050、50051、50100、50101、50200配置
docker run -p IP:7800:7800 -p IP:7830:7830 -p IP:7840:7840 -p IP:7850:7850 -p IP:7870:7870 -p IP:50050:50050 -p IP:50051:50051 -p IP:50100:50100 -p IP:50101:50101 -p IP:50200:50200 -e "BI_SERVER_PORT_EXPOSE=50101" -e "SPIDER_SERVER_PORT_EXPOSE=50100" -e "BI_CONF_RPC_PORT_EXPOSE=50200" -e "SPIDER_GRPC_PORT_EXPOSE=50051" -e "BI_GRPC_PORT_EXPOSE=50050"
2)FineReport
单机环境重新docker run修改7800,7830,7840,7850,7870配置
docker run -e "DB_CACHE_EXTERNAL_PORT=7850" -e "MEMBER_EXTERNAL_PORT=7870" -e "FILE_SYNC_EXTERNAL_PORT=7830" -e "GENERAL_CACHE_EXTERNAL_PORT=7840" -e "CORE_EXTERNAL_PORT=7800"
单机环境重新docker run添加映射端口
docker run -p IP:7800:7800 -p IP:7830:7830 -p IP:7840:7840 -p IP:7850:7850 -p IP:7870:7870
注意:
以上命令并非完整的 docker run 命令,用户需要基于自己本地原有配置,将以上命令添加/修改进去运行。
此处提供一个完整命令示例,仅作为示例!切勿直接复制使用!
点击展开更多 |
docker run -it -d --log-driver local --restart=on-failure:10 \ --name fanruan230508163535_bi6 -v /home/jasmine/finekeydata/fanruan230508163535/bi6/logs:/usr/local/tomcat/webapps/webroot/logs \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/bi-data:/usr/local/tomcat/webapps/webroot/bi-data \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/assist:/usr/local/tomcat/webapps/webroot/WEB-INF/assist \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/mount:/usr/local/tomcat/mount \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/config:/usr/local/tomcat/webapps/webroot/WEB-INF/config \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/tomcat_logs:/usr/local/tomcat/logs \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/plugins:/usr/local/tomcat/webapps/webroot/WEB-INF/plugins \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/customlib:/usr/local/tomcat/webapps/webroot/WEB-INF/customlib \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/classes:/usr/local/tomcat/webapps/webroot/WEB-INF/classes \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/assets:/usr/local/tomcat/webapps/webroot/WEB-INF/assets \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/schedule:/usr/local/tomcat/webapps/webroot/WEB-INF/schedule \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/dashboards:/usr/local/tomcat/webapps/webroot/WEB-INF/dashboards \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/backup:/usr/local/tomcat/webapps/webroot/backup \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/dpworks:/usr/local/tomcat/webapps/webroot/WEB-INF/dpworks \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/reportlets:/usr/local/tomcat/webapps/webroot/WEB-INF/reportlets \ -v /home/jasmine/finekeydata/fanruan230508163535/bi6/resources:/usr/local/tomcat/webapps/webroot/WEB-INF/resources \ -p 192.168.101.83:7800:7800 -p 192.168.101.83:7830:7830 -p 192.168.101.83:7840:7840 \ -p 192.168.101.83:7850:7850 -p 192.168.101.83:7870:7870 \ -p 192.168.101.83:50050:50050 -p 192.168.101.83:50051:50051 \ -p 192.168.101.83:50100:50100 -p 192.168.101.83:50101:50101 -p 192.168.101.83:50200:50200 \ -p 192.168.101.83:8080:8080 -p 192.168.101.83:12100:12100 -e "ops_sign_key=cc0f92d0a6274e4e" \ -e "DB_CACHE_EXTERNAL_PORT=7850" -e "MEMBER_EXTERNAL_PORT=7870" -e \"TZ=Asia/Shanghai" -e "AGENT_ADDRESSES=http://192.168.101.83:9370/" \ -e "CONTEXT_PATH=webroot" -e "CATALINA_OPTS=-Xmx8192m" -e "USER_ID=0" \ -e "FILE_SYNC_EXTERNAL_PORT=7830" -e "GROUP_ID=0" -e "GENERAL_CACHE_EXTERNAL_PORT=7840" \ -e "jgroups.external_addr=192.168.101.83" -e "EXTERNAL_HTTP_PORT=8080" \ -e "BI_SERVER_PORT_EXPOSE=50101" -e "SPIDER_SERVER_PORT_EXPOSE=50100" -e "BI_CONF_RPC_PORT_EXPOSE=50200" \ -e "SPIDER_GRPC_PORT_EXPOSE=50051" -e "BI_GRPC_PORT_EXPOSE=50050" \ -e "CORE_EXTERNAL_PORT=7800" --ulimit nofile=65536:65536 --ulimit memlock=-1:-1 \ 192.168.101.83:5000/bi6:6.0-20230425 |
3.4 迁移外接数据库
为了保证新老工程的平台配置完全一致,需要同步两个工程的配置库。因此需要让原工程finedb迁移到新工程项目的MySQL组件。
管理员登录原工程,点击「管理系统>系统管理>常规>外接数据库」。
配置外接数据库为2.2节部署的MySQL组件,其中数据库名称为finedb
勾选「迁移数据至要启用的数据库」
点击「启用新数据库」
当出现提示「已成功切换至目标数据库!」,则代表外接数据库切换成功。
3.5 安装minio资源仓库插件
由于需要让原单机工程对接新集群组件,因此需要先安装必要插件。
管理员登录原工程,点击「管理系统>插件管理」,安装「minio资源仓库」插件。如下图所示:
3.6 对接集群组件
1)管理员登录原单机工程,点击「管理系统>智能运维>集群配置」。
2)开启「状态服务器」。选择「单机Redis」,输入2.4节记录的Redis组件信息。
3)开启「文件服务器共享」。选择「MinIO」,输入2.4节记录的MinIO组件信息。
4)缓存模式选择「关闭缓存」,集群通信协议选择「TCP」。
5)开启「开启集群」按钮。
6)用户登录运维平台,点击「运维管理>项目管理」,点击原单机工程项目后的「组件管理」按钮。找到bi6组件,点击「重启」按钮,即可重启工程。
7)再次查看原工程的「管理系统>智能运维>集群配置」,在节点管理处出现本工程节点,说明单节点集群部署成功。
3.7 关闭原工程
用户登录运维平台,点击「运维管理>项目管理」,点击原工程项目后的「组件管理」按钮。
找到bi6组件,点击「停止」按钮,即可关闭新工程。如下图所示:
4. 迁移工程
4.1 拷贝工程文件
将原工程bi6组件的外挂目录数据,拷贝到新项目各个工程节点的bi6组件的外挂目录里。
1)请提前检查原工程,是否修改了外挂目录位置、是否配置共享文件服务器,确保拷贝到正确的文件。
2)新工程外挂文件所在位置,为2.2节记录的挂载路径。
3)将以下文件,从原工程外挂目录,拷贝到新工程外挂目录中:
注1:请勿直接拷贝整个外挂目录文件夹到新工程,部分文件不可以被覆盖。
注2:请勿使用3.1节备份的文件,而是使用工程最终的文件进行拷贝操作。
FineBI需要拷贝的文件
原工程目录 | 新工程外挂目录 | 说明 |
---|---|---|
%BI_HOME%/fanruanxxx/bi6/bi-data | %BI_HOME%/fanruanxxx/bi6/bi-data | 作用:FineBI抽取数据 是否必须拷贝: 如果新老工程在同一服务器上,可重新-v挂载原工程的bi-data文件夹,或在新工程启动后重新抽取数据,无需拷贝 如果新老工程不在同一服务器上,不建议拷贝,该文件夹一般数据量太大,拷贝困难,可在新工程启动后重新抽取数据 |
%BI_HOME%/fanruanxxx/bi6/classes | %BI_HOME%/fanruanxxx/bi6/classes | 作用:工程调用的默认和自定义class文件 是否必须拷贝:必须拷贝 有可能存在自定义的class文件,如不拷贝会影响工程正常使用 |
%BI_HOME%/fanruanxxx/bi6/config | %BI_HOME%/fanruanxxx/bi6/config | 作用:配置库相关文件 是否必须拷贝:必须拷贝 平台调用的配置库(finedb),如不拷贝会影响工程正常使用 |
%BI_HOME%/fanruanxxx/bi6/customLib | %BI_HOME%/fanruanxxx/bi6/customlib | 作用:工程定制/外部引入的JAR包 是否必须拷贝:必须拷贝,如不拷贝会影响模板访问 |
%BI_HOME%/fanruanxxx/bi6/logs | %BI_HOME%/fanruanxxx/bi6/logs | 作用:swift日志 是否必须拷贝:用户自行决定 如果不拷贝,会丢失工程历史操作日志(即logdb),「管理系统>平台日志」功能无数据 如对历史使用情况无要求,无需拷贝 |
%BI_HOME%/fanruanxxx/bi6/plugins | %BI_HOME%/fanruanxxx/bi6/plugins | 作用:插件相关文件 是否必须拷贝:必须拷贝,如不拷贝会影响插件相关功能的实现 |
%BI_HOME%/fanruanxxx/bi6/tomcat_logs | %BI_HOME%/fanruanxxx/bi6/tomcat_logs | 作用:Tomcat通用日志位置 是否必须拷贝:用户自行决定,Tomcat历史访问日志,可不拷贝 |
%BI_HOME%/fanruanxxx/bi6/backup | minio文件服务器文件存放路径/backup | 作用:工程历史备份文件 是否必须拷贝:用户自行决定,可存储在原始的目录下备份,可不拷贝 |
%BI_HOME%/fanruanxxx/bi6/assets/temp_attach | minio文件服务器文件存放路径/assets/temp_attach | 作用:FineBI数据表相关信息 是否必须拷贝:必须拷贝 该文件夹中存放着工程Excel原始文件信息,如不拷贝该文件夹会导致原始Excel丢失 |
%BI_HOME%/fanruanxxx/bi6/assets/vcs | minio文件服务器文件存放路径/assets/vcs | 作用:FineReport模板备份文件 是否必须拷贝:用户自行决定 如果工程未使用FineReport模板,或不需要回退历史开发的FineReport模板,则无需拷贝 |
%BI_HOME%/fanruanxxx/bi6/assets/其他文件 | minio文件服务器文件存放路径/assets/其他文件 | 作用:通用的共享持久化目录 是否必须拷贝:必须拷贝 工程正常运行所需要的文件,如不拷贝会影响工程正常使用 |
%BI_HOME%/fanruanxxx/bi6/reportlets | minio文件服务器文件存放路径/reportlets | 作用:FineReport模板存放目录 是否必须拷贝:用户自行决定 如果工程未使用FineReport模板,则无需拷贝 |
%BI_HOME%/fanruanxxx/bi6/schedule | minio文件服务器文件存放路径/schedule | 作用:定时调度生成的文件 是否必须拷贝:用户自行决定 如果不拷贝,定时任务挂载到决策平台的结果报表无法访问 |
FineReport需要拷贝的文件
原工程目录 | 新工程外挂目录 | 说明 |
---|---|---|
%FR_HOME%/fanruanxxx/fr/classes | %FR_HOME%/fanruanxxx/fr/classes | 作用:工程调用的默认和自定义class文件 是否必须拷贝:必须拷贝 有可能存在自定义的class文件,如不拷贝会影响工程正常使用 |
%FR_HOME%/fanruanxxx/fr/config | %FR_HOME%/fanruanxxx/fr/config | 作用:配置库相关文件 是否必须拷贝:必须拷贝 平台调用的配置库(finedb),如不拷贝会影响工程正常使用 |
%FR_HOME%/fanruanxxx/fr/customLib | %FR_HOME%/fanruanxxx/fr/customlib | 作用:工程定制/外部引入的JAR包 是否必须拷贝:必须拷贝,如不拷贝会影响模板访问 |
%FR_HOME%/fanruanxxx/fr/logs | %FR_HOME%/fanruanxxx/fr/logs | 作用:swift日志 是否必须拷贝:用户自行决定 如果不拷贝,会丢失工程历史操作日志(即logdb),「管理系统>平台日志」功能无数据 如对历史使用情况无要求,无需拷贝 |
%FR_HOME%/fanruanxxx/fr/plugins | %FR_HOME%/fanruanxxx/fr/plugins | 作用:插件相关文件 是否必须拷贝:必须拷贝,如不拷贝会影响插件相关功能的实现 |
%FR_HOME%/fanruanxxx/fr/tomcat_logs | %FR_HOME%/fanruanxxx/fr/tomcat_logs | 作用:Tomcat通用日志位置 是否必须拷贝:用户自行决定,Tomcat历史访问日志,可不拷贝 |
%FR_HOME%/fanruanxxx/fr/backup | minio文件服务器文件存放路径/backup | 作用:工程历史备份文件 是否必须拷贝:用户自行决定,可存储在原始的目录下备份,可不拷贝 |
%FR_HOME%/fanruanxxx/fr/assets/temp_attach | minio文件服务器文件存放路径/assets/temp_attach | 作用:读写缓存存储路径 是否必须拷贝:必须拷贝 该文件夹中存放着工程读写(图片)缓存,不拷贝可能会导致模板设置的背景图片预览为空 |
%FR_HOME%/fanruanxxx/fr/assets/vcs | minio文件服务器文件存放路径/assets/vcs | 作用:FineReport模板备份文件 是否必须拷贝:用户自行决定 如果工程不需要回退历史开发的FineReport模板,则无需拷贝 |
%FR_HOME%/fanruanxxx/fr/assets/其他文件 | minio文件服务器文件存放路径/assets/其他文件 | 作用:通用的共享持久化目录 是否必须拷贝:必须拷贝 工程正常运行所需要的文件,如不拷贝会影响工程正常使用 |
%FR_HOME%/fanruanxxx/fr/reportlets | minio文件服务器文件存放路径/reportlets | 作用:FineReport模板存放目录 是否必须拷贝:必须拷贝,如不拷贝会导致工程所有模板丢失 |
%FR_HOME%/fanruanxxx/fr/schedule | minio文件服务器文件存放路径/schedule | 作用:定时调度生成的文件 是否必须拷贝:用户自行决定 如果不拷贝,定时任务挂载到决策平台的结果报表无法访问 |
4.2 启动新工程
用户登录运维平台,点击「运维管理>项目管理」,点击新工程项目后的「组件管理」按钮。
找到bi6组件,点击「启动」按钮,即可启动新工程。如下图所示:
4.3 验证是否迁移成功
依次登录新集群所有工程节点:
1)查看「管理系统>智能运维>集群配置>节点管理」中是否出现所有集群节点,说明多节点集群全部配置成功
2)查看各节点的工程配置是否相同,说明外接数据库配置成功
5. 启动原工程
由于此时原工程使用着新工程的外接数据库和集群组件,不能直接启动。
1)使用3.1节的备份,将原工程还原到单机状态。
2)再使用运维平台的「项目管理>组件管理」功能,启动原工程。