Project Version
Functional Change
FineReport11.0
FineBI6.0
Containerized projects require lower upgrade and maintenance costs compared with common standalone projects.
Compared with standalone projects, high-availability clusters have better performance with easier management and stronger security. Together with the ability to flexibly scale, clustered projects are suitable for enterprise-level report generation and management.
The solution described in this document helps you migrate an existing non-containerized standalone project to a containerized cluster project.
This document takes the FineBI project as an example to illustrate the migration steps. The migration steps for the FineReport project are basically the same, with only two differences:
1. The files to be copied for the FineReport and FineBI projects are not the same. Pay attention to the table content in this document.
2. When you start/stop the container with FineOps, close the fr component for a FineReport project, and close the bi6 component for a FineBI project.
For details, see FineOps Deployment.
For details, see New Project Deployment.
a. Check the size of the webroot folder of the original non-containerized project in the %Tomcat_home%\webapps path. Assume it is x GB.
b. Expand the remaining disk space of the node where the new project's file server is located appropriately based on the size of the original project when preparing the file server for the new containerized cluster project.
Get the larger value between 2x and 500. The result is the recommended minimum remaining disk space (unit: GB).
2: When deploying the new project, you will also deploy some essential components. You are advised to note down the information of these components to facilitate future maintenance.
Note down the information of mysql, redis, minio, and elasticsearch components configured under Deploy New Project > Project Setting > Deployment Configuration. Since the component password is randomly generated, you should change it to facilitate future use.
3. During the migration, you need to copy some files of the old project and paste them into the new project, so you should note down the location of the mounting directory where the new project files are stored.
Note down the mounting path of each project node in the cluster under Deploy New Project > Node Configuration.
1. Log in to FineOps as the admin, and click Project Management to view the access address of the new project.
2. Log in to the new containerized project as the admin, and choose System Management > Registration Management > Version Information to confirm the minor version of the project (accurate to the JAR package date).
1.Log in to FineOps as the admin, and click Component Management under the button of the new containerized project on the Project Management page.
2. Find the bi 6/fr component, and click the Stop button to close the new containerized project.
1. Use a terminal device to access the server where each project node of the new containerized cluster is located, and go to/fanruanxxx/bi in the mounting path set under Deploy New Project > Node Setting.
2. The YAML file stored in the config folder contains the commands used for project deployment. You should back them up offsite.
For details about how to back up the project, see section "Backup Method" in Project Backup and Restoration.
Obtaining the JAR Package
Paid users can contact the technical support personnel to obtain the project JAR package of the same minor version (accurate to the JAR package date) as that of the new project mentioned in the section "New Project Version Confirmation."
To contact our technical support personnel, you can send an email to international@fanruan.com or click at https://help.fanruan.com/fineops-en/.
Upgrading the Original Non-containerized Project
For details about upgrading the project to a specified version, see Designer Upgrade Guide.
Log in to the original non-containerized project as the admin, choose System Management > System Setting > General, and check whether the external database has been configured.
Situation
Description
Configured
It indicates that the project has been configured with an external database. You can click Configured to view and note down the location of the external database.
You have to ensure that the server where the new containerized project is located is connected to the server where the external database is located.
To Be Configured
It indicates that the project has not been configured with an external database. You need to configure an external database for this non-containerized project.
You have to ensure that the server where the new containerized project is located is connected to the server where the external database is located. Select Migrate Data to Database to Be Enabled during the configuration.
Log in to the original non-containerized project as the admin, and choose System Management > Plugin Management.
1. You must ensure that the following plugins have been installed and upgraded to the latest versions: Minio Resource Repository, System O&M, and Circuit Breaker of Resource Schedule.
2. You are advised to upgrade other installed plugins to the latest version.
Log in to the original non-containerized project as the admin, and choose System Management > Intelligent O&M > Cluster Configuration.
1. Enable Status Server. Select Redis Single Machine, and enter the redis component information noted down in the section "New Project Deployment."
2. Enable File Server Sharing. Select MinIO, and enter the minio component information noted down in the section "New Project Deployment."
3. Disable Cache Mode and set Cluster Communication Protocol to TCP.
4. Enable Cluster.
For details about restarting the original non-containerized project, see Closing or Restarting the FineBI Project.
Check the content of Node Management under System Management > Intelligent O&M > Cluster Configuration of the original non-containerized project. If the node of this project appears, you have deployed the single-node cluster successfully.
For details about closing the original non-containerized project, see Closing or Restarting the FineBI Project.
1. You need to check in advance whether the original non-containerized project is configured with a mounting directory and a shared file server, and ensure that the correct files are copied.
2. The mounting location of the new containerized project files is the mounting path set in the section "New Project Deployment."
3. Copy the following files of the original non-containerized project and paste them into the new containerized project.
1. You cannot use the docker cp command to copy and paste the entire webroot folder into the container, as it may cause functional issues.
2. You cannot directly copy and paste the entire webroot folder into the mounting directory of the containerized project, as some files cannot be overwritten.
3. Copy and paste the final file of the project instead of the file backed up in the section "Backing up the Original Project."
4. Copy and paste the files individually to the corresponding locations of each project node and file server of the new containerized project.
5. MinIO utilizes the S3 protocol, so you cannot directly use the files uploaded to the server. For details, see Introduction to MinIO File Server.
Files Needed to Be Copied for FineBI
Original Non-containerized Project Directory
New Containerized Project Mounting Directory
%Tomcat_HOME%/logs
%BI_HOME%/ fanruanxxx/bi6/tomcat_logs of each project node
Function: It is the location of Tomcat general logs.
Necessity in copying and pasting: optional. Tomcat historical access log may not need to be copied.
%Tomcat_HOME%/webapps/webroot/bi-data
%BI_HOME%/ fanruanxxx/bi6/bi-data of each project node
Function: It stores extracted data of FineBI.
Necessity in copying and pasting: optional.
If you don't copy and paste it, you'll need to perform a global update and re-extract the data after starting the new project.
If you copy and paste it, as the folder contains many files, the process will take a long time. You need to wait patiently.
%Tomcat_HOME%/webapps/webroot/logs
%BI_HOME%/ fanruanxxx/bi6/logs of each project node
Function: It stores swift logs.
If you do not copy and paste it, logdb (the historical operation logs of the project)l will be lost, and there will be no data under Platform Management > Platform Log.
You do not need to copy and paste it if historical usage information is not required.
%Tomcat_HOME%/webapps/webroot/WEB-INF/classes
%BI_HOME%/ fanruanxxx/bi6/classes of each project node
Function: It stores default and custom class files called by the project.
Necessity in copying and pasting: necessary.
It may store custom class files. If you do not copy and paste it, the normal use of the project will be affecte.
%Tomcat_HOME%/webapps/webroot/WEB-INF/config
%BI_HOME%/ fanruanxxx/bi6/config of each project node
Function: It stores configuration-database-related files.
It stores the information of the configuration database (finedb) called by the platform. If you do not copy and paste it, the normal use of the project will be affected.
You are advised to only apply updates by overwriting instead of deleting everything before copying and pasting to avoid losing essential files.
Locate the following two directories:
%Tomcat_HOME%/webapps/webroot/WEB-INF/lib
%Tomcat_HOME%/webapps/webroot/WEB-INF/customLib
fdl-bi-extension-4.0.jar
fdl-boot-4.0.jar
fdl-core-4.0.jar
fdl-cron-4.0.jar
fdl-datasource-4.0.jar
fdl-third-4.0.jar
fine-accumulator-11.0.jar
fine-activator-11.0.jar
fine-autuator-formula-11.0.jar
fine-bi-adapter-6.0.jar
fine-bi-datamining-6.0.jar
fine-bi-datamining-third-6.0.jar
fine-bi-engine-spider-6.0.jar
fine-bi-engine-third-6.0.jar
fine-bi-foundation-6.0.jar
fine-bi-middle-6.0.jar
fine-bi-query-6.0.jar
fine-bi-query-excel-6.0.jar
fine-bi-query-third-6.0.jar
fine-bi-scheduler-6.0.jar
fine-bi-spider-cluster-6.0.jar
fine-cbb-11.0.jar
fine-core-11.0.jar
fine-datasource-11.0.jar
fine-decision-11.0.jar
fine-decision-bi-11.0.jar
fine-decision-report-11.0.jar
fine-report-engine-11.0.jar
fine-schedule-11.0.jar
fine-schedule-bi-11.0.jar
fine-schedule-report-11.0.jar
fine-swift-log-adaptor-11.0.jar
fine-third-11.0.jar
fine-webui-11.0.jar
h2-2.1.214.jar
jtds-1.3.1.jar
mssql-jdbc-9.4.1.jre8.jar
mysql-connector-java-5.1.49-bin.jar
ojdbc8.jar
orai18n.jar
sqlite-jdbc-3.35.4.jar
jarfile-checksum.txt
readme.txt
version-bi.txt
%BI_HOME%/ fanruanxxx/bi6/customlib of each project node
Function: It stores JAR packages customized by projects or externally imported JAR packages.
Necessity in copying and pasting: necessary. Otherwise, template access will be affected.
%Tomcat_HOME%/webapps/webroot/WEB-INF/plugins
%BI_HOME%/ fanruanxxx/bi6/pluginsof each project node
Function: It stores plugin-related files.
Necessity in copying and pasting: necessary. Otherwise, plugin-related functions will be affected.
%Tomcat_HOME%/webapps/webroot/backup
Minio file storage path/backup
Function: It stores historical backup files of the project.
Necessity in copying and pasting: optional. You do not need to copy and paste backups that can be stored in the original directory.
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/temp_attach
Minio file storage path/assets/temp_attach
Function: It stores the information related to FineBI data table.
It stores the project's original Excel file information. If you do not copy and paste it, the original Excel files will be lost.
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/vcs
Minio file storage path/assets/vcs
Function: It stores backup files of FineReport templates.
If the project does not use the FineReport template, or if you do not need to roll back historically developed templates, you do not need to copy and paste it.
%Tomcat_HOME%/webapps/webroot/WEB-INF/assets/Other files
Minio file storage path/assets/Other files
Function: It stores general files that share the persistent directory.
It stores the files required for the normal operation of the project. If you do not copy and paste it, the normal use of the project will be affected.
%Tomcat_HOME%/webapps/webroot/WEB-INF/reportlets
Minio file storage path/reportlets
Function: It stores FineReport templates.
If the project does not use the FineReport template, you do not need to copy and paste it.
%Tomcat_HOME%/webapps/webroot/WEB-INF/schedule
Minio file storage path/schedule
Function: It stores files generated by Task Schedule.
If you do not copy and paste it, you cannot access the result report mounted to the decision-making platform by Task Schedule.
Files Needed to Be Copied for FineReport
%FR_HOME%/ fanruanxxx/fr/tomcat_logsof each project node
%FR_HOME%/ fanruanxxx/fr/logs of each project node
%FR_HOME%/ fanruanxxx/fr/classes of each project node
It may store custom class files. If you do not copy and paste it, the normal use of the project will be affected.
%FR_HOME%/ fanruanxxx/fr/config of each project node
fine-service-management-2.0.7.jar
ifxjdbc_informix.jar
sqlite-jdbc-3.39.4.0.jar
sqljdbc.jar
sybase.jar
%FR_HOME%/ fanruanxxx/fr/customlib of each project node
%FR_HOME%/ fanruanxxx/fr/plugins of each project node
Function: It stores read and write caches.
It stores the project's read and write (image) caches. If you do not copy and paste it, the preview of background images set in the templates may appear empty.
If the project does not require a rollback of previously developed FineReport templates, you do not need to copy and paste it.
Necessity in copying and pasting: necessary. Otherwise, all the templates in the project will be lost.
Log in to FineOps, click Project Management, and click Component Management under the button after the new containerized project.
Find the bi 6 component and click the Start button on one of the nodes to start the project node. See the following figure:
1. Creating an Empty Database
If the original project uses a non-MySQL 8 type external database:
The new project's external database should still be deployed in a new database under the same address. The MySQL database mentioned in section "New Project Deployment" cannot be used.
Create a new database name at the address of the original project's external database to serve as the empty database for migration.
If the original project uses a MySQL 8 type external database:
You are advised to deploy the new project's external database in the MySQL database mentioned in section "New Project Deployment."
Create a new database name in the mysql 8 component deployed in the containerized environment in section "New Project Deployment" to serve as the empty database for migration.
2. Migrating the Database
Log in to the newly started containerized project as the admin, and choose System Management > System Setting > General > External Database.
Configure the external database to the empty database created in the previous step.
Select Migrate Data to Database to Be Enabled.
Click Enable New Database.
When the prompt "Successfully switched to the target database." appears, you have successfully switched the external database of that node.
1. Modify the storage path
Find the mounting directory %BI_HOME%/fanruanxxx/bi6/config in the node server of the newly started containerized project, and modify or create the spider.cluster.properties file.
Add the following content to the file: spider_local_base_path=/usr/local/tomcat/webapps/webroot/bi-data/spider/db
2. Delete down nodes
Log in to the newly started containerized project as the admin, and choose System Management > System Setting > Cluster Extraction. You can see the status of the corresponding node has become DOWN, and then delete the node.
3. Restart to generate configurations
Find the bi 6 component and click the Restart button on the started node to restart the project node.
4. Extract data
If you did not copy and paste the bi-data file in section "Copying Files", a global update is needed after starting the project to re-extract data to that path.
If you copied the bi-data file in section "Copying Files", the project will directly access that path upon startup.
Find the bi 6 component and click the Stop button on the started node to stop the project node.
Copy and paste the config folder in the %BI_HOME%/fanruanxxx/bi6 path of this project node to the same location of other project nodes.
Find the bi 6 component and click the Start button after it to start all project nodes. See the following figure:
Log in to all project nodes sequentially:
1. If all cluster nodes appear in System Management > Intelligent O&M > Cluster Configuration > Node Management, it means the multi-node cluster has been successfully configured.
2. If the project configuration on each node is identical, it means the external database has been successfully configured.
1. Overwrite the original non-containerized project's webroot files with the webroot project files backed up in section "Backing up the Original Project."
2. For details about starting the original non-containerized project, see Closing or Restarting the FineBI Project.
If the original project has been registered, typically, you need to migrate the authorization to the new project. For containerized projects, you are advised to use Container Private Cloud Authentication.
1. For details about destroying the authorization of the original non-containerized project, see Authorization Migration Plugin and request a plugin from the business personnel.
2. Find the destruction certificate in %BI_HOME%/webroot/WEB-INF/resources of the original non-containerized project.
For details about authorizing the new containerized project, see Container Private Cloud Authentication and request registration image file fanruan_license_server.tar from the business personnel.
You should attach the destruction certificate obtained in the previous step to your email, and specify that this is for "migration of a non-containerized project to a containerized project."