1. 概述
1.1 版本
FineBI服务器版本 |
---|
6.0 |
1.2 应用场景
本文将列出在数据连接过程中,常见的问题及排查步骤。
2. 排查思路
数据库连接不上可能是连接信息填写错误,也可能是数据库连接环境的问题。本文提供以下排查思路和方式:
检查 URL 是否正确。
检查云数据库白名单。
运行测试小工具,检查除 BI 外的连接环境是否有问题,包括数据库和数据库驱动。
查看后台报错日志,检查是否是数据库驱动与 BI 之间有 JAR 包冲突。
2.1 检查URL是否正确
参考 数据连接支持范围 ,找到对应数据库正确的 URL 格式,检查数据连接 URL 是否填写正确。如下图所示:
2.2 检查防火墙
检查数据库是否给 BI 服务器开启了白名单。
2.3 数据连接自检工具
注1:数据连接自检工具仅提供给用户自行判断使用。技术支持不负责该工具的维护和使用问题解答。
注2:工具运行需 JDK 环境。
该工具可以检测连接环境(数据库和驱动)是否出现了问题,提供以下功能:
检查数据库功能(简单模式),包括:SQL 查询、表信息和可创建数据连接数等。
检查数据库功能(高级模式,支持外部驱动、Kerberos认证等)。
检查工程依赖包/类的位置。
检查数据库网络情况,包括:远程网络连通性检查和本地 hostname 设置检查。
2.3.1 安装工具
点击下载并解压获得附件:fine-tester.zip
将附件中的fine-tester.jar拷贝到任意目录下(英文目录,路径中不要有空格等特殊字符)。如下图所示:
2.3.2 启动工具
启动 cmd,进入fine-tester.jar所在目录,执行java -jar fine-tester.jar,选择需要检测的功能。如下图所示:
注:支持命令参数输入url/用户/密码,如:java -jar fine-tester.jar url=jdbc:mysql://localhost:3306/test user=root password=xxx
2.3.3 检查数据连接取数是否正常
1)输入数字编号 1,选择测试数据库功能(简单模式)后,根据提示输入数据库驱动代号、URL、用户名、数据库密码等。如下图所示:
注:若自检工具 fine-tester.jar 所在目录中无数据库驱动,需要手动输入数据库驱动的文件路径。
2)选择「SQL 查询和取数耗时」功能,输入需要查询的 SQL 语句。
若输入 SQL 语句后,出现「SQL查询耗时」,则表明小工具连接成功。若中途出现报错,表明除 BI 外的数据库连接环境有问题,需要检查数据库和数据库驱动。
连接成功后,可以通过「创建连接耗时」和「SQL查询耗时」这两个时间对当前数据连接进行排查。如果是创建连接耗时过长,一般是网络通信问题,如果是 SQL 查询耗时较长就需要优化 SQL。如下图所示:
2.3.4 检查工程依赖包的位置
启动工具后,输入数字编号 3 进入「测试 java 类/包」模式,根据提示输入信息后,对工程依赖包的位置进行排查。如下图所示:
2.4 检查内置JDBC驱动版本
FineBI 包含了很多的内置驱动,这些驱动对应的 JDK 版本为 JDK1.8 。在使用过程中,必须确保驱动与 JDK 版本的一致性。
若使用内置的驱动,则环境 JDK 需为 1.8 版本;若不想更换环境的 JDK 版本,则需要去工程路径%FineBI%/webapps/webroot/WEB-INF/lib下,替换与环境 JDK 一致的驱动版本。
内置驱动和匹配 JDK 版本如下表所示:
数据库 | 驱动 | JDK |
---|---|---|
SQL Server | sqljdbc42.jar | JDK 1.8 且小版本需在 JDK8u102 以上 |
DB2 | db2jcc4.jar、db2jcc_license_cu.jar | |
H2 | h2-1.4.192.jar | |
Informix | ifxjdbc.jar | |
Sybase | sybase.jar | |
MySQL | mysql-connector-java-5.1.6-bin.jar | |
Oracle | ojdbc14.jar |
如环境 JDK 版本为 1.7 ,想要连接 SQL Server 数据库,但是版本与内置驱动不匹配,需将 SQL Server 的驱动 sqljdbc41.jar 拷贝至上述目录,并删除 sqljdbc42.jar 。
3. 数据连接数量达到注册lic限制
问题描述:
1)用户新增数据连接时报错「当前数据连接数量已达到注册lic限制(x个),无法新增」。如下图所示:
2)管理员进入数据连接管理页面时,报错「当前数据连接数量已超过注册lic限制(x个),所有数据连接不可用,请删除多余的数据连接」。如下图所示:
3)资源迁移时,报错“当前数据连接数量已达到注册lic限制(x个),无法导入”
原因分析:
工程注册时,会对数据连接数进行限制。若达到限制值,则会出现报错或异常状态。
超级管理员登录数据决策系统,在当前页下访问http://IP:端口/webroot/decision/v10/register/info/license,即可查看注册时的限制值。
若数据连接数达到限制值,则将无法添加数据连接,新添加的数据连接不显示。
解决方案 1:删除系统中多余的数据连接,不让数据连接的数量超过注册 lic 的限制,即可新增数据连接。
解决方案 2:如果用户实在需要超过限制的数据连接,可以重新注册,提高数据连接数量的限制。详情请参见:本地机器信息认证
4. 数据连接异常消失
问题描述:
1)数据连接异常消失:如重启消失,注册后消失,突然消失等。
2)新建/更新数据连接后,保存异常,保存不上等。
4.1 检查是否达到注册限制
原因分析:
工程注册时,会对数据连接数进行限制。若达到限制值,则可能会导致系统中超限的数据连接消失。
排查步骤:
超级管理员登录数据决策系统,在当前页下访问http://IP:端口/webroot/decision/v10/register/info/license,即可查看注册时的限制值。
若数据连接数达到限制值,则将无法添加数据连接,新添加的数据连接不显示。
解决方案:
1)删除系统中已有的无用的数据连接,即可新增数据连接。
2)联系帆软销售增购数据连接数量。
4.2 检查外接数据库是否共用
原因分析:
多个工程共用同一个外接数据库时,可能会导致A工程中的配置被B工程覆盖,从而引起数据连接异常消失的情况。
排查步骤:
检查是否存在其他工程使用同一个外接数据库。
解决方案:
若确实共用,请先将当前外接数据库备份。
将其中一个工程的外接数据库进行迁移,详情请参见:配置外接数据库
5. 未加载到驱动
问题描述:
新建数据连接时,点击「测试连接」,报错未加载到驱动
原因分析:
工程中不存在该数据连接所使用的驱动器。
解决方案:
对于外网用户,可直接通过提示界面中的超链,跳转到对应驱动下载的帮助文档。
对于内网用户,请根据您的数据库和驱动类型,自行选择对应文档,下载并放置驱动:数据连接
驱动安装完毕后,重新尝试连接即可。
6. NoClassFoundException
问题描述:
工程日志中存在报错信息「NoClassFoundException」
排查思路:
工程中不存在该数据连接所使用的驱动器,或者驱动有问题
7. NoClassDefFoundError
问题描述:
工程日志中存在报错信息「NoClassDefFoundError」
排查思路:
工程下可能存在冲突的驱动包。
8. Cross DataBase Error Please check!No database selected
问题描述:
数据连接取数正常,但左右合并时报错:No database selected
原因分析:
FineBI6.0.15以下版本,数据连接URL缺少数据库表空间名称,即使可以正常保存数据连接,但会造成该报错
解决方案:
1)建议升级FineBI工程至6.0.15及以上版本,可彻底解决该问题
2)如无法升级FineBI,请手动修改相关数据连接的URL,加上数据库表空间名称。