外接資料庫配置常見問題

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. Table 'finedb.QRTZ_PAUSED_TRIGGER_GRPS' doesn't exist

問題現象:

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

接着查看%FineBI%/logs/fanruan.log,報錯為:Table 'finedb.QRTZ_PAUSED_TRIGGER_GRPS' doesn't exist

排查步驟一:

MySQL資料庫的編碼不正確,字元集應當為 utf8 ,排序規則為 utf8_bin。

修改資料庫編碼,使用utf8編碼,不支援 utf8mb4 編碼

排查步驟二:

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. Incorrect string value: 'xxx' for column 'id' at row 1

問題描述:

配置外接資料庫 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 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 。

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

問題現象:

配置 SQL Server 和 Oracle等含有「模式」的資料庫時,出現報錯:資料庫連結失敗,wait millis 10000,active0,maxActive 50

如下圖所示:

排查思路:

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

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

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

12. ORA-01654: 索引無法透過128(在表空間xxx中)擴展

問題現象:

配置外接資料庫 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;

13. Oracle19c 資料遷移卡住

問題現象:

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

原因分析:

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

解決方案:

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

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


附件列表


主题: 管理系統
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙