1. 概述
1.1 版本
工程版本 | 功能變更 |
---|---|
FineReport11.0 FineBI6.0 | - |
注:本文不適用於FineBI6.1,如有相關場景,請聯絡帆軟技術支援協助。
1.2 應用場景
相比於普通單機工程,容器化部署的工程,升級和維護成本較低。
本文方案,幫助使用者將原有非容器化部署的單機工程,遷移為容器化部署的單機工程。
注:全文以FineBI作為示範。FineReport遷移步驟基本一致,僅需要兩個點:
1)copy檔案時,FineReport和FineBI需要copy的檔案不完全相同,注意文檔中的表格即可。
2)使用維運平台啟停容器時,FineReport關閉的是fr組件,FineBI關閉的是bi6組件。
1.3 步驟簡介
序號 | 說明 | |
---|---|---|
1 瞭解遷移步驟 | 請務必在執行遷移前,完整閱讀本節步驟簡介,瞭解每個步驟的作用 請務必先提前確認相關相容問題,再進行工程遷移:遷移前相容須知 | |
2 新容器化工程準備 | 2.1 部署維運平台 | 容器化部署FineReport/FineBI,需要透過FineOps維運平台前端實現 因此使用者需要先部署一個FineOps維運平台 |
2.2 部署新工程 | 遷移專案,是從原有非容器化工程,遷移到新的容器化工程 因此使用者需要先透過FineOps維運平台部署一個新的容器化單機工程 | |
2.3 確認新工程版本 | 由於容器化部署的工程,一般為帆軟發佈的較新版本 因此使用者需要先確認新工程版本,確定後續升級舊工程到同一版本 | |
2.4 關閉新工程 | 遷移時,需要將老工程的一些檔案copy到新工程中,這個操作需要在新工程停止運作的狀態下進行 因此使用者要透過FineOps維運平台前端快速關閉新工程 | |
2.5 備份新工程config資料夾 | 容器化部署新工程時,會自動生成工程部署所用語句,後續營維運護時可能會需要使用/尋找,在遷移程式中該語句所在檔案會被改寫 因此使用者需要提前異地備份該檔案所在config資料夾 | |
3 原非容器化工程準備 | 3.1 備份原工程 | 在進行工程遷移前,為避免遷移失敗,導致工程檔案丟失無法回退等問題,請務必對原工程進行備份後再進行後續操作 |
3.2 升級原工程 | 工程遷移必須基於同版本的工程進行 因此需要將原非容器化部署的工程升級到新工程同一版本,方可進行遷移 | |
3.3 確認原工程配置外接資料庫 | 容器化專案必須配置外接庫,所以要確定老工程的配置庫已外接,否則無法遷移 | |
3.4 備份配置庫 3.5 對接備份庫 | 為了防止遷移程式中對finedb配置進行寫入修改,導致老工程無法回退 因此必須要將老工程的配置庫進行備份,並使老工程連結備份庫 | |
3.6 確認原工程已安裝插件 | 遷移時,需要將原工程的插件改寫新工程,而維運平台對接專案時,部分功能對專案的插件有要求 因此需要先確認原工程已安裝符合版本要求的插件 | |
3.7 關閉原工程 | 遷移時,需要將原工程的一些檔案copy到新工程中,這個操作需要在原工程停止運作的狀態下進行 因此使用者需要手動關閉原工程 | |
4 copy檔案 | 本節即為正式遷移操作 將原非容器化工程的必要檔案,copy到新容器化工程中 | |
5 啟動原工程 | 5.1 啟動原工程 | 啟動原有工程 |
5.2 對接原配置庫 | 由於此時新老工程均使用了同一個finedb資料庫,而每個finedb資料庫只能對接一個工程,否則可能導致使用異常 因此使用者需要將原工程的外接資料庫修改為原配置庫 | |
6 啟動新工程 | 6.1 啟動新工程 | 接下來的操作需要在新工程平台上執行 使用者要透過FineOps維運平台前端快速啟動新工程 |
6.2 重新對接維運平台 | 由於copy檔案,導致工程唯一ID發生了變化,此時維運平台對工程的狀態監視可能存在異常 因此使用者需要重新對維運平台和新工程進行對接 | |
6.3 遷移新工程配置庫 | 由於此時新工程使用的配置庫,是原工程的備份庫,可能並非容器化部署的資料庫組件 因此使用者需要將新工程的外接資料庫遷移到容器化部署的MySQL資料庫 | |
6.4 重新抽取資料 | 僅FineBI工程需要執行本節操作 工程遷移後,FineBI一般需要重新進行資料抽取,業務使用者方可正常使用 因此使用者需要在抽取前確認並修改資料儲存路徑,再執行資料抽取 | |
6.5 新工程註冊 | 支援全新註冊,或遷移老工程授權到新工程 |
2. 新容器化工程準備
注:建議部署新工程、老工程、維運平台所用伺服器內網互通,會大幅降低遷移難度。
2.1 部署維運平台
詳情請參見:部署維運平台
2.2 部署新工程
詳情請參見:部署新專案
注意事項1:遷移時,需要將老工程的一些必要檔案、資源copy到新工程中,因此必須要確定新工程磁碟空間足夠大。
1)檢查原非容器化工程%Tomcat_home%\webapps\webroot資料夾的大小。假設為xG。
2)在準備新工程所在伺服器時,請根據原工程大小,適度擴展新工程所在伺服器節點剩餘磁碟空間。
建議新工程最小剩餘磁碟空間大小為 max(2x , 500) G。
注意事項2:遷移後,為了確定新老工程的存取地址一致,必須確定存取路徑名稱一致
請在「部署新專案-專案設定」環節,確認存取路徑配置。
如果老工程做了短域名/IP存取,請將存取路徑置空
如果老工程修改了存取路徑,即http://IP:port/webroot/decision中的webroot被修改為了其他詞,請將存取路徑修改為對應詞
注意事項3:遷移時,需要將老工程的一些檔案copy到新工程中,因此需要記錄下新工程存放檔案的外掛目錄位置。
請在「部署新專案-節點配置」環節,記錄下主應用節點的掛載路徑。
注意事項4:部署新工程時,會同時部署一些必要組件,建議記錄下組件的資訊,方便在後續維護程式中查看。
請在「部署新專案-部署列表」環節,記錄下MySQL、ElasticSearch組件的相關資訊。
由於組件密碼隨機生成,請務!必!修改組件的密碼,方便後續使用。
2.3 確認新工程版本
1)管理者登入FineOps維運平台,在「維運管理>專案管理」中,可點選存取新工程。
2)管理者登入新工程,點選「管理系統>註冊管理>版本資訊」,可查看新容器化工程的小版本號(精確到JAR包日期)。
2.4 關閉新工程
1)管理者登入維運平台,選擇新工程,點選「維護>組件管理」。
2)找到bi6/fr組件,點選「停止」按鈕,即可關閉新工程。
2.5 備份新工程config資料夾
1)使用終端裝置存取新容器化工程所在伺服器,進入2.2節記錄的掛載路徑/fanruanxxx/bi目錄下。
注:如果忘記了新工程的掛載路徑,可透過匯出專案部署資訊查看。
2)找到config資料夾,資料夾中存放的yaml檔案有着工程部署所用語句,請務必異地備份。
3. 原非容器化工程準備
3.1 備份原工程
詳情請參見 工程備份還原 3.1節,對工程進行備份。
3.2 升級原工程
1)獲取JAR包
付費使用者請聯絡帆軟技術支援,獲取2.3節新工程同一小版本的工程JAR包(精確到JAR包日期)。
技術支援聯絡方式:前往「服務」,選擇「線上支援」。
2)升級原工程
請參考「FineBI小版本升級 / FineReport小版本升級」文檔升級工程至指定版本。
3.3 確認配置外接庫
管理者登入原工程,點選「管理系統>系統管理>標準」,檢查外接資料庫是否已配置。
如顯示「已配置」,說明工程已配置外接配置庫,點選查看並記錄下該外接資料庫位置資訊,即可進入下一步。
如顯示「待配置」,請先為該非容器化工程配置一個外接配置庫。
請在配置時勾選「遷移資料至要啟動的資料庫」
可使用2.2節的MySQL組件作為外接配置庫。請自行新增表空間,請勿使用原有表空間!表空間要求可參考:帆軟對接MySQL配置庫
可自行準備配置庫,建議優先考慮MySQL8,請確定新老工程所在伺服器與該資料庫所在伺服器互通
3.4 備份配置庫
請使用第三方資料庫管理工具,存取老工程的配置庫。
對配置庫表空間進行備份,假設原配置庫的表空間名稱為finedb,備份表空間的名稱為finedbbak。
3.5 對接備份庫
管理者登入原工程,點選「管理系統>系統管理>標準」,點選外接資料庫「已配置」
修改資料庫名稱為備份表空間名稱
輸入資料庫使用者密碼
請勿勾選「遷移資料至要啟動的資料庫」
點選「啟動新資料庫」即可。
3.6 確認已安裝插件
管理者登入原工程,點選「管理系統>插件管理」。
1)必須確認安裝以下插件,並升級至最新:系統維運、資源調度熔斷插件。
2)建議升級其他已安裝插件至最新版本。
3.7 關閉原工程
請參考 關閉或重啟FineBI工程 / 關閉或重啟FineReport工程 文檔,關閉原非容器化部署的工程。
4. copy檔案
1)請提前檢查原非容器化部署的工程,是否配置了外掛目錄、是否配置共享檔案伺服器,確定copy到正確的檔案。
2)新容器化工程外掛檔案所在位置,為2.2節記錄的掛載路徑。如果忘記了新工程的掛載路徑,可透過匯出專案部署資訊查看。
3)將以下檔案,從原非容器化部署的工程,copy到新容器化部署的工程中:
注1:請勿直接 docker cp 整個webroot資料夾到容器,會導致功能異常。
注2:請勿直接copy整個webroot資料夾到容器化工程的外掛目錄,部分檔案不可以被改寫。
注2:請勿使用3.1節備份的檔案,而是使用工程最終的檔案進行copy操作。
FineBI需要copy的檔案
原非容器化工程目錄 | 新容器化工程外掛目錄 | 說明 | |
---|---|---|---|
%Tomcat_HOME%/logs | %BI_HOME%/fanruanxxx/bi6/tomcat_logs | 作用:Tomcat通用日誌位置 是否必須copy:使用者自行決定,Tomcat歷史存取日誌,可不copy | |
%Tomcat_HOME%/webapps/webroot/backup | %BI_HOME%/fanruanxxx/bi6/backup | 作用:工程歷史備份檔案 是否必須copy:使用者自行決定,可儲存在原始的目錄下備份,可不copy | |
%Tomcat_HOME%/webapps/webroot/bi-data | %BI_HOME%/fanruanxxx/bi6/bi-data | 作用:FineBI抽取資料 是否必須copy:使用者自行決定 如果不copy,在新工程啟動後需要全局更新,重新抽取資料 如果copy,該資料夾中檔案數量很多,copy耗時很久,請耐心等待 | |
%Tomcat_HOME%/webapps/webroot/logs | %BI_HOME%/fanruanxxx/bi6/logs | 作用:swift日誌 是否必須copy:使用者自行決定 如果不copy,會丟失工程歷史操作日誌(即logdb),「管理系統>平台日誌」功能無資料 如對歷史使用情況無要求,無需copy | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/temp_attach | %BI_HOME%/fanruanxxx/bi6/assets/temp_attach | 作用:FineBI資料表相關資訊 是否必須copy:必須copy 該資料夾中存放着工程Excel原始檔案資訊,如不copy該資料夾會導致原始Excel丟失 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/vcs | %BI_HOME%/fanruanxxx/bi6/assets/vcs | 作用:FineReport範本備份檔案 是否必須copy:使用者自行決定 如果工程未使用FineReport範本,或不需要回退歷史開發的FineReport範本,則無需copy | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/其他檔案 | %BI_HOME%/fanruanxxx/bi6/assets/其他檔案 | 作用:通用的共享持久化目錄 是否必須copy:必須copy 工程正常運作所需要的檔案,如不copy會影響工程正常使用 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/classes | %BI_HOME%/fanruanxxx/bi6/classes | 作用:工程呼叫的預設和自訂class檔案 是否必須copy:必須copy 有可能存在自訂的class檔案,如不copy會影響工程正常使用 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/config | %BI_HOME%/fanruanxxx/bi6/config | 作用:配置庫相關檔案 是否必須copy:必須copy 平台呼叫的配置庫(finedb),如不copy會影響工程正常使用 | |
找到以下兩個目錄: %Tomcat_HOME%/webapps/webroot/WEB-INF/lib %Tomcat_HOME%/webapps/webroot/WEB-INF/customLib 以下為工程自帶JAR,無需copy,除此之外的使用者自訂JAR均需copy:
| %BI_HOME%/fanruanxxx/bi6/customlib | 作用:工程客製/外部引入的JAR包 是否必須copy:必須copy,如不copy會影響範本存取 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/dpworks | %BI_HOME%/fanruanxxx/bi6/dpworks | 作用:FineDataLink任務相關的配置檔案 是否必須copy:必須copy,如不copy會影響FineDataLink任務使用 (如不存在該資料夾,說明工程沒有使用FDL相關功能,略過) | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/plugins | %BI_HOME%/fanruanxxx/bi6/plugins | 作用:插件相關檔案 是否必須copy:必須copy,如不copy會影響插件相關功能的實現。 請先刪除資料夾中原有檔案,再將老工程插件包copy進來,否則同一個插件可能共存多個版本,導致異常。 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/reportlets | %BI_HOME%/fanruanxxx/bi6/reportlets | 作用:FineReport範本存放目錄 是否必須copy:使用者自行決定 如果工程未使用FineReport範本,則無需copy | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/schedule | %BI_HOME%/fanruanxxx/bi6/schedule | 作用:排程管理生成的檔案 是否必須copy:使用者自行決定 如果不copy,定時任務掛載到決策平台的結果報表無法存取 | |
任何其他需要保留的資源檔案 | %BI_HOME%/fanruanxxx/bi6/help | 作用:外部資源檔案 是否必須copy:使用者自行決定 維運平台部署的工程,不支援直接在/掛載目錄/fanruanxxx/bi6下建立資料夾,會因為未持久化而丟失 對於老工程下,任何其他需要保留的資源檔案,可考慮存放到help資料夾下(請注意,在工程遷移成功後,相關資源引用地址,也需要自行手動更換) |
FineReport需要copy的檔案
原非容器化工程目錄 | 新容器化工程外掛目錄 | 說明 | |
---|---|---|---|
%Tomcat_HOME%/logs | %FR_HOME%/fanruanxxx/fr/tomcat_logs | 作用:Tomcat通用日誌位置 是否必須copy:使用者自行決定,Tomcat歷史存取日誌,可不copy | |
%Tomcat_HOME%/webapps/webroot/backup | %FR_HOME%/fanruanxxx/fr/backup | 作用:工程歷史備份檔案 是否必須copy:使用者自行決定,可儲存在原始的目錄下備份,可不copy | |
%Tomcat_HOME%/webapps/webroot/logs | %FR_HOME%/fanruanxxx/fr/logs | 作用:swift日誌 是否必須copy:使用者自行決定 如果不copy,會丟失工程歷史操作日誌(即logdb),「管理系統>平台日誌」功能無資料 如對歷史使用情況無要求,無需copy | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/temp_attach | %FR_HOME%/fanruanxxx/fr/assets/temp_attach | 作用:讀寫快取儲存路徑 是否必須copy:必須copy 該資料夾中存放着工程讀寫(圖片)快取,不copy可能會導致範本設定的背景圖片預覽為空 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/vcs | %FR_HOME%/fanruanxxx/fr/assets/vcs | 作用:FineReport範本備份檔案 是否必須copy:使用者自行決定 如果工程不需要回退歷史開發的FineReport範本,則無需copy | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/其他檔案 | %FR_HOME%/fanruanxxx/fr/assets/其他檔案 | 作用:通用的共享持久化目錄 是否必須copy:必須copy 工程正常運作所需要的檔案,如不copy會影響工程正常使用 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/classes | %FR_HOME%/fanruanxxx/fr/classes | 作用:工程呼叫的預設和自訂class檔案 是否必須copy:必須copy 有可能存在自訂的class檔案,如不copy會影響工程正常使用 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/config | %FR_HOME%/fanruanxxx/fr/config | 作用:配置庫相關檔案 是否必須copy:必須copy 平台呼叫的配置庫(finedb),如不copy會影響工程正常使用 | |
找到以下兩個目錄: %Tomcat_HOME%/webapps/webroot/WEB-INF/lib %Tomcat_HOME%/webapps/webroot/WEB-INF/customLib 以下為工程自帶JAR,無需copy,除此之外的使用者自訂JAR均需copy:
| %FR_HOME%/fanruanxxx/fr/customlib | 作用:工程客製/外部引入的JAR包 是否必須copy:必須copy,如不copy會影響範本存取 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/dpworks | %FR_HOME%/fanruanxxx/fr/dpworks | 作用:FineDataLink任務相關的配置檔案 是否必須copy:必須copy,如不copy會影響FineDataLink任務使用 (如不存在該資料夾,說明工程沒有使用FDL相關功能,略過) | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/plugins | %FR_HOME%/fanruanxxx/fr/plugins | 作用:插件相關檔案 是否必須copy:必須copy,如不copy會影響插件相關功能的實現。 請先刪除資料夾中原有檔案,再將老工程插件包copy進來,否則同一個插件可能共存多個版本,導致異常。 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/reportlets | %FR_HOME%/fanruanxxx/fr/reportlets | 作用:FineReport範本存放目錄 是否必須copy:必須copy,如不copy會導致工程所有範本丟失 | |
%Tomcat_HOME%/webapps/webroot/WEB-INF/schedule | %FR_HOME%/fanruanxxx/fr/schedule | 作用:排程管理生成的檔案 是否必須copy:使用者自行決定 如果不copy,定時任務掛載到決策平台的結果報表無法存取 | |
任何其他需要保留的資源檔案 | %FR_HOME%/fanruanxxx/fr/help | 作用:外部資源檔案 是否必須copy:使用者自行決定 維運平台部署的工程,不支援直接在/掛載目錄/fanruanxxx/bi6下建立資料夾,會因為未持久化而丟失 對於原工程下,任何其他需要保留的資源檔案,可考慮存放到help資料夾下(請注意,在工程遷移成功後,相關資源引用地址,也需要自行手動更換) |
5. 啟動原非容器化工程
5.1 啟動原工程
參考 關閉或重啟FineBI工程 / 關閉或重啟FineReport工程 文檔,啟動原非容器化部署的工程。
5.2 對接原配置庫
3.5節,原工程對接了備份配置庫,此時需要將其切換為原配置庫,確定新老工程不會同時對接一個配置庫。
管理者登入原工程,點選「管理系統>系統管理>標準」,點選外接資料庫「已配置」
修改資料庫名稱為原表空間名稱
輸入資料庫使用者密碼
請勿勾選「遷移資料至要啟動的資料庫」
點選「啟動新資料庫」即可。
6. 啟動新容器化工程
6.1 啟動新工程
1)管理者登入維運平台,選擇新工程,點選「維護>組件管理」。
2)找到bi6/fr組件,點選「啟動」按鈕,即可啟動新工程。如下圖所示:
6.2 重新對接維運平台
1)取消維運平台對接
管理者登入維運平台,選擇新工程,點選「刪除」,將新工程從維運平台管理列表中刪除。
此處的刪除,僅代表維運平台與新工程的對接中斷,不代表新工程直接被剷除。
2)工程發起對接請求
管理者登入新工程,點選「管理系統>系統管理>標準」。
在「維運平台連結設定」中,輸入「維運平台地址」,點選「儲存」。
維運平台地址形如:http://IP:埠號/ops/decision
3)維運平台確認對接
請在五分鐘內,使用管理者帳號登入維運平台。維運平台提示「發現新專案」。
點選「新增專案」,設定「專案名稱」,點選「確認」即可。
6.3 遷移新工程配置庫
如果3.4節備份配置庫,所使用的並非2.2節部署新專案時所部署的MySQL組件,請務必執行本節操作。
1)管理者登入維運平台,選擇新工程,點選「維護>叢集管理」,對「外接配置庫」進行配置。
2)輸入相關資訊並遷移
資料庫類型:選擇「mysql」
驅動:無需調整,選擇「com.mysql.jdbc.Driver」即可
資料庫名稱、主機、埠、帳號、密碼:填寫2.2節部署新專案時,記錄的MySQL資料庫資訊。(如果忘記了,可透過2.5節留存的部署資訊尋找)
資料連結URL:一般無需手動修改,會由其他配置和預設參數共同組成
請勾選「遷移資料至要啟動的資料庫」
6.4 重新抽取資料
注:僅FineBI工程需要執行本節操作。
1)管理者登入新工程,點選「公共資料>全局更新」,即可看到資料的儲存路徑。
2)請確定修改為新工程容器內資料存放路徑:/usr/local/tomcat/webapps/webroot/bi-data/spider/db,點選「確定」,更改成功。
3)再次存取「公共資料>全局更新」,執行「立即全局更新」,即可抽取最新資料,並存放到正確的儲存路徑中。
6.5 新工程註冊
全新註冊:容器化工程請使用 註冊新專案 方式進行註冊。
授權遷移:使用者也可棄用原工程,將原工程的授權遷移到新工程。
1)參考 授權遷移插件 的使用步驟,向商務索要一個授權遷移插件,銷燬原非容器化工程的舊授權。
2)找到原非容器化工程%BI_HOME%/webroot/WEB-INF/resources資料夾下的銷燬證件。
3)向商務索要註冊鏡像檔案fanruan_license_server.tar,並參考 註冊新專案 進行授權。
請在郵件中附上第三步獲取的銷燬證件。並註明是「非容器化工程遷移容器化工程」