A simple step-by-step guide for JIRA Administrator on how to Migrate JIRA 7 (Server) with Oracle to JIRA 8 (data center) with SQL 2016.

In any migration process, first step is to identify and create a compatiblity matrix. We need JIRA 8 with SQL 2016, but SQL 2016 is not supported platform for JIRA 7. Hence, we need a middle-ground between JIRA 7 + Oracle and JIRA 8 + SQL 2016. Of course, you also need to check compatiblity of your existing add-ons. But in the below steps, I will take you through a migration process that is independent of add-ons. Add-ons can be and, according to me, should be installed once the JIRA application has been upgraded to desired version and that the data has been successfully imported too:

Application Database
JIRA 7.X Oracle
JIRA 7.X SQL 2012
JIRA 8.X SQL 2012
JIRA 8.X SQL 2016


So, the middle-ground is JIRA 7.X with SQL 2012.
Below are the steps:

  1. Export XML from JIRA 7 with Oracle
  2. Shutdown JIRA 7
  3. Install JIRA 7 with SQL 2012 on first instance (node1). Enter the data center license when prompted during the setup wizard.
  4. Import XML generated in Step 1
  5. Verify the imported data
  6. Once verified, upgrade JIRA to 8.x (using the installer)
  7. Start JIRA 8 (with SQL 2012 already in-place)
  8. Check if any issues during startup and verify the data
  9. Export XML from JIRA 8 with SQL 2012
  10. Shutdown JIRA 8
  11. Delete dbconfig.xml and start JIRA 8
  12. In the setup wizard, connect to SQL 2016
  13. Import the XML generated in step 9
  14. Verify the data (projects, issues, users, permissions, workflows, etc.)
  15. Setup a shared storage. Make sure that the directory can be read and written by both the nodes. Copy the following directories into mount location of shared storage (assuming this as locaiton: /data/jira/sharedhome):
    • data
    • plugins
    • logos
    • import
    • export
    • caches
  16. Create cluster.properties files in home directory
    # This ID must be unique across the cluster
    jira.node.id = node1
    # The location of the shared home directory for all JIRA nodes
    jira.shared.home = /data/jira/sharedhome


  17. Copy the installation & home directory from node1 to new instance (node2)
  18. Make changes to cluster.properties file (on node2) in home directory
  19. Copy attachments from JIRA 7 home directory to data directory in shared storage
  20. Start new node and monitor startup for any problems.
  21. That's it! Our data-center setup is ready.

Learnings:

  • Use the same service account on both the nodes. Usually, application is installed on 1 node and remaining nodes are cloned from it. After cloning, ensure that JIRA serivce is running with the same service account in the cloned environment. As best practice, just add the service account under 'Log on' for JIRA service.
  • Perform clone only after all the upgrades and imports are completed in first node.
  • Always take snapshots, so that you can always go back to a successful installation or import rather than starting from zero again.
  • Disable all emails while doing XML imports
  • Use UNC path for your storage location


Reference: