外置数据库回迁内置数据库

一头扎进书堆儿里的萌崽~

1. 概述

1.1 问题描述

安装部署FineReport 报表工程时,会创建数据库 FineDB。FineDB 用来存储 FineReport 自带的报表管理系统(数据决策平台)信息,比如平台用户信息、权限设定信息等。

初次安装部署工程时,可以选择 FineDB 为内置数据库或外接数据库,详细内容可以参考:决策系统简介

若用户选择了 FineDB 为外接数据库, 实际使用中,当 FineDB 外接数据库无法连接或者需要进行工程迁移时,就需要将 FineDB 回迁,从外接数据库变换成内置数据库。

 

1.2 实现思路

在管理系统中手动备份平台配置 FineDB 文件,用备份的文件替换原有文件,删除外接数据库配置「db.properties」文件后即可还原为内置数据库。

2. 操作步骤

2.1 备份平台配置

1)登录管理员账号,进入「管理系统>智能运维>备份还原」,点击「平台配置」,可以看到备份界面,如下图所示:

2020-09-29_13-51-04.jpg

注:若备份界面无内容显示,说明 FineDB 为内置数据库,在「管理系统」>「常规」界面,「外接数据库」位置可以查看是否配置外接数据库。

2)在「管理系统>智能运维>备份还原>平台配置」界面,点击「手动备份」后,弹出「备份设置」窗口,点击「确定」,若需要修改名称可以在「名称」处修改,如下图所示:

2020-09-29_14-03-55.jpg

2.2 替换FineDB库

1)进入报表工程目录%FR_HOME%\webapps\webroot\backup\config\manual,找到刚才备份的文件,如下图所示:

image.png

 

2)点击备份文件,解压备份文件中的「config」文件夹,得到「finedb」数据库文件,如下图所示:

2020-09-29_14-18-19.jpg

3)复制「finedb」数据库文件,替换报表工程目录%FR_HOME%\webapps\webroot\WEB-INF\embed下的「finedb」文件,如下图所示:

image.png

2.3 删除配置文件

进入%FR_HOME%\webapps\webroot\WEB-INF\config 目录,删除「db.properties」文件。该配置文件保存的是外接数据库的配置,删除即还原为内置数据库,如下图所示:

image.png

2.4 重启报表工程

重启报表工程后,用管理员账号登录,在「管理系统」>「常规」界面,「外接数据库」位置可以看到已显示「待配置」,说明 FineDB 已还原为内置数据库,如下图所示:

2020-09-29_14-35-16.jpg

3. 注意事项

3.1 外置数据库迁移到 Oracle 数据库

本文介绍内容为外置数据库迁移到内置 HSQL 数据库,如果用户需要将外置数据库迁移到 Oracle 数据库,需要注意本节所述内容。

有两条主键 ID ,区别为结尾是否带空格。例如「config」和「config 」,Oracle 数据库会认为是不同的数据,HSQL 数据库认为是相同的数据。FineDB 数据库通常只有 fine_conf_entity 会有结尾带空格的情况。

在备份时需要做如下处理:将结尾为空格的数据结尾处加上'__BL__',在还原时再去掉。在这种情况下,若用本文的方法,将备份文件拷贝至 embed 文件夹,再迁移出去后,需要执行update fine_conf_entity set id = replace(id, '__BL__', '')做脏数据处理。

发表于 2023-3-31 17:01:01
有用哦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 3关注人数 10290浏览人数
最后回复于:2024-2-28 09:18

返回顶部 返回列表