配置MySQL8外接資料庫

1. 概述

1.1 版本

FineBI伺服器版本
功能變更
6.0-

1.2 功能簡介

BI 系統配置外接資料庫後,遇到叢集環境或資料量較大情況時,可保證 BI 系統的穩定性。

使用者可在「初始化時」配置外接資料庫或在「平台中」配置 MySQL8 版本的外接資料庫。

注:若配置了外接資料庫,請勿輕易修改外接資料庫的帳號和密碼,否則會導致工程啟動失敗。

       如需修改,請參照:修改外接資料庫帳號密碼 。

2. 資料庫配置

2.1 資料庫版本

外接資料庫支援的類型及版本如下表所示:

資料庫類型支援資料庫版本
MySQL8

8.0.11、8.0.16、8.0.20、8.0.21、8.2

2.2 硬體配置

配置類型
最低配置推薦配置
記憶體1GB2GB
CPU4核8核
網速
50Mbps100Mbps
finedb佔用空間1GB2GB
伺服器磁碟空間100GB200GB
磁碟讀寫速度50MB/s100MB/s

注1:佔用空間需要結合使用度進行調整,可以根據webapps/webroot/WEB-INF/embed/finedb資料夾大小配置,並根據實際大小預估未來使用大小,增大1~2倍。

注2:推薦記憶體為預留給工程配置庫的記憶體。

注3:外接資料庫儘量和 BI 工程在同一網段,避免網路波動等問題。

2.3 建立資料庫

注:不同 FineBI 工程,不可共用同一個外接資料庫,否則資料可能會出現錯亂。

建立一個資料庫,用於儲存平台相關資料。

標準建庫語句:CREATE DATABASE `finedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

推薦設定資料庫預設字元集為 utf8 ,預設排序規則為 utf8_bin。如下圖所示:

注1:建議設定資料庫的字元集排序規則為 utf8_bin(大小寫敏感),防止因大小寫不敏感出現權限異常情況,詳情參見本文 4.2 節。

注2:MySQL 8.0.28 及之後版本,推薦設定資料庫預設字元集為 utf8mb3,預設排序規則為 utf8mb3_bin 。

資料庫名:

只允許包含數字、字母、底線和「.」

字元集:

1)平台外接 MySQL 資料庫時,需要設定字元集排序規則(大小寫敏感)。

2)推薦使用 utf8 – UTF-8 Unicode 編碼。

3)不支援 utf8mb4 編碼

排序規則:

MySQL 中存在多種格式的 utf8 編碼的排序規則,其中最常見的兩種如下表所示:

1)utf8_bin(推薦)

定義:將字串中的每一個字元用二進制資料儲存,區分大小寫

範例:Alex 和 alex 被認為是兩個不同的值

1)utf8_general_ci

定義:ci 為 case insensitive 的縮寫,即大小寫不敏感,為 utf8 預設編碼

範例:Alex 和 alex 被認為是相同的值

3. 配置外接資料庫

3.1 外接資料庫配置入口

外接資料庫的配置入口,有三種形式:

1)超級管理者第一次登入數據決策系統時,即可為系統配置外接資料庫。如下圖所示:

2)對於使用內建資料庫的系統,管理者登入數據決策系統,點選「管理系統>系統管理>標準>外接資料庫>待配置」,可為系統第一次配置外接資料庫。如下圖所示:

3)對於已啟動外接資料庫的系統,管理者登入數據決策系統,點選「管理系統>系統管理>標準>外接資料庫>已配置」,可為系統遷移至新的外接資料庫。如下圖所示:

3.2 配置外接資料庫

進入到外接資料庫配置介面後,選擇資料庫類型,輸入實際資料庫相應的資訊即可。如下圖所示:

3.2.1 設定項

各設定項說明如下表所示:

設定項說明
資料庫類型選擇 MySQL
驅動

手動修改為com.mysql.cj.jdbc.Driver

資料庫名稱

2.3 節建立的資料庫名稱

禁止與其他工程共用資料庫,建議建立資料庫

資料庫名稱只允許包含數字、字母、底線和「.」

帳號/主機/密碼/埠根據本地資料庫實際情況填寫

主機名稱只允許包含數字、字母、底線、「-」和「.」

使用者需要具備 create、delete、alter、update、select、insert、index 權限

資料庫連結URL

手動修改,格式如下,其中IP:埠號/資料庫名稱需要自行調整:

jdbc:mysql://IP:埠號/資料庫名稱?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL

3.2.2 遷移資料至要啟動的資料庫

使用者可根據自身需求選擇是否勾選「遷移資料至要啟動的資料庫」按鈕。具體如下:

1)勾選「遷移資料至要啟動的資料庫」,新外接資料庫為空

點選「啟動新資料庫」後,會將原 finedb 資料庫的平台資料遷移到新外接資料庫中。

2)勾選「遷移資料至要啟動的資料庫」,新外接資料庫中已存在平台資料

點選「啟動新資料庫」後,跳出提示「該資料庫已存在平台資料,匯入資料前將清空原有平台資料,確認連結該資料庫?」。

點選「確定」將清空原有平台資料,將原 finedb 資料庫的平台資料遷移到新外接資料庫中。

3)不勾選「遷移資料至要啟動的資料庫」,新外接資料庫為空

點選「啟動新資料庫」後,跳出提示「目標資料庫為新資料庫,將當前資料遷移至目標資料庫後方能使用」。

點選「確定」,將原 finedb 資料庫的平台資料遷移到新外接資料庫中。


4)不勾選「遷移資料至要啟動的資料庫」,新外接資料庫中已存在平台資料

點選「啟動新資料庫」後,BI 工程會自動檢查目標資料庫中資料對應的 JAR 包版本和當前工程的 JAR 包版本是否一致。

  • 若不一致,則跳出提示「無法啟動!啟動新資料庫需要的工程版本:XXX。當前工程版本:XXX。請確定工程版本一致!」。無法進行外接資料庫配置。

  • 若 JAR 包版本一致,且原 finedb 資料庫為內建資料庫,則直接啟動新外接資料庫。

  • 若 JAR 包版本一致,且原 finedb 資料庫為外接資料庫,遷移前將自動備份原資料庫的配置資訊,在webapps\webroot\WEB-INF\config目錄下生成db.properties.bak檔案,並直接啟動新外接資料庫。如下圖所示:

3.3 遷移成功

等待一段時間,遷移成功後,根據遷移時的情況,可能會跳出不同的彈窗提示。

1)新外接資料庫,使用了原 finedb 資料庫的資料。

則提示「已成功啟動目標資料庫」。點選「確定」即可,遷移成功。如下圖所示:

2)新外接資料庫,使用了該資料庫中原有的資料,且原 finedb 資料庫為內建資料庫。

則提示「已成功切換至目標資料庫!新舊資料庫若存在資料差異可能影響系統運作,建議重啟工程以確定正常使用」。

點選「確定」後,重啟報表工程,方遷移成功。如下圖所示:

3)新外接資料庫,使用了該資料庫中原有的資料,且原 finedb 資料庫為外接資料庫。

則跳出兩個提示:

  • 已成功切換至目標資料庫!新舊資料庫若存在資料差異可能影響系統運作,建議重啟工程以確定正常使用

  • 原資料庫配置已備份至config資料夾下,如有需要可以使用備份檔案還原資料庫配置

點選「確定」後,重啟報表工程,方遷移成功。如下圖所示:

3.4 刪除內建庫資料連結

「內建 FineDB 資料庫」為HSQL資料庫,使用時會建立記憶體資料庫,資料量大時會佔用大量記憶體。

因此配置完外接資料庫後,請檢查資料連結中是否存在「內建 FineDB 資料庫」的資料連結。

若存在相關資料連結,請即時刪除,否則會持續佔用伺服器記憶體。

4. 注意事項

4.1 修改排序規則

如果一開始資料庫排序規則沒有設定 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_classname、fine_authority 更換為 utf8_bin,設定如下圖所示:

4.2 資料連結權限異常

問題描述:

FineBI 系統配置外接資料庫後,為成員配置了 SQL 資料集的管理權限,以及相應資料連結(名稱為英文小寫,如 test)的管理權限。

但成員登入查看 SQL 資料集時,未出現「修改SQL 資料集」按鈕,即資料連結的管理權限配置未生效,如下圖所示:

原因分析:

資料連結的管理權限配置儲存在 fine_authority 表中,該表的排序規則為非 utf8 編碼,不區分大小寫,將資料連結名稱 test 記錄為 TEST 。

因此,FineBI 系統基於 fine_authority 表查詢資料連結(test) 的權限配置記錄時,查詢不到,導致該資料連結配置失效。

解決方案:

參考本文 4.1 節將 fine_conf_entity、 fine_conf_classname、fine_authority 的字元集排序規則設定為 utf8_bin,使其區分大小寫,則資料連結管理權限配置可正常生效。


附件列表


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

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙