报表内置数据库,finedb,logdb,chartdb、内置hsql数据库、hsql
1. 问题描述
FineReport报表内置有三个hsql数据库:finedb、logdb和chartdb,这些数据库具体有什么作用呢?并且存放的是什么内容呢?
2. 解释说明
2.1 存放位置及保存内容
| 数据库名 | 存放位置 | 保存数据 | 说明 |
| finedb | %FR_Home%\WebReport\WEB-INF | 保存目录树设置以及模板定时任务信息 | 管理目录树下有哪些文件夹,文件夹下有哪些模板及对每个模板可编辑定时任务等 |
| logdb | %FR_Home%\WebReport\WEB-INF | 保存日志记录 | 查看http://localhost:8075/WebReport/ReportServer?op=fr_log_manger日志平台或管理平台上服务器配置>日志的记录,用于记录和查询报表执行、导出、打印、出错的日志信息等 |
| chartdb | %FR_Home%\WebReport\WEB-INF\resources | 保存是地图数据 | 记录全世界,国家,省,市的名称与对应的形状大小 |
2.2 包含的文件
这三个数据库都是hsql数据库,finedb、logdb和chartdb文件夹下包含如下文件:
db.properties:必有,存放hsql数据库的属性;
db.script:必有,保存表及数据;
db.data:可无,包含缓存表的数据;
db.lck:可无,表示数据库处于打开状态;
db.backup :可无,文件是最近持久化状态的表的数据文件的压缩备份文件;
db.log :可无,文件包含当前数据库的变更。
注:上述文件中除db.properties、db.script必有外,其他文件默认没有,若数据库被使用,且表及数据修改了如配置了管理平台的某些属性,这些文件会自动生成。
2.3 hsql数据库出故障
内置hsql的表结构有问题或数据库字段不正确有可能会执行错误,如SetPrinterOffsetService.initDB会导致管理平台启动不了。
删除hsql文件, 或者手动修改数据库表结构。
3. 把数据迁移到自己数据库
3.1 问题描述
使用数据透视表,希望能够备份数据透视表的内容,防止丢失,数据透视表的内容是保存在finedb数据库中,因此需要对该hsql进行备份。您系统本身的数据库如oracle也需要每天自动备份,就需要同时对2个数据库进行备份,如果一个数据库数据错误,另一个数据库数据已经在备份,以后需要恢复到同一版本就麻烦了,此时希望把finedb数据库中的表保存到自己的数据库中,采用相同机制备份。
3.2 解决方案
修改配置文件config.xml,实现将管理平台里原本保存在finedb的内容保存到指定的数据库,其中需要的表会在指定数据库中自动创建,配置文件中加入标签代码如下:
url中是连接SQL Server2000数据库的路径,FRTest是数据库名字,根据自己情况连接相应数据库,如上代码复制放到config.xml配置文件里面结果如下图:
运行管理平台,配置信息,就会在SQL Server2000数据库中自动创建fr表保存相应的设置了,如下图:
返回顶部