Project Version
Functional Change
FineReport11.0
FineBI6.0
Containerized projects require lower upgrade and maintenance costs compared with common standalone projects.
The solution described in this document helps you migrate an existing non-containerized standalone project to a containerized standalone project.
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 bi 6 component for a FineBI project.
Step
Description
Understanding Migration Steps
Make sure you have read the steps in this section thoroughly and understood their functions before performing the migration.
Preparing the New Containerized Project
Deploying FineOps
Containerized deployment of FineReport/FineBI projects requires operations via the frontend of FineOps.
You need to deploy FineOps first.
Deploying a New Project
Project migration indicates migrating essential files from an existing non-containerized project to a new containerized project.
You need to deploy a new containerized standalone project via FineOps.
Confirming the New Project Version
The version of the new containerized project is typically more up-to-date compared with that of the original project.
You need to confirm the new project version and upgrade the original project to the same version.
Closing the New Project
During migration, you need to copy some files of the original project and paste them into the new project. This operation should be performed while the new project is not running.
You can close the new project quickly via the frontend of FineOps.
Backing up the config Folder of the New Project
Commands that are automatically generated during the containerized deployment of a new project may be used or referenced for subsequent operation and maintenance. But the file containing these commands will be overwritten during the migration.
You need to back up the config folder containing the file to an offsite location in advance.
Preparing the Original Non-containerized Project
Backing up the Original Project
Before project migration, you must back up the original project and then proceed with subsequent operations. This can avoid the inability to roll back caused by project file loss if the migration fails.
Upgrading the Original Project
Project migration must be performed on projects that are of the same version.
You need to upgrade the original non-containerized project to the same version as that of the new project before migration.
Confirming External Database Configuration of the Original Project
A containerized project must be configured with an external database. You must make sure that the configuration database of the original project is externally connected. Otherwise, the migration will fail.
Backing up the Configuration Database Connecting to the Database Backup
During migration, you need to prevent modifying the configuration in the FineDB database. Otherwise, the original project will be unable to roll back.
You must back up the configuration database of the original project and connect the original project to the database backup.
Confirming Plugin Installation of the Original Project
During migration, you need to overwrite the new project's plugins with those of the original project. However, some functions of FineOps-connected projects require specific plugins.
You need to make sure that the original project has been equipped with plugins meeting the version requirements.
Closing the Original Project
You need to close the original project manually.
Copying and Pasting the Files
This section introduces the formal migration operations.
Copy the necessary files of the original non-containerized project and paste them into the new containerized project.
Starting the Original Project
You need to start the original project.
Connecting to the Original Configuration Database
At this stage, the new and original projects use the same FineDB database. However, each FineDB database can only be connected to one project to avoid usage issues.
You need to modify the external database of the original project to the original configuration database.
Starting the New Project
The following operations need to be performed on the new project platform. You need to start the new project quickly via the frontend of FineOps.
Reconnecting the New Project to FineOps
The unique project ID has changed due to file copying. Therefore, FineOps might experience abnormal project status monitoring.
You need to reconnect the new project to FineOps.
Migrating the Configuration Database of the New Project
At this stage, the configuration database used by the new project is the database backup of the original project, which may not be a containerized database component.
You need to migrate the external database of the new project to the containerized MySQL database.
Re-extracting Data
The operations described in this section are only applicable to FineBI projects.
FineBI projects generally require data re-extraction after migration to ensure the normal use by business users. You need to confirm and modify the data storage path before performing the data extraction.
Registering the New Project
You can either apply for a new license for registration or migrate the license of the original project to the new project.
For details, see FineOps Deployment.
For details, see New Project Deployment.
1. During the migration, you need to copy some essential files and resources of the old project and paste them into the new project, so you must ensure that the available disk space for the new project is large enough.
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 server is located appropriately based on the size of the original project when preparing the server for the new project.
Get the larger value between 2x and 500. The result is the recommended minimum remaining disk space for the new project (unit: GB).
2. After migration, you must ensure that the access path names of the new and old projects are identical to guarantee their access addresses are consistent.
Choose Deploy New Project > Project Setting and confirm the access path configuration.
Delete all the content in Path if the original project is accessed via a short domain name or IP address.
Modify the content in Path to the corresponding terms if the Webroot in http://IP address:Port number/Webroot/decision of the original project has been modified.
Note down the mounting path of main application nodes under Deploy New Project > Node Configuration.
Note down the information of mysql and elasticsearch components configured under Deploy New Project > Deployment List.
Since the component password is randomly generated, you should change it to facilitate future use.
1. Log in to FineOps as the admin, go to the Project Management page, and click the link below the new project to access it.
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, select the new project, and choose Maintenance > Component Management.
2. Find the bi 6/fr component, and click the Stop button to close the new project.
1. Use a terminal device to access the server where the new containerized project 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 backing up the project, see section "Backup Method" in Project Backup and Restoration.
1. 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."
You can send an email to international@fanruan.com or click at https://help.fanruan.com/fineops-en/.
2. Upgrading the Original Project
For details about upgrading the project to a specified version, see Designer Upgrade Guide.
Log in to the original project as the admin, choose System Management > System Setting > General, and check whether the external database has been configured.
If Configured is displayed, it indicates that the project has been configured with an external database. Click to view and note down the location of the external database, and then proceed to the next step.
If To Be Configured is displayed, it indicates that you need to configure an external database for this non-containerized project.
Select Migrate Data to Database to Be Enabled during the configuration.
You can use the mysql component in the section "Deploying a New Project" as the external database. You need to add tablespace on your own, and avoid using the existing tablespace!
You can prepare your own configuration database. You are advised to prioritize using MySQL 8 database. Make sure that the server where the old and new projects are located is interconnected to the server where the database is located.
Access the configuration database of the original project with a third-party database management tool.
Back up the tablespace of the configuration database. If the original tablespace is named finedb, then the backed-up tablespace is named finedbbak.
Log in to the original project as the admin, choose System Management > System Setting > General, and click Configured next to External Database.
Modify the database name to the backed-up tablespace name.
Enter the password of the database.
Do not select Migrate Data to Database to Be Enabled.
Click Enable New Database.
Log in to the original 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: System O&M and Circuit Breaker of Resource Schedule.
2. You are advised to upgrade other installed plugins to the latest version.
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 "Deploying a New Project." If you forget the mounting path of the new project, you can view it by exporting project deployment information.
3. Copy the following files of the original non-containerized project and paste them into the new containerized project.
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.
2. Copy and paste the final files of the project instead of the files backed up in the section "Backing up the Original Project."
Files Needed to Be Copied for FineBI
Original Non-containerized Project Directory
New Containerized Project Mounting Directory
%Tomcat_HOME%/logs
%BI_HOME%/fanruanxxx/bi6/to
mcat_logs
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/backup
%BI_HOME%/fanruanxxx/bi
6/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.
webroot/bi-data
6/bi-data
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.
webroot/logs
6/logs
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.
webroot/WEB-INF/assets/tem
p_attach
6/assets/temp_attach
Function: It stores the information related to FineBI data table.
Necessity in copying and pasting: necessary.
It stores the project's original Excel file information. If you do not copy and paste it, the original Excel files will be lost.
webroot/WEB-INF/assets/vcs
6/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.
webroot/WEB-INF/assets/Oth
er files
6/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.
webroot/WEB-INF/classes
6/classes
Function: It stores default and custom class files called by the project.
It may store custom class files. If you do not copy and paste it, the normal use of the project will be affected.
webroot/WEB-INF/config
6/config
Function: It stores configuration-database-related files.
It stores the configuration database (finedb) called by the platform. If it is not copied and pasted, the normal use of the project will be affected.
Locate the following two directories:
webroot/WEB-INF/lib
webroot/WEB-INF/customLib
The following are built-in JAR packages for the project and do not need to be copied. Any other JAR packages defined by yourself need to be copied.
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
6/customlib
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.
webroot/WEB-INF/dpworks
6/dpworks
Function: It stores the configuration files related to FineDataLink tasks.
Necessity in copying and pasting: necessary. Otherwise, the FineDataLink usage will be affected.
(If this directory does not exist, it means that the project does not utilize FineDataLink-related functions. You can skip it.)
webroot/WEB-INF/plugins
6/plugins
Function: It stores plugin-related files.
Necessity in copying and pasting: necessary. Otherwise, plugin-related functions will be affected.
Delete the original files in the folder before copying and pasting the plugin package of the original project. Otherwise, the coexistence of multiple versions of the same plugin may cause exceptions.
webroot/WEB-INF/reportlets
6/reportlets
Function: It stores FineReport templates.
If the project does not use the FineReport template, you do not need to copy and paste it.
webroot/WEB-INF/schedule
6/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.
6/help
Function: It stores the external resource files.
For FineOps-deployed projects, creating folders directly under /Mounting directory/fanruanxxx/bi6 is not supported, as they will be lost due to a lack of persistence.
Any other resource files that need to be retained in the original project can be stored in the help folder.
Files Needed to Be Copied for FineReport
%FR_HOME%/fanruanx
xx/fr/tomcat_logs
%Tomcat_HOME%/weba
pps/webroot/backup
xx/fr/backup
pps/webroot/logs
xx/fr/logs
If you do not copy and paste it, logdb (the historical operation logs of the project) will be lost, and there will be no data under Platform Management > Platform Log.
pps/webroot/WEB-INF/as
sets/temp_attach
xx/fr/assets/temp_attach
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.
sets/vcs
xx/fr/assets/vcs
If the project does not require a rollback of previously developed FineReport templates, you do not need to copy and paste it.
sets/Other files
xx/fr/assets/Other files
pps/webroot/WEB-INF/cl
asses
%FR_HOME%/fanruanxx
x/fr/classes
pps/webroot/WEB-INF/co
nfig
xx/fr/config
pps/webroot/WEB-INF/lib
pps/webroot/WEB-INF/cu
stomLib
fine-service-management-2.0.7.jar
ifxjdbc_informix.jar
sqlite-jdbc-3.39.4.0.jar
sqljdbc.jar
sybase.jar
x/fr/customlib
pps/webroot/WEB-INF/d
pworks
xx/fr/dpworks
pps/webroot/WEB-INF/pl
ugins
xx/fr/plugins
pps/webroot/WEB-INF/re
portlets
x/fr/reportlets
Necessity in copying and pasting: necessary. Otherwise, all the templates in the project will be lost.
pps/webroot/WEB-INF/sc
hedule
xx/fr/schedule
Any other resource files that need to be retained.
xx/fr/help
Any other resource files that need to be retained in the original project can be stored in the help folder. (Note: After the project is successfully migrated, you will also need to manually replace relevant resource reference addresses.)
For details about starting the original non-containerized project, see Closing or Restarting the FineBI Project.
The original project has been connected to the backed-up configuration database in previous steps. Now you need to switch it back to the original configuration database to ensure that the new and old projects will not be connected to the same configuration database simultaneously.
Modify the database name to the original tablespace name.
Click Enable New Database
2. Find the bi 6/fr component, and click the Start button to start the new project. See the following figure:
Cancelling the Connection to FineOps
Log in to FineOps as the admin, and click Delete under the button of the new project to remove it from the project management list.
In this context, Delete only means that the connection between FineOps and the new project is interrupted. It does not mean that the new project is directly removed.
Initiating a Project Connection Request
Log in to the new project as the admin and choose System Management > System Setting > General.
Enter O&M Platform Address in O&M Platform Connection Setting, and click Save.
O&M Platform Address is in the format of http://IP address:Port number/ops/decision.
Confirming the Connection on FineOps
Log in to FineOps as the admin within five minutes. A prompt appears on FineOps: "Found New Project."
Click Add Project, set Project Name, and click OK.
Perform the operations in this section if you used another component for backing up the configuration database instead of using the mysql component deployed for the new project.
1. Log in to FineOps as the admin, select the new project, and choose Maintenance > Cluster Management to configure External Configuration Database.
2. Enter the relevant information and migrate.
Database Type: mysql
Driver: keep the default com.mysql.jdbc.Driver
Database Name, Host, Port, Username, and Password: enter the MySQL database information set during the new project deployment stage (If you forgot the information, you can find it through the retained deployment information in section "Backing Up the Config Folder of the New Project.")
Database Connection URL: Normally, you do not need to modify it manually. It is composed of other configurations and preset parameters.
Select Migrate Data to Database to Be Enabled.
1. Log in to the new project as the admin, and choose Public Data > Global Update to view Data Storage Path.
2. Make sure to modify Data Storage Path of the new project to: /usr/local/tomcat/webapps/webroot/bi-data/spider/db, and click OK.
3. Choose Public Data > Global Update again, and click Global Update Now to store the extracted latest data to the right storage path.
New registration: For containerized projects, see New Project Registration.
Authorization migration: You can also discard the original project and migrate its authorization to the new project.
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 the %BI_HOME%/webroot/WEB-INF/resources folder of the original non-containerized project.
3. Request registration image file fanruan_license_server.tar from the business personnel. For details about authorization, see New Project Registration.
Attach the destruction certificate obtained in the previous steps to your email, and specify that this is for "migration of a non-containerized project to a containerized project."