1. 概述
1.1 用户痛点
小明同学负责一个FineReport工程的运维,为了防止工程出现意外,需要定期对工程进行备份。
FineReport/FineBI提供了「备份还原」功能,但是在使用该功能的过程中,小明又爱又恨。
1)无法异地备份:工程部署在A服务器上,备份的内容也在A服务器上,结果小明误删除的时候,把工程和备份都删除了。
2)备份速度缓慢:随着工程中的模板、数据越来越多,应用备份的速度越来越慢了。
3)还原逻辑复杂:JAR包、模板、配置都是分开备份的,但是大多时候需要将这些内容按照时间点统一备份还原。
4)备份内容不全:一些重要内容不在备份还原范围内,会影响工程的正常运行,例如classes、resources等。
1.2 解决思路
针对备份还原的相关诉求,运维平台提供「备份还原」功能,帮助用户对工程进行异地、整体、快速的备份还原。
1.3 备份内容
在了解具体场景方案之前,用户应当先了解下,一个FineReport/FineBI工程中,需要备份的内容有哪些:
备份内容 | 说明 | 位置 |
---|---|---|
平台配置 | 备份内容:工程的数据决策系统配置,包括:系统设置、用户、权限、BI模板等 备份必要性:没有备份的话,工程还原后,平台中的所有用户、权限、目录等配置都会丢失 | 使用内置数据库:webroot\WEB-INF\embed\finedb 使用外接数据库:外接数据库中 |
报表模板 | 备份内容:FineReport的报表模板文件 备份必要性:FineReport最重要的模板文件,没有备份的话,就无法访问任何一张模板 | 单机:webroot\WEB-INF\reportlets 集群:文件服务器\reportlets |
JAR包 | 备份内容:工程的JAR包 备份必要性:没有备份的话,工程还原后,工程无法正常运行 | webroot\WEB-INF\lib |
自定义JAR包 | 备份内容:工程定制/外部引入的JAR包 备份必要性:没有备份的话,工程还原后,工程无法正常运行 | webroot\WEB-INF\customlib |
插件 | 备份内容:工程安装的插件 备份必要性:没有备份的话,工程还原后,依赖插件运行的模板和功能将无法正常使用 | webroot\WEB-INF\plugins |
classes | 备份内容:工程中自定义的一些程序数据集等编译好的可执行class文件 备份必要性:没有备份的话,工程还原后,依赖这些class文件的模板,无法正常使用 | webroot\WEB-INF\classes |
resources | 备份内容:设计器注册文件、模板加密文件 备份必要性:没有备份的话,工程还原后,通过lic方式注册的工程需要重新注册,使用了模板加密会导致所有模板都打不开 | 单机:webroot\WEB-INF\resources 集群:文件服务器\resources |
通用属性配置 | 备份内容:FineBI的Excel原始文件信息、FineReport模板备份文件、通用的共享持久化目录 备份必要性:工程正常运行所需要的文件,如不拷贝会影响工程正常使用 | webroot\WEB-INF\assets |
集群配置 | 备份内容:集群的一些配置信息,例如外接数据库配置信息,仅当记录过集群配置信息后才会出现 备份必要性:如果工程配置了外接库或开启了集群,没有备份的话,工程还原后是单机+内置,集群的连接信息都会丢失,需要重新配置外接库 | 单机:webroot\WEB-INF\config 集群:文件服务器\config |
FineDataLink任务配置 | 备份内容:FineDataLink任务相关的配置文件 备份必要性:如不备份,工程还原后,会影响FineDataLink任务使用 (如不存在该文件夹,说明工程没有使用FDL相关功能,略过) | webroot\WEB-INF\dpworks |
2. 最佳实践
对于不同情况下部署的FineReport/FineBI工程,工程的最佳备份还原方案不完全相同。
1)非容器化部署工程
部署方式说明:未使用FineKey工具/运维平台部署的FineReport、FineBI工程。
备份还原方案:
本机备份还原:通过数据决策系统的功能,可以进行本机备份还原。备份内容包括JAR包、模板文件、插件、配置库。
异地备份还原:通过运维平台对接非容器化工程,可以实现异地备份,需要手动还原。备份内容包括JAR包、模板文件、插件、配置库。
集群备份还原:对于集群组件备份的场景,基本都需要管理员自行手动备份还原。
2)容器化部署工程自有配置库
部署方式说明:使用FineKey工具/运维平台部署的FineReport、FineBI工程,且工程的finedb配置库是后期自行接入的,工程使用的集群组件都是用户自行安装配置。
备份还原方案:运维平台仅能将工程的JAR包、插件、集群配置和classes备份到运维平台所在服务器,其余都需要管理员自行处理。
3)容器化部署工程(推荐)
部署方式说明:使用FineKey工具/运维平台部署的FineReport、FineBI工程,且工程的finedb配置库、集群组件等是部署时全新安装接入的。
备份还原方案:运维平台可以直接实现全部功能功能化备份还原,包括异地备份
2.1 单机工程-本地备份
备份内容 | 非容器化部署工程 | 容器化部署工程 自有配置库 | 容器化部署工程 |
---|---|---|---|
平台配置 | 工程未配置外接数据库: 使用数据决策系统的备份还原功能 对平台配置进行备份还原 工程配置了外接数据库: 用户自行手动备份 用户自行手动还原 | 工程配置了外接数据库: 用户自行手动备份 用户自行手动还原 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart |
报表模板 | 使用数据决策系统的备份还原功能 对报表模板进行备份还原 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart | |
JAR包 | 使用数据决策系统的备份还原功能 对工程JAR包进行备份还原 | ||
插件 | 使用数据决策系统的备份还原功能 对插件进行备份还原 | ||
classes | 用户自行手动备份 用户自行手动还原 | ||
集群配置 | 工程未配置外接数据库: 无需备份 工程配置了外接数据库: 用户自行手动备份 用户自行手动还原 | ||
resources | 用户自行手动备份 用户自行手动还原 |
2.2 单机工程-异地备份
备份内容 | 非容器化部署工程 | 容器化部署工程 自有配置库 | 容器化部署工程 |
---|---|---|---|
平台配置 | 工程未配置外接数据库: 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可对平台配置进行异地备份 用户自行手动还原 工程配置了外接数据库: 用户自行手动异地备份 用户自行手动还原 | 工程配置了外接数据库: 用户自行手动异地备份 用户自行手动还原 | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可对整体工程进行异地备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart |
报表模板 | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可进行异地备份 用户自行手动还原 | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可对整体工程进行异地备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart | |
JAR包 | |||
插件 | |||
classes | 用户自行手动异地备份 用户自行手动还原 | ||
集群配置 | 工程未配置外接数据库: 无需备份 工程配置了外接数据库: 用户自行手动异地备份 用户自行手动还原 | ||
resources | 用户自行手动异地备份 用户自行手动还原 |
2.3 集群工程-本地备份
备份内容 | 非容器化部署工程 | 容器化部署工程 自有配置库 | 容器化部署工程 |
---|---|---|---|
平台配置 | 用户自行手动备份 用户自行手动还原 | 用户自行手动备份 用户自行手动还原 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart |
报表模板 | 使用数据决策系统的备份还原功能 对报表模板进行备份还原 备份到文件服务器 | 使用数据决策系统的备份还原功能 对报表模板进行备份还原 备份到文件服务器 | |
JAR包 | 使用数据决策系统的备份还原功能 对工程JAR包进行备份还原 备份到文件服务器 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart | |
插件 | 使用数据决策系统的备份还原功能 对插件进行备份还原 备份到文件服务器 | ||
classes | 用户自行手动备份 用户自行手动还原 | ||
集群配置 | 用户自行手动备份 用户自行手动还原 | ||
resources | 用户自行手动备份 用户自行手动还原 | 用户自行手动备份 用户自行手动还原 | |
集群组件 | 用户自行手动备份 用户自行手动还原 | 用户自行手动备份 用户自行手动还原 | 使用运维平台的备份还原功能,对以下集群组件进行备份还原 外接数据库:MySQL单机 文件服务器:MinIO单机 负载均衡:nginx单机 状态服务器:Redis单机 |
2.3 集群工程-异地备份
备份内容 | 非容器化部署工程 | 容器化部署工程 自有配置库 | 容器化部署工程 |
---|---|---|---|
平台配置 | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可对平台配置进行异地备份 用户自行手动还原 | 用户自行手动异地备份 用户自行手动还原 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart |
报表模板 | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可进行异地备份 用户自行手动还原 | 用户自行手动异地备份 用户自行手动还原 | |
JAR包 | 使用运维平台的备份还原功能,对整体工程进行备份还原 1)备份内容包括: assets reportlets resources dashboards config plugins classes customlib drivers 2)其中assets下排除了: temp_attach/default temp_attach/session temp_attach/query temp_attach/restart | ||
插件 | |||
classes | 运维平台和FR/BI工程异地部署(部署在不同服务器上) 使用运维平台的备份还原功能,即可进行异地备份 用户自行手动还原 | ||
集群配置 | 用户自行手动异地备份 用户自行手动还原 | ||
resources | 用户自行手动异地备份 用户自行手动还原 | 用户自行手动异地备份 用户自行手动还原 | |
集群组件 | 用户自行手动异地备份 用户自行手动还原 | 用户自行手动异地备份 用户自行手动还原 | 使用运维平台的备份还原功能,对以下集群组件进行备份还原 外接数据库:MySQL单机 文件服务器:MinIO单机 负载均衡:nginx单机 状态服务器:Redis单机 |
3. 下一步操作
对比完本文各种类型工程的备份还原方案后,推荐进行下一步操作:
推荐步骤 | 功能说明 |
---|---|
部署新项目 | 未部署FineReport/FineBI工程 可参考本文,使用运维平台容器化部署单机/集群工程 |
4. 相关推荐
本文主要讲述的是备份还原的场景案例,推荐你进行阅读并了解运维平台的备份还原功能:
文档索引 | 方法简介 |
---|---|
备份管理 | 运维平台提供「备份管理」功能。
|