Disaster recovery planning for Qlik Sense Enterprise
Qlik Sense Enterprise (QSE) is an integral part of day-to-day operations, which means organizations need a good QSE disaster recovery plan.
A good disaster recovery plan would include the following types of activities:
- Multiple time-based backups with multiple retention periods
- Plan for alternate recovery hardware or VM hosting
- Periodic testing of recovery plan
For QSE, your plan should encompass multiple recovery options. Having object level backups allows for recovering individual apps or objects where that can be difficult if you just have environment level backups.
Sometimes with only environment level backups, it would take more time to recover lost work than it would take to manually re-create the work.
Here is what your QSE recovery plan should include:
Virtual machine snapshots (if a VM)
If you are running Qlik Sense as a virtual machine, a great place to start is by making virtual machine backups (aka snapshots) and storing them redundantly and for multiple time periods. This approach will help you quickly if the server has an operating system or Qlik Sense software / technical issue. Rolling back to an earlier version of the server can be a quick way to recover.
Since sometimes you may need to go back further to solve a technical issue with the environment, it is good to pair this with additional approaches below.
Backup of repository database (Postgres)
Qlik Sense stores all server settings, information about apps, users, user created content (sheets, stories, bookmarks, etc.) in a Postgres database. By default, that database is on the central node of a Qlik Sense environment. This database is integral to the operation of Qlik Sense and needs to be backed up.
Backup of repository share
In addition to the repository database, Qlik stores the actual applications with the data as QVF files in the repository file Share. There are also additional files and data in there that should be backed up for easy retrieval as well.
Backup of log data
In addition to the Repository database, Qlik stores all the log data. The log data provides the mechanism to see license usage, application usage and server performance over time. This is often very useful for organizations.
Application backups, source control
In addition to backing up all the data in aggregate, individual applications also be backed up and archived. Although this can be done manually, an automated approach is better. Both QSE on Windows and SaaS have APIs that allow the exporting of applications and a solution can be built to provide this capability.
For QSE Windows, a source control system can be used to version applications on a schedule or automatically.
In addition, a source control system can include User Objects (Sheets, Stories and Bookmarks) in the versioning allowing easy rollback or recovery of deleted / changed objects.
Options for application backups / source control by environment
Description | QSE Windows | Check | Notes |
---|---|---|---|
Manual (user) export of applications |
✓ |
✓ | Requires diligence to maintain |
API automation of application exports | ✓ | ✓ | Requires programming to integrate to API and export applications (QVFs) to storage location |
Source control | ✓ | N/A | Commercial solution providing source control for QSE on Windows |
Export of user objects (sheets / bookmarks, stories) | ✓ | ✓ | Requires programming to integrate to API and export applications (QVFs) to storage location |
Testing the recovery plan
A disaster recovery plan is important but testing and practicing a recovery plan with multiple scenarios is crucial. In addition, you should plan on testing at least once a year and every time you implement a new version.
During a disaster is the wrong time to find out that backups weren’t being done correctly or be figuring out the steps for recovery and that something is missing.
How Wipfli can help
Our Wipfli Digital team has years of experience with Qlik and disaster recovery plans. Learn more on our digital services web page or check out these additional resources: