Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE

STT - Migrating Qlik Sense Client-Managed

cancel
Showing results for 
Search instead for 
Did you mean: 
Troy_Raney
Digital Support
Digital Support

STT - Migrating Qlik Sense Client-Managed

Last Update:

Apr 19, 2024 5:12:51 AM

Updated By:

Troy_Raney

Created date:

Apr 19, 2024 5:12:51 AM

Environment

  • Qlik Sense Enterprise on Windows

 

Transcript

Hello everyone and welcome to the April edition of Techspert Talks. I'm Troy Raney and I'll be your host for today's session. Today's presentation is Migrating Qlik Sense Client-Managed with our own Sebastian Linser. Sebastian, why don't you tell us a little bit about yourself?
Hello, my name is Sebastian Linser. I'm a Principal Technical Engineer at Qlik Support. My main focus there is Qlik Sense Client-Managed, and I have been around with Qlik Support for 7 years now.
Great. Today Sebastian is going to be talking us through the whole process from start to finish when it comes to migrating Qlik Sense implementations from one environment to another; we're going to go through the whole backup process; he's going to demo that migration process; we're going to talk about certificates and highlight some best practices and things to be aware of. Sebastian, what are we going to be demonstrating today in detail?
So, we want to demonstrate how you migrate a Qlik Sense Client-Managed installation from one PC to another. So, in our case we have the scenario that we have a physical machine we need to get rid of; and we need to put it on a virtualized machine.
Okay, and we're going from the same operating system in both machines?
Yes, in our case Windows Server 2019.
So, basically when everything is finished; we should have the same apps, same tasks, everything running, but on different Hardware once we get finished?
Yes, that's the idea.
Great, can you share a little bit about your setup?
Yeah, I do have a Stand-Alone database on a server called Qlik Server 3 you can see it here in the Services list. We do have a PostgreSQL Service. Right now it's PostgreSQL 14.
Okay. So, this is the Repository Database storing all the settings for this implementation; and it's on its own machine?
Exactly, when we check in PgAdmin, the standard Qlik Sense databases: Licenses, QSMQ, QSR, and Sense Services exist; and we can also see that we have the standard user Qlik Sense Repository down here.
Okay, and that's pretty much staying the same right?
Yes, we will still stay in 14, but we have to do some minor adjustments to the database which I will talk about later.
Okay. So, where do we start with this whole migration process?
We start by connecting to the Central Node. I only have a one node system here.
Okay. So, this is the physical machine where we're starting from?
Yes, this here is our Central Node. I have one app and I have the monitoring apps. So, it's not…
Yeah, pretty simple implementation, but that's fine for demo purposes.
And we are on the February 2024 initial release.
All right.
When we scroll down here to Service cluster, we do have a share which basically serves Share for Qlik Sense.
Okay. So, the apps and log files are in a separate machine in a share drive and they're staying put?
Exactly.
Now what are the requirements for the machine will be migrating to?
You have to make sure you fit all the requirement checks: Windows Server 2016, 19, or 22. You can use Windows 10 and 11, but it's not recommended to use in-production.
And that's really just because it hasn't been thoroughly tested yet, right?
Yes.
Okay.
The processor Supporting AVX, at least if you want to use natural language.
Right.
At least 5 Gb of disc space; while I would say you should have more than 5 free before…
Yeah, bare minimum.
An SMB share. Important .NET 4.8.
With .NET can't you just have a later version installed instead?
You can have this installed as well, but you do need to install 4.8.
Right.
It will not work if you only install 6. It's okay to have multiple .NET versions.
Yeah.
You see, we used a 14 database on the second server.
Right.
We would also be able to use a 13 or 12 if we have it as a Stand-Alone, but you should not use the 12.5 bundled anymore, because it has a couple of security vulnerabilities which you want to upgrade away from.
Yeah, there's a lot of material out there about that.
And important is: there is no Internet Explorer Support anymore.
Oh yeah, TLS.
TLS is at the moment at 1.2. So, if you have Windows Server 2022, and you could potentially enable TLS 1.3; for the moment please do not. It's not yet fully TLS 1.3 compliant.
Oh it's good to be aware of. All right. So, assuming we've got all those prerequisites taken care of (especially making sure we got .NET 4.8 installed; what is the first step?
So, the first step now is to shut down Qlik Sense. I have a Stand-Alone system. So, I do not have the Qlik Sense Repository Database Service, my database is on Qlik Server 3; then we have the Service Dispatcher, which we need to stop at the end.
Okay, now the Qlik Sense is stopped is it time to back up?
Yes, up first, we open the MMC to back up our certificates. We click here on File add/remove snap-in: certificates: add my user account. So, you want to be logged in as the Service user and then you want to get the personal account of the Service user, plus the computer account.
Ah. Okay.
If this point here have any restrictions, then please ask your IT to help you out.
Just want to clarify: the Service user is the account that's actually running the Qlik Sense Services right?
Yes, and you can see it here. So, if you double-click on the Service, and you go on the log-on tab; you can find..
There it is.
And we are logged in as domain administrator. So, so now we do have the Qlik client certificate on the current user personal certificates. We would right-click: all tasks: Export. We say “Yes,” with the private key, then all extended properties. We don't need the certification pass; next; we set a password.
This is a password just for the exported package?
That is just for the key, so that not everybody can just import the key again. Then put it on the desktop; and now we call this one: Current User Qlik Client.
That's a good practice. So, you know where to import it again.
Now we need to go to local computer; and all Qlik issued certificates are issued by your server name under the installation minus CA at the end.
Cool.
So, here we have two: we have Qlik Server 1 and Qlik Service Cluster; and Export it with all the properties.
Okay, password again, now…
You're just creating a password when you type that in?
Yes, I use 1-2-3 for simplicity here. So, we call this one here: local computer personal Server.
Okay.
Finish.
And I see: just repeat the process for all those Qlik certificates?
Yes. This cluster.
All right.
And now there is one more which is under Trusted Root. You just press the letter of the server name, like in my case it's Q and you jump right into the list.
Okay.
You see that this one has a private key attached. In front, we have this little key icon. So, we do want to have the private key exported here as well.
These check boxes are really critical.
Call Trusted Root. So, we are done for the MMC part here.
All right, we've got all the certificates exported; what's next?
Next if you have your Qlik Share locally on the disc, you would back up this one and move it over to the new machine in our case we have an external. So, we can skip that step. Then we have the database.
Yeah, we've got those four databases: Licenses, QSMQ, QSR, and Sense Services. What does the documentation say about this?
We see here we would take a backup of all the databases we have for that installation.
Okay, this is listing all these commands to run through a command prompt?
Yes. So, if you would have the Embedded Database, you would run it from Program Files > Qlik Sense Repository > PostgreSQL. If you have as me a Stand-Alone database, then it's usually wherever you have installed it. So, the standard is Program Files > PostgreSQL and database version and Bin. You can copy the file path.
Great.
Open a CMD prompt as admin; CD that; and now the first database is to dump the QSR. Export the QSR database; the user for the export will be PostgreSQL. So, we have to enter the PostgreSQL password; and then the file QSR backup should be created in the C drive.
And there it is. So, just repeat for all the databases using the commands from the documentation. Is there a simpler method?
Yes, if you do have a Stand-Alone database, you have a second way. You go into properties here; and you just rename to Licenses2; QSMQ2.
Okay. So, by renaming you're basically breaking the connection to the old system.
So, I will create fresh databases right after that step. Installation on the second machine into a fresh database; and at the end, I just rename. So, the new system will talk to the old databases; but I skipped the whole import/export set.
Oh, this definitely seems like a easier way to do it.
The first database called Licenses; and then select the user Qlik Sense Repository; we go to the definition here. It's important to select Template0. We now repeat this step for all the other databases: QSMQ, Qlik Sense Repository. The Qlik Sense installer will not create databases in the stand alone instance.
Ah.
If you are Stand-Alone, you have to create those databases up front, and that is why we walk through that process together.
Okay. So, you’re just creating databases with the exact same name?
Exactly, now we have have completely fresh databases set up.
Great, what's the name of the machine in our new environment?
So, that one is a complete fresh machine: Qlik Server 2. We have to start with the MMC. So, right now we're on the new server where we don't have any certificate yet; but we need to restore the certificates before we install so that it uses those certificates during the installation.
Okay. So, that's the first step before we even install?
Yes.
So, the plan then is to take all those certificates that you exported previously and import them to this machine?
Yes, we go to current user – personal, and we import the certificate now. We browse in SenseCert; we have to change this here to PFX; and then we see here current user Qlik clients. So, we open this one up. Now it gets important. You type the password; you do not check the Enable Strong Key Protection feature. You need to check the box Mark this Key as Exportable; and you want to include all the extended properties. Next, already in this store, and we select Finish.
All right.
See now, it created certificates; and we do have a Qlik client; it will still say Qlik Server 1 which is normal because we import the old certificate from the old server even if we are now on Qlik Server 2.
Okay.
Now we go to the local computer – personal; and we do the same thing: import; PFX; say it should be exportable; finish. We can check now: we have the Qlik Service cluster; and we take one more. So, now when we double-click on one of those certificates, we see: yes, it has the private key, but it says: I don't have enough information to verify this certificate. And, yes, the certificate pass isn't there because we didn't put the root certificate yet. So, we go to Trusted Root.
Okay.
Certificates > right-click here; all tasks; import; PFX; Trusted Root. Same drill here; and Finish. Refresh once, in this list we do have the Qlik Server 1.
So, now I guess we get the installer from Qlik Community > product downloads page?
Yeah, we can say latest release and patch; and we know that we need February ’24; Qlik Sense Enterprise on Windows; we have the setup exe, and the last patch. Now we have downloaded our files. Make sure that the unblock box is checked; every time it comes from the internet, you might see the unblock, you might not see; it it's depending on your IT policies. You right-click here, and you say Run as an administrator. We will on purpose, open Task Manager just just to show there is really no Qlik Service installed here on this machine.
Okay.
We always get those kind of warnings messages: your MMC is open, your Task Manager is open, please close it before proceeding. We close the MMC, the warnings go away. You can now; sometimes it still says it's running, then the trick there is: you check here the users tab and you might see another user logged-on on the server.
Okay, good thing to be aware of.
Okay, we close the Task Manager now again, and we hit Next; Install; accept the license agreement; since we're installing a new Central Node, we create lust we leave the name as it is: Qlik Server 2 domain local.
And is that just the name of the machine?
Yes, that's the name of the machine. We do have the option to get a new database created; that would be the Embedded Database option.
Okay.
And we have the second option: to connect to an existing database. Since we know our databases on Qlik Server 3, we use that option; standard port for Qlik Sense: 4432 or whatever your admin tells you; you can change it too. Database user; password…
That all important password.
Now it will try to connect to the databases; as you see, it could. If it couldn't connect or one of the databases here would be missing; you would get an error message.
Okay, but it actually created a connection to those fresh new databas that you created yourself with exact names.
Exactly.
Okay.
In this one here, you have a couple of additional settings; leave them default; point to the root folder; in our case, we make it simple: the root folder never changed; which is the root folder: apps, archived logs, and Static; and if we go from this machine to that one: they are here. They will not be overwritten during the installation so all your apps be the same after the installation.
Is that a good step, to kind of try to navigate to that location from this machine just to make sure?
Yeah, test in this up front given again you're logged in with the Service user is able to access the share from that server you are currently on.
Okay.
Now you choose the installation folder; and now because we are migrating, we are unchecking this box. We want to change back to the other databases; and we hit Next. And we will get the Bundles customer agreement again; and we hit Install.
So, once this is finished, we still need to run that bootstrap command that changes the names from the old server name to the new one?
Yeah.
And test everything out. I like how it tells you what it's doing.
All right, we are installed.
Good.
And you set it to leave the Services unstarted. So, everything is just waiting, what do we need to do next?
And the next step is to go back to the database machine. The QSR database is basically still empty because Qlik Sense hasn't started up while 2 which is our old database that actually has all those those tables already.
Okay. So, we still need to take that step of restoring the old database to the new system?
Exactly, now we rename this one to license one and now you see why I choose the two before. So, I can keep them apart but now we go back to the databases with number two and just rename those back to the original name you could of course also delete the databases and rename them I keep them here simply because of roll backck purposes that's a.
Great, tip I definitely believe in renaming instead of deleting is it time to start up the Services on our new machine we need to start the first one which is the click Send Service Dispatcher and that one is the foundation for the Repository to fully start up. So, once that is done we open a CMD prompt as admin we need to navigate to a specific folder and here we need to have the Repository EXA which is this one.
Okay, okay copy that folder go back to the command promt paste all right. So, we're in that directory what are we going to be doing here?
Yes, we are going to do a backup restore procedure if we scroll do something if your machine has a different host name in our case we had Qlik Server 1 and now we have Qlik Server 2.
Okay. So, we have to go in and change the host name and all these settings and it says here restore the certificates to security Qlik Sense Services we did that.
Okay, install Qlik Sense on the computer we did that too start the Repository Service database in our case we have a Stand-Alone database. So, that is already done. So, which Step are we on there is this tiny bootstrap command oh and step seven.
Okay. So, we copy this one and we paste it here you will see it immediately goes away but then it should usually come back setting up all the certificates to all the correct ports and. So, on all right. So, that's going through and adjusting the certificates adjusting entries in the database as well?
Yes, it said Qlik Server 1 it's replacing it with Qlik Server 2 yeah. So, in this case here close that window we restart the Service Dispatcher once to get the new certificate in place. So, can you clarify for me again what we're checking here the bootstrap command changed the name of the certificate now to Qlik Server 2 is now it does it is Qlik Server 2 issued by Qlik Server 1 now we start the Repository as a Service we can also start the other Services as a Service is it important to start the Repository first?
Yes, the Repository is the base Service for all the others now the important thing is to watch that lock file system Repository I see it has a error contact in the license server well in that case we first need to see if the license Service actually started up it's always the one with the later time stem. So, in this case that one it is actually started up to listen on Port 92900 but it cannot communicate with the Repository Service this is actually kind of.
Great, we get to see how you would troubleshoot this. So, you're opening up net stat to check the ports first I want to see is Port 9,200 up and that one is then I want to see is Port 42 42 up and that one is not. So, there's some issue with the Repository then?
Yes, one of the reasons. So, would you just restart it or what would you try that's a good question we can try to stop it in any case we should have a look at firewall settings firewall is off. So, that it's not an issue.
Okay, then the de here is most likely our problem we did had one Repository Service still running and that might have been our command line oh?
Yeah, mode. So, now let's start this one again there we go. So, now 4242 is working at least sending something to it but we still need to see if this thing starts up. So, we need to go back to the Repository system lock H keep ret trying. So, let's see we all right. So, we restart the Dispatcher Service that tries to create that connection to licensing server and check the log.
All right, we got a new log file listening on 9200 and we see now all the files with the data left. So, the restart of the Service Dispatcher actually fixed it the thing is started up now it actually says I cannot get the other Services is it not started correct and what we also can see is we see startup phase completed which is thing we want to see. So, now back to Services we start all the other Services up.
Okay. So, the cause of this issue in this case was a command prompt that was keeping the Repository Service open and once we stopped that and restarted the Service Dispatcher things started to work as expected?
Exactly, and we might have to press control C and just closing the command prompt might have been holding back something for the license Service to restart now we should have a couple of Qlik Sense icons and we could for example open the Management console we should be able to use the same user as before domain administrator this it looking good. So, far this is working. So, we see Qlik Sense February is up the app list should show the app test one.
All right, the same apps we had on the previous environment that's good now go to the hub we have test one and we had the monitoring apps that's?
Exactly, as we had it before and we can open this app which means our engine is working.
All right, that seems like a successful migration. So, what you now start this data load you check are my data connections all still well it and working are tasks working or do I get failed tasks and I have to invest why is this not working on the new machine M reasons for that is for example obbc drivers which you had on the old server which you didn't install yet on the new server but the app itself tries to connect to a standard obbc driver?
Yeah, there could certainly be a few more details specific to each environment but now let's move on to Q&A please submit your questions to the Q&A panel on the left hand side of your on24 console we've already got a few questions coming in I'll just read them from the top.
All right, first question: after a migration, if work is accidentally continued on the old system, is there a way to migrate the additional work from the old environment to the new one or what issues might that cause?
It could potentially cause some issues if they used an Embedded Database with Qlik Sense.
Okay, you would have the database on the same machine as Qlik Sense is installed and then we would have one database on Qlik Server 1 and a second database on Qlik Server 2 in our case here we have both servers connecting to the database in Qlik Server 3 that's right it's a Stand-Alone.
Yes, you would get other problems because you potentially can't even start up. So, they would have to remigrate the database.
Okay, All right, next question: is it possible to export and import multiple apps at once?
Yeah, import is I think still one by one.
Cool, could you show us where to do that?
We do go to apps and now you see you have a couple of them. So, we can just go here then we say more actions export export with data and Export.
Okay. So, it's exporting all those apps you had highlighted in one bulk run?
Yes, it just puts them in a folder you see the folder displayed here C program data Qlik Sense Repository Export. You see that was the export I started and here are all my apps.
Very cool. Well, next question: how to apply a patch? Is this necessary on every node?
Of course, if you have a multinode system you do need to apply a patch on every node. So, your first step here is shut down all the end Services it makes installation of the patch much easier I have prepared here a little Qlik Sense update. So, we can run this one as administrator which is the February 2024 patch 2 update and here we are patch successfully applied. Now we need to wait a little bit again and then we should be able to open the QMC. that was a pretty simple process here we are now put your eyes on the bottom right click since February 2024 PCH two.
Great, well that was a pretty simple process and we need to repeat that for every node in a multi-node system?
Yes,.
All right, well let's move on to the next question: what if we need to upgrade Qlik Sense as well? Should we migrate first and then upgrade or should we upgrade first and then migrate?
That's an interesting question of course that might come up you have to stay in certain boundaries never go from a four-year-old Qlik Sense release to the latest one but if you are one year back for example you want to migrate from February 2023 to February 2024 that is possible installing directly February 2024 and then just putting the database from February 2023 back just make sure never started up at the beginning that's the most important step to check the box of do not start the Services after the installation.
Okay, it's nice to know that that's possible but for best practice would you suggest migrating first and then upgrading?
Yeah, I would go to the same version and then upgrade slowly to the next one.
Great,.
All right, move on to the next question: what are the prerequisites to migrate an app from On-Prem to Qlik Cloud?
Okay, for this we just open the QMC up again. If you have a signed license key and we do have one in our system mhm then you can set up a cloud deployment. So, you have here the option Cloud distribution you will not get this if you have a left in control number then you just simply don't see this option.
Okay, in this setup you can add your Cloud tenant if you have one if not you can talk to your account manager.
Okay, some distribution policies and you can then have a look at all the apps which are already in the cloud. So, basically the the simplest rule is everything which get reloaded On-Prem and is published you would push in a copy to the Cloud as well ah and then in your Cloud tenant you can assign some rules to say that this app always goes in a specific space for consumption your users every time. So, usually you would need some Cloud accessible data sources to reload your apps in the Cloud or you play around with Qlik Gateway but the best approach here if you need to move your users over and you still have some data On-Prem and some may be already accessible from the Cloud system would be to reload On-Prem as much as you still need and then just publish this app for consumption to the Cloud.
That's a good suggestion, I like that.
All right, next question: what about migrating our reloads and custom reloads?
Yes, the whole task list in our case it were the two operation monitors they will get automatically cuted over because that is all in the Q is all database.
Okay. So, that is part of what we did migrate?
Yes,.
Great, good to know.
Okay, next question: can we create a miror image of the Qlik Sense client manage machine as installed and working there and then reuse it on a new machine which is a newer version of Windows operating system or other new features?
Can you get more specific on the mirror image?
It seems like they're looking for just an exact copy of their implementation on a different operating system maybe to test it out.
I suppose the easiest way here would be if you take the QSR back up and then you put it on this new machine to test the behavior you can always do that you can then just apply a license on the new machine and you would be able to use that machine.
Okay. So, that's the real roadblock is the license for having two machines with the same license?
Exactly, there there's not an automated workflow to create a mirror image of the exact installation and then put it over to another machine you would still have to do the installation Step at some point and then move the database to the other machine.
Okay, next question: are monitoring apps fail to reload after migration any tips or suggestions that sounds like could be complicated.
It's a good question. So, let's go over the obvious points: you see in my case they just work mhm the reason here is in my data connections for monitor apps users is most likely the first one which comes up you have a very long connection Local Host is the machine name I use which works on every machine even though I have a different host name. Now you might not have specified localhost here you might have had Qlik Server 1. domain. local and…
the qualified domain name.
Yeah, down here in the in the proxy you would have the same in Qlik Server 1. domain. local in that case you would have simply to change this one to Qlik Server 2 since we migrated to Qlik Server 2 then you would take this whole string go back to the data connection you paste it in here now and you can hit apply. So, now we changed that connection.
So, that connection string in the the task that doesn't get updated with the bootstrap command?
That does not get updated because your data connections stay untouched.
Thank you. Okay, next question: how would this differ from moving from on Prem to an AWS machine. So, that would be?
Exactly, the same migration my system here is based on theend there for this demo. So,.
Okay, in AWS of course you have to spin up your machine first but other than that it's a Windows operating system and then you can dig in and install Qlik Sense on it.
Okay, next question: is there a similar process for migrating NPrinting? I guess a lot of customers that are On-Prem are certainly using NPrinting.
Let's ask the Oracle. NPrinting, this here backing up and restoring NPrinting that is most likely the one we want to have.
Okay.
Here are much more restrictions: NPrinting can only be restored in the exact same version and if you wanted to migrate you must follow the instructions on on upgrading.
I'll be sure to include these links because this is good documentation.
All right, we have time for one last question: is there a different process for migrating our Web Connectors QWC?
That's a good question they worked really hard to get most of the web connectors now included inside Qlik Sense itself. So, before you might have used the click web connectors different tool than Qlik Sense but nowadays you have the web connector list for SharePoint click cloud storage S3 buckets and Dropbox on that side side and you also can access the metadata storage from S3 buckets for example on the other side and most of the big query connectors and. So, on are now available inside the product itself. So,.
Okay. So, most of those things are actually built in now. So, if you're still using web connectors you're probably on an older system.
Or you have one specific connector which hasn't been ported yet. In this case, as simple as just installing up the web connectors in any case you have to install this one on the second system as well might be as simple as literally just replacing the config files.
Yeah, most of the settings are stored in deploy config which you can copy and replace.
Okay. Great, well Sebastian this has been really great. I hope this will be a good and valuable resource for people going forward when it comes time to migrate their implementation. I appreciate all the time you put into preparing this.
Thank you so much; and if there are any additional questions, feel free to reach out in the community like I will try to answer them as good as I can.
Thank you everyone. We hope you enjoyed this session. And thank you so much to Sebastian. We appreciate getting experts like Sebastian to share with us. Here's our legal disclaimer. And thank you once again. Have a great, rest of your day.

 

Contributors
Version history
Last update:
3 weeks ago
Updated by: