當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

外接数据库配置常见问题

1. 概述

本文列舉 配置外接資料庫 时,可能出現的報錯和解決方案。

2. 資料庫遷移後升級 JAR ,無法開啟平台

問題描述:

使用者已配置外接資料庫,升級 JAR 後,無法開啟平台,報錯:TASKNAMECALCCULATEATEONCE 标识符和 USERALIAS 标识符无效

原因分析:

進行遷移使用者沒有 alter 權限,無法生成欄位。

解决方案:

給遷移的使用者授權 alter 權限。

3. 使用者 root 登入失敗 ClientConnectionId:XXX

問題現象:

配置外接資料庫時,出現報錯:用户 root 登入失敗,ClientConnectionId:e484a26e-8f2b-4e28-b9e4-32798ec032b7 ,以及外置資料無法連結配置等報錯

原因分析:

報錯是由於 FineReport 外接資料庫的配置錯誤,需要刪除 FineReport 的外接資料庫的配置資訊,重新配置外接資料庫。

解决方案:

删除FineBI/webapps/webroot/WEB-INF/config下的後綴名為 db.properties 檔案,重新對 FineReport 外接資料庫進行配置。

4. 遷移資料庫後,回退JAR包平台登入失敗

問題描述:

報表工程已遷移至外接資料庫,升級 JAR 後,又遷移至另一外接資料庫,回退 JAR,發現平台登入失敗,顯示資料庫連結異常,如下圖所示:

原因分析:

 JAR 回退,但儲存外接資料庫配置的 db.properties 檔案沒有跟隨其變化。

解决方案:

檢查 %FineBI_HOME%/webapps/webroot/WEB-INF/config 路徑下 db.properties 檔案,手動修改相關配置。

舉例:一工程遷移到 MySQL8 資料庫,升級 JAR 後 重新遷移到 MySQL5.7.28 資料庫,回退工程,啟動失敗,前臺顯示連結不上資料庫,將db. properties中方言的 8 改為 5 即可。

修改前:

hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL8Dialect

修改后:

hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL5Dialect

5. 叢集環境下 FineDB 遷移失敗

問題描述:

叢集環境下遷移 FineDB 資料庫,使用平台功能遷移,出現如下圖所示的介面後,點選登入會反覆重新整理此介面。


原因分析:

叢集環境下的遷移操作方法出錯。

解决方案:

叢集遷移需要把其他節點關閉,只啟動一個節點進行遷移。

遷移成功後,把 db.properties 檔案複製到沒遷移的節點,然後關閉叢集所有節點再啟動。


6. CAS單點環境下 FineDB 遷移失敗

問題現象:

1)遷移外接資料庫時一直卡在資料匯入階段。

2)後臺存在報錯:database is locked。

3)工程做了 CAS 單點,報錯裏有 CAS 相關的日誌。

原因分析:

遷移時有其他使用者存取了平台,導致部分表被鎖死,無法遷移。

解决方案:

先將 CAS 單點撤掉,保證沒有使用者存取平台。

外接資料庫遷移成功之後,再將 CAS 單點加上。

7. 排程管理任務導致遷移失敗

問題現象:

遷移外接資料庫失敗,報錯:

Null value was assigned to a property [class com.fr.scheduler.quartz.entity.QuartzFiredTriggers.isNonconcurrent] of primitive type setter of com.fr.scheduler.quartz.entity.QuartzFiredTriggers.isNonconcurrent

原因分析:

排程管理執行過程中,FineDB 中的 QRTZ_FIRED_TRIGGERS 表會臨時記錄排程管理資料,任務執行成功後,資料自動刪除。

當排程管理任務執行了一半,資料已生成時,進行外接資料庫遷移操作,暫停排程管理任務失敗,導致遷移失敗。

解决方案:

按照報錯資訊,清空相關表,例如清空 QRTZ_FIRED_TRIGGERS 表資料。

8. MySQL could not execute statement

問題現象

配置 MySQL 資料庫,匯入資料失敗,頁面前端報錯:could not execute statement

查看%FineBI%/logs/fanruan.log,報錯為:Table 'finedb.QRTZ_PAUSED_TRIGGER_GRPS' doesn't exist,如下圖所示:

原因分析:

查看 MySQL 的資料引擎,登入MySQL資料庫,在mysql>提示符下輸入show engines 命令查看,顯示為 MyISAM 資料引擎,該資料引擎為 MySQL 預設引擎,不支援交易,也不支援外鍵。且 FineBI 不支援 MyISAM,後續不考慮相容,因此需要為MySQL切換資料引擎為InnoDB

解决方案:

1)在 MySQL 資料庫配置檔案 my.cnf 中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,儲存;

2)重啓 MySQL 伺服器:mysqladmin -u root -p shutdown或者service mysqld restart

3)登入 MySQL 資料庫,在mysql>提示符下輸入show engines命令。如果出現 InnoDB |DEFAULT,則表示設定 InnoDB 為預設引擎成功。

9. MySQL could not execute batch

問題描述:

配置外接資料庫 MySQL 報錯,報錯日誌如下所示:

16:59:48 Thread-45 ERROR [standard] could not execute batch
com.fr.third.org.hibernate.exception.GenericJDBCException: could not execute batch

......Caused by: java.sql.SQLException:Incorrect string value: 'xE6xA8xA1xE6x9DxBF...' for column 'id' at row 1

原因分析:

檢查確定是有權限的

Incorrect string value: 'xE6xA8xA1xE6x9DxBF...' for column 'id' at row 1 

是資料庫編碼的原因。

解决方案:

查看客戶建 FineDB 資料庫的語句:create database finedb

發現沒有加約束條件,將語句改為:create database finedb DEFAULT CHARSET utf8 COLLATE utf8_bin

匯入成功。

10. MySQL migrate table com.fr.config.entity.Entity failed

問題現象:

配置 MySQL 資料庫,匯入資料的時候報錯:java.lang.Exception: migrate table com.fr.config.entity.Entity failed

解决方案:

1)修改 MySQL 的my.ini文件 ,字元集改為character-set-server=utf8,如下圖所示:

1588822834609919.png

11. MySQL The table 'fine_conf_entity' is full

問題現象:

配置 MySQL 資料庫,匯入資料的時候報錯:java.lang.Exception: migrate table com.fr.config.entity.Entity failed

查看%FineBI%/logs/fanruan.log,報錯:The table 'fine_conf_entity'  is full,如下圖所示:

解决方案:

進入 MySQL 的配置檔案/etc/my.cnf,在[mysqld]下新增/修改兩行:

tmp_table_size = 256M
max_heap_table_size = 256M

系統預設是 16M ,修改完後重啓 MySQL 。

12. 資料庫連結失敗 wait millis 10000,active0,maxActive 50

問題現象:

配置 SQL Server 和 Oracle等含有「模式」的資料庫時,出現報錯:数据库连接失败,wait millis 10000,active0,maxActive 50

如下圖所示:

排查思路:

1)應答資料庫名稱,主機位址,埠帳號和密碼是否正確。

2)應答此伺服器此埠是否開放給其他電腦,可在其他地方進行資料庫連結測試。

3)更改模式,使其與資料庫帳號一樣,如下圖所示:

13. Oracle could not execute statement

問題現象:

配置外接資料庫 Oracle 報錯oracle could not execute statement或報錯Oracle could not execute batch

原因分析:

資料庫模式有誤。

解决方案:

模式填thin就會報錯,將改成帳號即可。

14. Oracle migrate table com.fr.config.entity.Entity failed

問題現象:

配置外接資料庫 Oracle 報錯java.lang.Exception: migrate table com.fr.config.entity.Entity failed

日誌報錯:Caused by: java.sql.BatchUpdateException: ORA-01654: 索引 BI_REPORT_RO.SYS_C0011297 無法透過 128 (在表空间 BI_REPORT_RO 中) 擴展

資料表建立成功,但是匯入資料失敗。

原因分析:

資料庫表空間不足。

解决方案:

預設表空間資料檔案大小與DATA BLOCKS的大小有關,預設最大為32GB。

使用者可透過如下SQL增加表空間資料檔案:

alter tablespace USERS add datafile 'D:appAdministratororadataorclUSERS02.DBF' size 10240M;

15. Oracle19c 資料遷移卡住

問題現象:

Oracle19c資料庫,資料連結成功,但是在配置外接資料庫時一直卡在正在連結狀態。

原因分析:

使用者環境禁用了 PUT、DELETE請求,導致平台一些請求不正常。

解决方案:

使用者可透過安裝「PUT、DELETE請求轉成POST」插件,將 PUT、DELETE 請求轉成 POST 請求。

詳情請參見:PUT、DELETE請求轉成POST插件

附件列表


主題: 管理员指南
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!