一、概述
1
版本。
報表伺服器版本 | 功能變更 |
---|---|
10.0.11 | - |
10.0.18 | 遷移外接資料庫,且不勾選【遷移資料至要啟用的資料庫】時,自動檢查新老資料庫對應工程版本是否一緻 |
2
功能簡介。
報表系統配置外接資料庫後,遇到叢集環境或資料量較大情況時,可保證報表系統的穩定性。
使用者可在【初始化時】配置外接資料庫或在【平台中】配置 MySQL 8 版本的外接資料庫。
注:若配置了外接資料庫,請勿輕易修改外接資料庫的帳號和密碼,否則會導緻工程啟動失敗。
如需修改,請參照:修改外接資料庫帳號密碼。
二、資料庫配置
1
資料庫版本。
外接資料庫支援的型別及版本如下表所示。
資料庫型別 | 報表伺服器版本 | 支援資料庫版本 |
---|---|---|
MySQL8 | 10.0.11 | 8.0.11,8.0.16,8.0.20 |
2
硬體配置。
配置型別 | 最低配置 | 推薦配置 |
---|---|---|
記憶體 | 1GB | 2GB |
CPU | 4核 | 8核 |
網速 | 50Mbps | 100Mbps |
佔用空間 | 1GB | 2GB |
磁盤讀寫速度 | 50MB/s | 100MB/s |
注1:佔用空間需要結合使用度進行調整,可以根據webapps/webroot/WEB-INF/embed/finedb資料夾大小配置,並根據實際大小預估未來使用大小,增大1~2倍。
注2:推薦記憶體為預留給工程配置庫的記憶體。
注3:外接資料庫盡量和報表工程在同一網段,避免網路波動等問題。
3
建立資料庫。
建立一個資料庫,用於儲存平台相關資料。
標準建庫語句:【CREATE DATABASE `finedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin】。
推薦設定資料庫預設字元集為 utf8 ,預設排序規則為 utf8_bin。如下圖所示。
資料庫名:只允許包含數字、字母、底線和「.」。
字元集:1)平台外接 MySQL 資料庫時,需要設定字元集排序規則(大小寫敏感);2)推薦使用 utf8 – UTF-8 Unicode 編碼。
排序規則:MySQL 中存在多種格式的 utf8 編碼的排序規則,其中最常見的兩種為:1)utf8_bin(推薦):將字串中的每一個字元用二進制資料儲存,區分大小寫(範例:Alex 和 alex 被認為是兩個不同的值);2)utf8_general_ci:ci 為 case insensitive 的縮寫,即大小寫不敏感,為 utf8 預設編碼(範例:Alex 和 alex 被認為是相同的值)。
注:不同 FineReport 工程,不可共用同一個外接資料庫,否則資料可能會出現錯亂。
4
更換驅動。
FineReport 10.0 內建了 MySQL5 版本的驅動,如使用 MySQL8 版本的外接資料庫,需要手動更換驅動。
關閉報表工程。
下載對應版本的 MySQL8.0 驅動,聯集傳至工程【webapps\webroot\WEB-INF\lib】目錄下。
删除工程【webapps\webroot\WEB-INF\lib】目錄下的【mysql-connector-java-5.1.39-bin.jar。
重啓報表工程。
三、方法一:初始化時配置外接資料庫
本方法適用於第一次登入數據決策系統時配置外接資料庫。
1
進入初始化介面。使用者可在第一次進入平台時配置外接資料庫,如下圖所示。
2
配置外接資料庫。
點選【配置資料庫】後,進入到外接資料庫配置介面,選擇資料庫型別為 MySQL,輸入實際資料庫相應的資訊即可。如下圖所示。
各設定項說明如下表所示。
設定項 | 說明 |
---|---|
資料庫型別 | 選擇 MySQL |
驅動 | 手動修改爲com.mysql.cj.jdbc.Driver 請確定已按照第二章第4節更換驅動,且工程中不存在其他版本的 MySQL 驅動 |
資料庫名稱 | 第二章第3節建立的資料庫名稱 禁止與其他工程共用資料庫,建議建立資料庫 資料庫名稱只允許包含數字、字母、底線和「.」 |
帳號/主機/密碼/埠 | 根據本地資料庫實際情況填寫 主機名稱只允許包含數字、字母、底線、「-」和「.」 使用者需要具備 create、delete、alter、update、select、insert 權限 |
資料庫連結URL | 手動修改,格式如下,其中IP:埠號/資料庫名稱需要自行調整: jdbc:mysql://IP:埠號/資料庫名稱?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
3
配置成功。
等待一段時間,提示【已成功啟用新資料庫】。如下圖所示。
注:請勿在遷移程式中重新整理頁面
四、方法二:平台中配置外接資料庫
本方法適用於進入數據決策系統後,第一次配置外接資料庫。
1
進入平台。
管理者登入數據決策系統,點選【管理系統】→【系統管理】→【標準】→【外接資料庫】→【待配置】,如下圖所示。
2
配置外接資料庫。
輸入實際資料庫相應的資訊,配置外接資料庫。如下圖所示。
各設定項說明如下表所示。
設定項 | 說明 |
---|---|
資料庫型別 | 選擇 MySQL |
驅動 | 手動修改爲com.mysql.cj.jdbc.Driver 請確定已按照第二章第4節更換驅動,且工程中不存在其他版本的 MySQL 驅動 |
資料庫名稱 | 第二章第3節建立的資料庫名稱 禁止與其他工程共用資料庫,建議建立資料庫 資料庫名稱只允許包含數字、字母、底線和「.」 |
帳號/主機/密碼/埠 | 根據本地資料庫實際情況填寫 主機名稱只允許包含數字、字母、底線、「-」和「.」 使用者需要具備 create、delete、alter、update、select、insert 權限 |
資料庫連結URL | 手動修改,格式如下,其中IP:埠號/資料庫名稱需要自行調整: jdbc:mysql://IP:埠號/資料庫名稱?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
3
配置成功。
等待一段時間,會跳出彈窗提示:已成功啟用目標資料庫,點選【確定】即可。如下圖所示。
注1:請勿在遷移程式中重新整理頁面。
注2:資料庫配置成功後無需重啓。
五、方法三:平台二次遷移資料庫
本方法適用於系統已配置外接資料庫後,遷移至新的外接資料庫。
1
進入平台。
管理者登入數據決策系統,點選【管理系統】→【系統管理】→【標準】→【外接資料庫】→【已配置】,如圖1所示。
2
配置外接資料庫。
輸入實際資料庫相應的資訊,配置外接資料庫。如下圖所示。
各設定項說明如下表所示。
【遷移資料至要啟用的資料庫】按鈕說明:1)勾選【遷移資料至要啟用的資料庫】:切換資料庫時,原外接資料庫的資料會匯入到新資料庫,工程下不生成曆史資料備份檔案。若新資料庫中已存在平台資料,匯入資料前將清空原有平台資料。提示如圖2所示;2)不勾選【遷移資料至要啟用的資料庫】:若新外接資料庫為空,提示必須將當前資料遷移到目標資料庫。若新外接資料庫不為空,遷移前將自動備份原資料庫的配置資訊,在【webapps\webroot\WEB-INF\config】目錄下生成【db.properties.bak】檔案。如圖3所示。
10.0.18 及之後版本的報表工程,會自動檢查目標資料庫中資料對應的 JAR 包版本和當前工程的 JAR 包版本是否一緻。若不一緻,則跳出提示:【無法啟用!啟用新資料庫需要的工程版本:XXX。當前工程版本:XXX。請確定工程版本一緻!】;若 JAR 包版本一緻,則直接啟用新資料庫,遷移成功後,提示如圖4所示。
設定項 | 說明 |
---|---|
資料庫型別 | 選擇 MySQL |
驅動 | 手動修改爲com.mysql.cj.jdbc.Driver 請確定已按照第二章第4節更換驅動,且工程中不存在其他版本的 MySQL 驅動 |
資料庫名稱 | 第二章第3節建立的資料庫名稱 禁止與其他工程共用資料庫,建議建立資料庫 資料庫名稱只允許包含數字、字母、底線和「.」 |
帳號/主機/密碼/埠 | 根據本地資料庫實際情況填寫 主機名稱只允許包含數字、字母、底線、「-」和「.」 使用者需要具備 create、delete、alter、update、select、insert 權限 |
數據庫連接URL | 手動修改,格式如下,其中IP:埠號/資料庫名稱需要自行調整: jdbc:mysql://IP:埠號/資料庫名稱?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
3
遷移成功。
等待一段時間,會跳出彈窗提示:已成功切換至目標資料庫!新舊資料庫若存在資料差異可能影響系統運作,建議重啓工程以確定正常使用。
點選【確定】後,重啓報表工程,方遷移成功。如圖1、2所示。
注:請勿在遷移程式中重新整理頁面。
六、注意事項
如果一開始資料庫排序規則沒有設定 utf8_bin ,但已經遷移過去了,那麼有兩張表 fine_conf_entity、 fine_conf_classname 需要修改為 utf8_bin,下面以 fine_conf_entity 為例。
查詢當前的字元集排序規則:
show full columns from fine_conf_entit
設定字元集排序規則為 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_bi
查看是否修改成功 :
show full columns from fine_conf_entit
用上面相同的步驟將【 fine_conf_entity】 更換為 【fine_conf_classname 】表,設定如下圖所示。