For various and valid reasons, you might need to migrate your entire Qlik Sense environment, or part of it, somewhere else.
In this post, I’ll cover the most common scenario: a complete migration of a single or multi-node Qlik Sense system, with the bundled PostgreSQL database (Qlik Sense Repository Database service) in a new environment.
So, how do we do that?
Introduction and preparation
Backup your old environment
Deploy and restore the new central node
What about my rim nodes?
Finalizing your migration
Introduction and preparation
Let’s start with a little bit of context: Say that we are running a 3 nodes Qlik Sense environment (Central node / Proxy-Engine node / Scheduler node).
On the central node, I also have the Qlik shared folder and the bundled Qlik Sense RepositoryDatabase installed.
This environment has been running well for years but I now need to move it to a brand new hardware ensuring better performance. It’s not possible to reinstall everything from scratch because the system has been heavily used and customized already. Redoing all of that to replicate the environment is too difficult and time-consuming.
I start off with going through a checklist to verify if the new system I’m migrating to is up to it:
A backup of the content of the file share which includes your applications, application content, archived logs, extensions,…
Backups of any data source files that need to be migrated and are not stored in the shared folder like QVDs
Then we can go ahead and…
Deploy and restore the new central environment
The next steps are to deploy and restore your central node. In this scenario, we will also assume that the new central node will have a different name than the original one (just to make things a bit more complicated 😊).
Let’s start by installing Qlik Sense on the central node. That’s as straightforward as any other fresh install.
You can follow our documentation. Before clicking on Install simply uncheck the box “Start the Qlik Sense services when the setup is complete.”
The version of Qlik Sense you are going to install MUST be the same as the one the backup is taken on.
Now that Qlik Sense is deployed you can restore the backup you have taken earlier into your new Qlik Sense central node following Restoring a Qlik Sense site.
If you have changed the Qlik Share location, then the UNC path has also changed and needs to be updated.
To do that
Go to C:\Program Files\Qlik\Sense\Repository\Util\QlikSenseUtil
Run QlikSenseUtil.exe as Administrator
Click on Connect to the database and enter the credential to connect to the new PostgreSQL database
Click on Service Cluster and press OK. This should display the previously configured UNC Path
You simply need to update each path, save and start/restart all the Qlik sense services.
At this point make sure you can access the Qlik Sense QMC and Hub on the central node. Eventually, check that you can load applications (using the central node engine of course). You can also check in the QMC -> Service Cluster that the changes you previously made have been correctly applied.
You’ve made it here?! Then congratulation you have passed the most difficult part.
If you had already running and configured rim nodes in your environment that you now need to migrate as well, you might not want to remove them from Qlik Sense to add the new ones since you will lose pretty much all the configuration you have done so far on these rim nodes.
By applying the following few steps I will show you how to connect to your “new” rim node(s) and keep the configuration of the “old” one(s).
Let’s start by installing Qlik Sense on each rim node like it was a new one.
The process is pretty much the same as installing a central node except that instead of choosing “Create Cluster”, you need to select “Join Cluster”
Once Qlik Sense is installed on your future rim node(s) and the services are started, we will need to connect to the “new” Qlik Sense Repository Database and change the hostname of the “old” rim node(s) to the “new” one so that the central node can communicate with it.
Once connected navigate to Databases -> QSR -> Schemas -> public -> Tables
You need to edit the LocalConfigs and ServerNodeConfigurations table and change the Hostname of your rim node(s) from the old one to the new corresponding one (Don’t forget to Save the change)
Once this is done, you will need to restart all the services on the central node.
When you have access back, login to the QMC and go to Nodes. Your rim node(s) should display the following status, “The certificate has not been installed”
From this point, you can simply select the node, click on Redistribute and follow the instruction to deploy the certificates on your rim node. After a moment the status should change and you should see the services being up and running.
Do the same thing on the remaining rim node(s).
Troubleshooting tips: If the rim node status is not showing “The certificate has not been installed” it means that either the central node cannot reach the rim node or the rim node is not ready to receive new certificates.
Check that the port 4444 is opened between the central and rim node and make sure the rim node is listening on port 4444 (netstat -aon in command prompt)
Still no luck?! You can completely uninstall Qlik Sense on the rim node and reinstall it.
Finalizing your migration
At this point, your environment is completely migrated and most of the stuff should work.
There is one thing to consider in this scenario. Since the Qlik Sense certificates between the old environment and the new one are not the same, it is likely that data connections with passwords will fail. This is because passwords are saved in the repository database with encryption. That encryption is based on a hash from the certs. When the Qlik Sense self-signed cert is rebuilt, this hash is no longer valid, and so the saved data connection passwords will fail. You will need to re-enter the passwords in each data connection and save. This can be done in the QMC -> DataConnections.
Do not forget to turn off your old Qlik Sense Environment. As per your license agreement, you can only use one license per active Qlik Sense environment. Reach out to your account manager for more details.
Finally, don’t forget to apply best practices in your new environment:
Thank you for reading my blog post and I really hope it helps you. This is the first part of a post covering multiple migration scenarios. Coming soon, I will explain how to migrate your PostgreSQL Database from the bundled Qlik Sense Repository Database to a dedicated PostgreSQL Instance.
I’ll be watching for your questions, feedback or suggestions so please comment and share (and like if you liked 😊)!