Upgrade Guide for Bitnami ReportServer Instances

In this guide we describe the upgrade process from Bitnami ReportServer instances to a newer Bitnami ReportServer stack.

Overview

The following upgrade installation gives a step by step description of how to upgrade the Bitnami ReportServer Stack to either ReportServer 3.7.1 Community Edition or ReportServer 3.7.1 Enterprise Edition. Another versions can be upgraded in an analogous way. The upgrade consists of the following steps.

  1. Obtain the Bitnami ReportServer Enterprise (or Community) stack
  2. Stop the old ReportServer
  3. Create a complete backup of Reportserver data and a DB backup
  4. Install the new Bitnami ReportServer stack
  5. Delete the internal db of your ReportServer stack
  6. Import the backup data
  7. Restart ReportServer
  8. Check the logs
  9. Update the password of the new database

Before you start with upgrading the ReportServer Bitnami Stack, please make sure to have the following requirement met.

  • You need to have a Bitnami Installation of Reportserver of version 3.0.3 or higher for this to work. In this example we upgrade 3.1.0 to version 3.7.1. Another versions can be upgraded in an analogous way.

Obtaining the Bitnami ReportServer stack

The first step is to download the updated Bitnami ReportServer Stack. You can find download links on our download page. Note that you can upgrade both to ReportServer Enterprise or to ReportServer Community. Once you have downloaded the installer, keep the file in a safe location and proceed with the next steps without starting the installation process. We'll do so in just a moment, but before that we need to make sure that the following precautions have been made for a succesful transfer of data.

  • A complete DB-backup of your current bitnami reportserver metadata database including all relevant tables and data. Be sure you can return to the previous state in case something goes wrong.
  • All relevant files of your current installation (any drivers you may use, reportserver.properties, web.xml if you changed the default one, etc). In the bitnami installation you can find the external configuration directory here:
    • E.G. for standard installation: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apps\reportserver\reportserver-conf

The easiest and most complete backup is a complete SNAPSHOT of your current installation. Be sure you can return to the previous state in case something goes wrong.

Please make sure that you have access to a terminal (Linux) or cli (Windows command prompt) and that you have a user with administration rights.

Stop the old ReportServer

Once that we have exported all relevant data from the old instance, we can stop the old server. You can stop ReportServer by using the server monitor application that was installed with ReportServer. You find it in the installation directory. The manager application should be called manager-PLATFORM where platform could be linux-x64, windows or osx.

Create a complete backup of Reportserver data and a DB backup

To export all relevant data from your current ReportServer installation, open a Terminal or cli with administration rights and navigate to your current Bitnami ReportServer installation.
Something like this here

E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\mariadb\bin>

You should look up your credentials for your internal database of your current ReportServer installation by checking the folder that contains this data.

E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apps\reportserver\reportserver-conf\persistence.properties>

As you have obtained the username and password for your internal db you now have the possibility to create a backup or so called dumpfile of your current database.
To create an actual dumpfile you need the the following command.

mysqldump -u username -ppassword source_database_name > path_to_dumpfile_on_hdd_or_ssd

  • username = actual ReportServer db username
  • password = actual ReportServer password for username
  • source_database_name = the name of the database you want to export data from
  • path_to_dumpfile_on_hdd_or_ssd = the full path of the dumpfile including the dumpfile itself with its *.sql suffix
Please note that for the password you need to write it without a space between the code tag -p and the actual password.
This is not allowed and prompts you to write down the password
mysqldump -u username -p password source_database_name > path_to_dumpfile_on_hdd_or_ssd

E.G.: mysqldump -u bn_reportserver -pa95f96a6d1 bitnami_reportserver > C:\BitnamiDBbackup\backup\bitnami_reportserver_backup.sql

After that it should appear in your specified folder and should contain a dumpfile that can be used to upgrade your new updated ReportServer later.

Install the new Bitnami ReportServer Stack

Now you need to uninstall your current bitnami Reportserver installation and need to install the latest version of Reportserver with your installer package from bitnami.
This guide demonstrates this with the aforementioned version 3.1.0 to 3.7.1.

Delete the internal db of your ReportServer Stack

As you have installed the new Bitnami ReportServer version succesfully, you can now begin to update your database.
For this step we need to delete the current iteration of the internal database. This will be done in order to make room for your backup that you just created in step 3 of the overview.

Please start by opening a command prompt or terminal and navigate to your installations bin folder.
Then you need to access your database via the username and password from step 3 with the following command.

mysql -u username -ppassword
E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\mariadb\bin>mysql -u bn_reportserver -pa95f96a6d1

In this environment you can actually use sql code, which comes in handy when you need to make queries for checking out e.g. databases and database names, tables of databases etc. .
SQL is very powerful in that regard and helps you now.

MariaDB [(none)]>show databases;

After that we can basically see that we have multiple databases but just the bitnami_reportserver db is of interest to us.
Therefore we need to use the following command to delete the underlying db for the new reportserver.

mysql -u username -ppassword source_database_name < path_of_the_drop_ddl_sqls;
E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\mariadb\bin>mysql -u bn_reportserver -pa95f96a6d1 bitnami_reportserver < C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apache-tomcat\webapps\reportserver\ddl\reportserver-RS3.7.1-6048-schema-MySQL5_DROP.sql

By doing this we have finally made room for our backup that will take place in the next step. Thanks to the empty set and the command

show tables in bitnami_reportserver;

We can be sure that the dbs is empty and contains no further tables that could interfere with our backup.

Import the backup data

In Step 3 of the overview we basically created a complete backup of our former database. Now it is being used for importing our data from the former version of Bitnami ReportServer to the current latest version of Bitnami Reportserver.

For this we need to use a command that allows us to import our backed up data and use it as our new internal db for our latest installment of Bitnami ReportServer.
The generalized way of doing this look like this.

mysql -u username -ppassword source_database_name < path_to_dumpfile_backup
E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\mariadb\bin>mysql -u bn_reportserver -pa95f96a6d1 bitnami_reportserver < C:\BitnamiDBbackup\backup\bitnami_reportserver_backup.sql

Thanks to the wonders of sql we can now check whether our import was succesful with the following command.

MariaDB [(none)]>show tables from bitnami_reportserver;

Obviously it worked thanks to seeing a reinstalled database with all its content for our latest version of Bitnami ReportServer.

Restart ReportServer

After finishing the succesful import, you now have a chance of restarting the ReportServer by opening the management tool within the Bitnami installation folder and navigating to the tab "Manage Servers" and clicking on Tomcat Server the start button.
This should start the ReportServer again and allow you to get access to the landing page.

Check the logs

Even though it looks like everything went as expected, there can always happen something unexpected, due to the delicate nature of upgrading software systems.
Due to this situation that could occur it is always wise to check the logs as found in here for anything that could have happened during the import and especially during the call of ReportServer with the new database.

E.G.: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apache-tomcat\logs\reportserver.xxxx-xx-xx.log

The xxxx-xx-xx is the placeholder for the date of the log so it can vary depending on when you start up tomcat and ReportServer.
If everything went well you should see something like this.

Version: RS3.7.1-6048 2021-11-08-13-44-40
Code Version: 2021-11-08-13-44-40
Java Version: BellSoft OpenJDK 64-Bit Server VM 11.0.13+8-LTS (11)
VM Args: -Dcatalina.home=C:\Bitnami\REPORT~1.605\APACHE~1 -Dcatalina.base=C:\Bitnami\REPORT~1.605\APACHE~1 -Dignore.endorsed.dirs=C:\Bitnami\REPORT~1.605\APACHE~1\endorsed -Djava.io.tmpdir=C:\Bitnami\REPORT~1.605\APACHE~1\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Bitnami\REPORT~1.605\APACHE~1\conf\logging.properties -Drs.configdir=C:\Bitnami\reportserverenterprise-3.7.1.6050-0/apps/reportserver/reportserver-conf -Dfile.encoding=UTF8 --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/sun.reflect.generics.repository=ALL-UNNAMED -Djavax.net.ssl.trustStoreType=JKS --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED exit abort -Xms512m -Xmx1536m
rs.configdir: C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apps\reportserver\reportserver-conf (OK)

### DB Config ### hibernate.dialect: net.datenwerke.rs.utils.hibernate.MariaDbDialect (OK) hibernate.connection.driver_class: org.mariadb.jdbc.Driver (OK) hibernate.connection.url: jdbc:mariadb://127.0.0.1:3306/bitnami_reportserver (OK) hibernate.connection.username: bn_reportserver hibernate.connection.password: ********** hibernate.default_schema:
Connection Test: OK Schema Version: RS3.0-14
06-Jan-2022 08:54:13.682 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.schemaupdate Performing database update RS3.0-14 -> RS3.0-20 06-Jan-2022 08:54:13.683 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-15-MySQL5_UPDATE.sql 06-Jan-2022 08:54:13.760 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-16-MySQL5_UPDATE.sql 06-Jan-2022 08:54:13.849 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-17-MySQL5_UPDATE.sql 06-Jan-2022 08:54:13.941 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-18-MySQL5_UPDATE.sql 06-Jan-2022 08:54:15.308 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-19-MySQL5_UPDATE.sql 06-Jan-2022 08:54:16.596 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.doVersionUpdate Running script RS3.0-20-MySQL5_UPDATE.sql 06-Jan-2022 08:54:17.483 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.startup Validating database schema... 06-Jan-2022 08:54:40.259 INFORMATION [Catalina-utility-1] net.datenwerke.rs.EnvironmentValidator.hibernateValidateSchema Schema validation completed

Important are these lines.

Performing database update RS3.0-XY -> RS3.0-XY
Update Running script RS3.0-XY-MySQL5_UPDATE.sql

Update the password of the new database

Reportserver should be callable when you restart the tomcat under the following address considering the standard implementation. You just need to start the browser of your choice and type in

127.0.0.1/reportserver/

When you have typed this in and pressed Enter, you should see the Bitnami ReportServer landing page.

Now you just need to log in with your credentials you put up during installation of the new upgrade and navigate to Administration within the gui of ReportServer.
You should see under the Administration tab multiple categories that are enclosed in the left frame of ReportServer and you should click on Datasources.

Due to the new installment of ReportServer you also probably have noticed that your db user credentials have changed.
This encompasses in particular the password as has been discovered in step 3. We need this new password because the backup we imported still is based on the old password of the former credentials of your internal db.
Thats why we need to change this now and put in the new password in the password field of the new internal datasource that Bitnami ReportServer uses.

Now you just need to press apply and click on the button test connection and if everything went well you should see a connection succesful pop-up.
Congratulations! You have successfully updated not only your ReportServer to the latest version, but also have taken over all the data you have backed up into the new version.

Please take a note, If you edited the default config files (e.g. for SSO) you can replace them with your backup files after again stopping Tomcat (refer to the C:\Bitnami\reportserverenterprise-3.7.1.6048-1\apps\reportserver\reportserver-conf directory of the backup-section of this guide)

Happy Reporting