1. 概述编辑
1.1 版本
BI 服务器版本 | JAR 包版本 |
---|---|
5.1 | 2020-12-04 |
1.2 功能简介
BI 系统配置外接数据库后,遇到集群环境或数据量较大情况时,可保证 BI 系统的稳定性。
用户可在「初始化时」配置外接数据库或在「平台中」配置 MySQL8 版本的外接数据库。
2. 数据库配置编辑
2.1 数据库版本
外接数据库支持的类型及版本如下表所示:
数据库类型 | JAR 包版本 | 支持数据库版本 |
---|---|---|
MySQL8 | 2020-12-04 | 8.0.11,8.0.16,8.0.20 |
2.2 硬件配置估算
用户数量 | 权限复杂度 | 推荐配置数据库空间大小(具体情况需考虑其他配置复杂度及访问量) |
---|---|---|
1~100 | 简单 | 25M + 仪表板数量 * 630 k |
100~2000 | 中等 | 50M + 仪表板数量 * 630 k |
简单 | 40M + 仪表板数量 * 630 k | |
中等 | 85M + 仪表板数量 * 630 k | |
复杂 | 150M + 仪表板数量 * 630 k | |
2000~30000 | 简单 | 130M + 仪表板数量 * 630 k |
中等 | 250M + 仪表板数量 * 630 k | |
复杂 | 500M + 仪表板数量 * 630 k |
2.3 新建数据库
准备将平台数据要迁移到的数据库,建议用户在本地数据库中新建一个空的数据库(数据库大小请参考本文 2.2 节)。如下图所示:
推荐设置数据库默认字符集为 utf8 ,默认排序规则为 utf8_bin。如下图所示:
注:不同 FineReport 工程,不可共用同一个外接数据库,否则数据可能会出现错乱。
数据库名:
只允许包含数字、字母、下划线和「.」
字符集:
1)平台外接 MySQL 数据库时,需要设置字符集排序规则(大小写敏感)。
2)推荐使用 utf8 – UTF-8 Unicode 编码。
排序规则:
MySQL 中存在多种格式的 utf8 编码的排序规则,其中最常见的两种如下表所示:
1)utf8_bin(推荐)
定义:将字符串中的每一个字符用二进制数据存储,区分大小写
示例:Alex 和 alex 被认为是两个不同的值
1)utf8_general_ci
定义:ci 为 case insensitive 的缩写,即大小写不敏感,为 utf8 默认编码
示例:Alex 和 alex 被认为是相同的值
2.4 更换驱动
FineBI 5.1 内置了 MySQL5 版本的驱动,如使用 MySQL8 版本的外接数据库,需要手动更换驱动。
1)关闭 BI 工程
2)下载对应版本的 MySQL8.0 驱动,并上传至工程webapps\webroot\WEB-INF\lib目录下。
3)删除工程webapps\webroot\WEB-INF\lib目录下的mysql-connector-java-5.1.39-bin.jar。
4)重启 BI 工程。
3. 方法一:初始化时配置外接数据库编辑
本方法适用于第一次登录数据决策系统时配置外接数据库。
3.1 进入初始化界面
用户可在第一次进入平台时配置外接数据库,如下图所示:
3.2 配置外接数据库
点击「配置数据库」后,进入到外接数据库配置界面,选择数据库类型为 MySQL,输入实际数据库相应的信息即可。如下图所示:
各设置项说明如下表所示:
设置项 | 说明 |
---|---|
数据库类型 | 选择 MySQL |
驱动 | 手动修改为com.mysql.cj.jdbc.Driver 请确保已按照 2.4 节更换驱动,且工程中不存在其他版本的 MySQL 驱动 |
数据库名称 | 2.3 节新建的数据库名称 禁止与其他工程共用数据库,建议新建数据库 数据库名称只允许包含数字、字母、下划线和「.」 |
用户名/主机/密码/端口 | 根据本地数据库实际情况填写 主机名称只允许包含数字、字母、下划线、「-」和「.」 用户需要具备 create、delete、alter、update、select、insert 权限,建议有最高 root 权限 |
数据库连接URL | 手动修改,格式如下,其中IP:端口号/数据库名称需要自行调整: jdbc:mysql://IP:端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
3.3 配置成功
等待一段时间,提示已成功启用新数据库。如下图所示:
注:请勿在迁移过程中刷新页面。
4. 方法二:平台中配置外接数据库编辑
本方法适用于进入数据决策系统后,第一次配置外接数据库。
4.1 进入平台
管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>待配置」,如下图所示:
4.2 配置外接数据库
输入实际数据库相应的信息,配置外接数据库。如下图所示:
各设置项说明如下表所示:
设置项 | 说明 |
---|---|
数据库类型 | 选择 MySQL |
驱动 | 手动修改为com.mysql.cj.jdbc.Driver 请确保已按照 2.4 节更换驱动,且工程中不存在其他版本的 MySQL 驱动 |
数据库名称 | 2.3 节新建的数据库名称 禁止与其他工程共用数据库,建议新建数据库 数据库名称只允许包含数字、字母、下划线和「.」 |
用户名/主机/密码/端口 | 根据本地数据库实际情况填写 主机名称只允许包含数字、字母、下划线、「-」和「.」 用户需要具备 create、delete、alter、update、select、insert 权限,建议有最高 root 权限 |
数据库连接URL | 手动修改,格式如下,其中IP:端口号/数据库名称需要自行调整: jdbc:mysql://IP:端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
4.3 配置成功
等待一段时间,会跳出弹窗提示:已成功启用目标数据库,点击「确定」即可。如下图所示:
注1:请勿在迁移过程中刷新页面。
注2:数据库配置成功后无需重启。
5. 方法三:平台二次迁移数据库编辑
本方法适用于系统已配置外接数据库后,迁移至新的数据库。
5.1 进入平台
管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>已配置」,如下图所示:
5.2 配置外接数据库
输入实际数据库相应的信息,配置外接数据库。如下图所示:
各设置项说明如下表所示:
设置项 | 说明 |
---|---|
数据库类型 | 选择 MySQL |
驱动 | 手动修改为com.mysql.cj.jdbc.Driver 请确保已按照 2.4 节更换驱动,且工程中不存在其他版本的 MySQL 驱动 |
数据库名称 | 2.3 节新建的数据库名称 禁止与其他工程共用数据库,建议新建数据库 数据库名称只允许包含数字、字母、下划线和「.」 |
用户名/主机/密码/端口 | 根据本地数据库实际情况填写 主机名称只允许包含数字、字母、下划线、「-」和「.」 用户需要具备 create、delete、alter、update、select、insert 权限,建议有最高 root 权限 |
数据库连接URL | 手动修改,格式如下,其中IP:端口号/数据库名称需要自行调整: jdbc:mysql://IP:端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
「迁移数据至要启用的数据库」按钮说明:
1)勾选「迁移数据至要启用的数据库」
切换数据库时,原外接数据库的数据会导入到新数据库,工程下不生成历史数据备份文件。
若新数据库中已存在平台数据,导入数据前将清空原有平台数据。提示如下图所示:
2)不勾选「迁移数据至要启用的数据库」
若新外接数据库为空,提示必须将当前数据迁移到目标数据库。
若新外接数据库不为空
迁移前将自动备份原数据库的配置信息,在webapps\webroot\WEB-INF\config目录下生成db.properties.bak文件。如下图所示:
直接启用新数据库,迁移成功后,提示如下图所示:
5.3 迁移成功
等待一段时间,会跳出弹窗提示:已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启冲刺以确保正常使用。
点击「确定」后,重启 BI 工程,方迁移成功。如下图所示:
注:请勿在迁移过程中刷新页面。
提示:
6. 注意事项编辑
如果一开始数据库排序规则没有设置 utf8_bin ,但已经迁移过去了,那么有两张表 fine_conf_entity、 fine_conf_classname 需要修改为 utf8_bin,下面以 fine_conf_entity 为例:
1)查询当前的字符集排序规则
show full columns from fine_conf_entity
2)设置字符集排序规则为 utf8_bin
设置列的默认校验规则
ALTER TABLE fine_conf_entity MODIFY id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin;
设置表的校验规则
ALTER TABLE fine_conf_entity DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
3)查看是否修改成功
show full columns from fine_conf_entity
4)用上面1)2)3)相同的步骤将 fine_conf_entity 替换为 fine_conf_classname 表,设置如下图所示: