Backup, High Availability and Disaster Recovery in Jira Data Center

Hello Atlassian Community!

It is important to have a business continuity strategy for applications running in your Organization. Systematic plan roads to the application running with minimal downtime and your users happily using the application with no issues.

In this article, let's have a look at how backup, high availability, and disaster recovery can be managed for Jira Data Center.

The backup strategy is handled depending on the instance size.

Here's a quick overview of the documentation on the Jira Server/Data Center sizing guide
https://confluence.atlassian.com/jirakb/jira-server-sizing-guide-975033809.html
https://confluence.atlassian.com/enterprise/jira-data-center-size-profiles-955171062.html

Backup options goes like this,

1. If the instance is considerably small in size

  • Going for Automatic backup may the suitable option, here XML backup which contains backup data is taken at regular intervals.
  • Along with this, we have to take a backup of the data directory from the Jira home directory for attachments.
  • While restoring the instance, we do the System import, and restoring the data directory would take the instance at the point in time where we took the XML backup.
  • The first time Jira starts, we have to do the full indexing since there will be no Lucene index stored or we have the option of restoring indexes.

You can enable automatic backup of your instance to take XML backup.
The documentation to enable automatic backup is here. Remember to backup the data directory.

Atlassian recommends the second backup method over the first one since it is not guaranteed to be consistent as the database may be updated during the backup process.
Native database backup tools offer a much more consistent and reliable means of storing (and restoring) data while Jira is active.

2. If the instance is medium, large, or enterprise in size

  • To backup the database, use the native database backup tool to have point in time backup of Jira DB.
  • Have the home directory backup (particularly the data directory for attachments and caches directory for index).
  • There may be a scenario, you may have changed Jira files in the installation directory (server.xml, VM files, etc.). In this case, have a backup of the modified files in the installation directory.

When we talk about High Availability for Jira, we are focusing on the availability of Jira by eliminating failure modes via redundancy.
Well, the business requirements in your organization decide whether to have a high availability solution for Jira.
The approach depends on the cloud platform you are on, the architecture you are building.
The basic thing is that you have active clustering when you setup Data Center, automatic failover is also available in Jira Data Center.

Follow this guide to know more about High Availability here.

Disaster Recovery in Jira

If you need to have business continuity, you need to have a better plan for disaster recovery.
Atlassian has its way in Jira, let's look at that briefly on how to achieve it and have everything ready in place if something were to go down in primary how to bring up the secondary instance running.

Let's understand this by example
Jira Data Center is installed with two nodes, Postgres DB, Shared NFS. Let's call this primary.
We are planning to have the secondary instance as part disaster recovery plan.

The main components that need to considered in the Disaster Recovery plan are:
The secondary instance needs to have the same version of Jira as the primary.
The database in the secondary instance should be replicated with the primary instance.
The Shared NFS directory should be synced with the secondary instance.

While we have the Jira Data Center installed in the secondary instance, have the jira-config.properties file in the home directory and set the following property.
disaster.recovery=true

Implementing database replication to the secondary instance is a crucial step.
While Cloud platforms have their native service to have the data replication to another database, if you setup database manually please checkout the documentation of the respective database on how to replicate dB to secondary instance.

Although it's recommended to have replication of NFS sharedhome directory to secondary, you can manage replication of files to secondary instance.
Set jira.secondary.home (replication folder) in jira-config.properties file and rest, Jira takes care of the replication.

Failover is not a long process from here.
We have to shutdown the primary and bring up the secondary by following the guide here.

You may want to return to the primary once all the things are in place.

Well, that's for the business continuity strategies in Jira. I hope you have got an idea of how you may want to proceed with your current instance for the explained strategies. Please share your thoughts in the comments.

Thanks,
Pramodh

2 comments

Taranjeet Singh
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 11, 2021

Thanks @Pramodh M for sharing this great an knowledgeable article! This provides a good start for teams that need to set up backups and disaster recovery for their Jira DC instances.

victor.martinez August 22, 2022

to be it easier to get the jira backup from the server https://jira.atlassian.com/browse/JRASERVER-74216

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events