报表系统配置外接数据库后,遇到集群环境或数据量较大情况时,可保证报表系统的稳定性。
用户可在「初始化时」配置外接数据库或在「平台中」配置MySQL5版本的外接数据库。
注:若配置了外接数据库,请勿轻易修改外接数据库的用户名和密码,否则会导致工程启动失败。
2.准备外接数据库2.1数据库版本外接数据库支持的类型及版本如下表所示:
2.2硬件配置2.新建数据库新建一个数据库,用于存储平台相关数据。
标准建库语句:CREATEDATABASE`finedb`DEFAULTCHARACTERSETutf8COLLATEutf8_bin
注:不同FineReport工程,不可共用同一个外接数据库,否则数据可能会出现错乱。
推荐设置数据库默认字符集为utf8,默认排序规则为utf8_bin。如下图所示:
数据库名:
只允许包含数字、字母、下划线和「.」
字符集:
1)平台外接MySQL数据库时,需要设置字符集排序规则(大小写敏感)。
2)推荐使用utf8–UTF-8Unicode编码
)不支持utf8mb4编码
排序规则:
MySQL中存在多种格式的utf8编码的排序规则,其中最常见的两种如下表所示:
1)utf8_bin(推荐)
定义:将字符串中的每一个字符用二进制数据存储,区分大小写
示例:Alex和alex被认为是两个不同的值
1)utf8_general_ci
定义:ci为caseinsensitive的缩写,即大小写不敏感,为utf8默认编码
示例:Alex和alex被认为是相同的值
.配置外接数据库.1外接数据库配置入口外接数据库的配置入口,有三种形式:
1)超级管理员第一次登录数据决策系统时,即可为系统配置外接数据库。如下图所示:
2)对于使用内置数据库的系统,管理员登录数据决策系统,点击「管理系统系统管理常规外接数据库待配置」,可为系统第一次配置外接数据库。如下图所示:
)对于已启用外接数据库的系统,管理员登录数据决策系统,点击「管理系统系统管理常规外接数据库已配置」,可为系统迁移至新的外接数据库。如下图所示:
.2配置外接数据库进入到外接数据库配置界面后,选择数据库类型,输入实际数据库相应的信息即可。如下图所示:
.2.1设置项各设置项说明如下表所示:
.2.2迁移数据至要启用的数据库用户可根据自身需求选择是否勾选「迁移数据至要启用的数据库」按钮。具体如下:
1)勾选「迁移数据至要启用的数据库」,新外接数据库为空
点击「启用新数据库」后,会将原finedb数据库的平台数据迁移到新外接数据库中。
2)勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据
点击「启用新数据库」后,跳出提示「该数据库已存在平台数据,导入数据前将清空原有平台数据,确认连接该数据库?」。
点击「确定」将清空原有平台数据,将原finedb数据库的平台数据迁移到新外接数据库中。
)不勾选「迁移数据至要启用的数据库」,新外接数据库为空
点击「启用新数据库」后,跳出提示「目标数据库为新数据库,将当前数据迁移至目标数据库后方能使用」。
点击「确定」,将原finedb数据库的平台数据迁移到新外接数据库中。
4)不勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据
点击「启用新数据库」后,工程会自动检测目标数据库中数据对应的JAR包版本和当前工程的JAR包版本是否一致。
若不一致,则跳出提示「无法启用!启用新数据库需要的工程版本:XXX。当前工程版本:XXX。请确保工程版本一致!」。无法进行外接数据库配置。
若JAR包版本一致,且原finedb数据库为内置数据库,则直接启用新外接数据库。
若JAR包版本一致,且原finedb数据库为外接数据库,迁移前将自动备份原数据库的配置信息,在webapps\webroot\WEB-INF\config目录下生成db.properties.bak文件,并直接启用新外接数据库。如下图所示:
.迁移成功等待一段时间,迁移成功后,根据迁移时的情况,可能会跳出不同的弹窗提示。
注:请勿在迁移过程中刷新页面。
1)新外接数据库,使用了原finedb数据库的数据。
则提示「已成功启用目标数据库」。点击「确定」即可,迁移成功。如下图所示:
2)新外接数据库,使用了该数据库中原有的数据,且原finedb数据库为内置数据库。
则提示「已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用」。
点击「确定」后,重启报表工程,方迁移成功。如下图所示:
)新外接数据库,使用了该数据库中原有的数据,且原finedb数据库为外接数据库。
则跳出两个提示:
已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用
原数据库配置已备份至config文件夹下,如有需要可以使用备份文件还原数据库配置
点击「确定」后,重启报表工程,方迁移成功。如下图所示:
4.注意事项4.1删除内置库数据连接「内置FineDB数据库」为HSQL数据库,使用时会建立内存数据库,数据量大时会占用大量内存。
因此配置完外接数据库后,请检查数据连接中是否存在「内置FineDB数据库」的数据连接。
若存在相关数据连接,请及时删除,否则会持续占用服务器内存。
4.2修改数据库排序规则如果一开始数据库排序规则没有设置utf8_bin,但已经迁移过去了,那么有两张表fine_conf_entity、fine_conf_classname需要修改为utf8_bin,下面以fine_conf_entity为例:
1)查询当前的字符集排序规则
showfullcolumnsfromfine_conf_entity
2)设置字符集排序规则为utf8_bin
设置列的默认校验规则
ALTERTABLEfine_conf_entityMODIFYidVARCHAR()CHARACTERSETutf8COLLATEutf8_bin;
设置表的校验规则
ALTERTABLEfine_conf_entityDEFAULTCHARACTERSETutf8COLLATEutf8_bin;
)查看是否修改成功
showfullcolumnsfromfine_conf_entity
4)用上面1)2))相同的步骤将fine_conf_entity替换为fine_conf_classname表,设置如下图所示:
总结
请点zongjie击(最多18字总结帆软FineReport占用空间需要结合使用度进行调整,可以根据webapps/webroot/WEB-INF/embed/finedb文件夹大小配置,并根据帆软报表分析与制作实际大小预估未来使用大小,增大1~2倍。推荐内存为预留给工程配置库的内存。外接数据库数据查询与过滤尽量和报表工程在同一网段,避免网络波动等问题。