How can I move the JIRA database to a new server?

Dave Forgac May 17, 2012

We have a JIRA 4.4.4 installation and are trying to move the (Oracle) database from one host to another. We have copied the database to the new system with the only difference being the character set used.

Old database server charset: US7ASCII

New database server charset: WE8ISO8859P

All credentials and other settings remain the same. I have stopped JIRA, updated the connection string hostname in the JIRA-HOME/dbconfig.xml, and restarted JIRA. The web interface is now prompting me with the initial setup wizard:

Step 2 of 4: Application properties

Existing data? If you have already setup JIRA before, you can import your existing data instead of running the setup wizard again.

Automated backups, attachments, and indexes will be placed beneath your home directory:

If I click the link to 'import your existing data' I get a new page:

Import Existing Data

This setup page is to import existing data from another JIRA installation. If you have not yet setup JIRA, please use the Setup Wizard
File name required
Enter a filename to import data from.

I don't have an exported file from which to import so I can't continue. I've stopped JIRA, set the connection string back, and restarted. It is now working normally as before.

Do I need to export configuration data before changing the database hosts or is there another step I'm missing in performing the migration?

Edit:

Here are the interesting portions of the log from startup. Note that startup / database checks are fine and then the first ERROR references "nullplugins/atlassian-subversion-revisions" which seems invalid. Even if that path were valid, JIRA should have write permissions to create the directory. Also note after the web interface has started it shows "JIRA not setup yet":

[ .. ]

2012-05-18 15:13:14,686 main INFO      [atlassian.jira.startup.JiraStartupLogger] Running JIRA startup checks.
2012-05-18 15:13:14,715 main INFO      [atlassian.jira.startup.JiraHomeStartupCheck] The jira.home directory '/opt/atlassian/application-data/jira' is validated and locked for exclusive use by this instance.
2012-05-18 15:13:14,716 main INFO      [atlassian.jira.startup.JiraStartupLogger] JIRA pre-database startup checks completed successfully.
2012-05-18 15:13:14,894 main INFO      [jira.config.database.SystemTenantDatabaseConfigurationLoader] Reading database configuration from /opt/atlassian/application-data/jira/dbconfig.xml
2012-05-18 15:13:14,967 main INFO      [jira.config.database.DatabaseConfigurationManagerImpl] Now running Database Checklist Launcher
2012-05-18 15:13:18,686 main INFO      [atlassian.jira.startup.DatabaseChecklistLauncher] JIRA database startup checks completed successfully.
2012-05-18 15:13:18,687 main INFO      [jira.config.database.DatabaseConfigurationManagerImpl] Now running Post database-configuration launchers
2012-05-18 15:13:19,931 main INFO      [jira.config.database.SystemTenantDatabaseConfigurationLoader] Reading database configuration from /opt/atlassian/application-data/jira/dbconfig.xml
2012-05-18 15:13:21,184 main INFO      [atlassian.jira.startup.DatabaseLauncher] Database transactions enabled: true
2012-05-18 15:13:21,185 main INFO      [atlassian.jira.startup.DatabaseLauncher] Using JIRA's default for database transaction isolation level: 2
2012-05-18 15:13:21,186 main INFO      [atlassian.jira.startup.JiraStartupLogger]

Database configuration OK

___ Database Configuration _________________

     Loading entityengine.xml from                 : file:/opt/atlassian/atlassian-jira-4.4.4-standalone/atlassian-jira/WEB-INF/classes/entityengine.xml
     Entity model field type name                  : oracle10g
     Entity model schema name                      :
     Database Version                              : Oracle - Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
                                                     With the Partitioning, OLAP, Data Mining and Real Application Testing options
     Database Driver                               : Oracle JDBC driver - 11.2.0.1.0
     Database URL                                  : jdbc:oracle:thin:@db.example.com:1521:dbname
     Database JDBC config                          : oracle10g jdbc:oracle:thin:@db.example.com:1521:dbname

2012-05-18 15:13:22,022 main INFO      [atlassian.jira.startup.JiraStartupLogger]

___ Starting the JIRA Plugin System _________________

2012-05-18 15:13:22,023 main INFO      [atlassian.plugin.manager.DefaultPluginManager] Initialising the plugin system
2012-05-18 15:13:34,764 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/activeobjects-jira-spi-0.17.2.6.jar (1322454302000) created
2012-05-18 15:13:34,769 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/activeobjects-plugin-0.17.2.6.jar (1322454300000) created
2012-05-18 15:13:35,102 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/applinks-plugin-3.5.6.jar (1322454300000) created
2012-05-18 15:13:35,110 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/atlassian-feedback-plugin-1.0.9.jar (1322454300000) created
2012-05-18 15:13:35,126 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/atlassian-gadgets-dashboard-plugin-3.1.12.jar (1322454300000) created
2012-05-18 15:13:35,133 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/atlassian-gadgets-directory-plugin-3.1.12.jar (1322454302000) created
2012-05-18 15:13:35,139 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/atlassian-gadgets-embedded-plugin-3.1.12.jar (1322454302000) created
2012-05-18 15:13:35,145 main INFO      [atlassian.plugin.loaders.ScanningPluginLoader] Plugin Unit: /opt/atlassian/application-data/jira/plugins/.bundled-plugins/atlassian-gadgets-oauth-service-provider-plugin-3.1.12.jar (1322454302000) created

[ .. ]

___ Plugin System Started _________________

2012-05-18 15:14:14,178 main WARN      [atlassian.jira.util.LuceneUtils] Directory nullplugins/atlassian-subversion-revisions does not exist - perhaps it was deleted?  Creating..
2012-05-18 15:14:14,178 main WARN      [atlassian.jira.util.LuceneUtils] Directory nullplugins/atlassian-subversion-revisions could not be created.  Aborting index creation
2012-05-18 15:14:14,179 main ERROR      [atlassian.jira.util.LuceneUtils] Problem with path nullplugins/atlassian-subversion-revisions: Could not create directory: nullplugins/atlassian-subversion-revisions
java.io.IOException: Could not create directory: nullplugins/atlassian-subversion-revisions
        at com.atlassian.jira.util.LuceneUtils.createDirRobust(LuceneUtils.java:108)
        at com.atlassian.jira.util.LuceneUtils.getIndexWriter(LuceneUtils.java:78)
        at com.atlassian.jira.plugin.ext.subversion.revisions.DefaultLuceneIndexAccessor.getIndexWriter(DefaultLuceneIndexAccessor.java:24)
        at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.createIndexIfNeeded(RevisionIndexer.java:139)
        at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.start(RevisionIndexer.java:114)
        at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.startRevisionIndexer(MultipleSubversionRepositoryManagerImpl.java:275)
        at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.start(MultipleSubversionRepositoryManagerImpl.java:284)
        at com.atlassian.jira.ComponentManager.startPluginSystem(ComponentManager.java:278)
        at com.atlassian.jira.ComponentManager.quickStart(ComponentManager.java:235)
        at com.atlassian.jira.ComponentManager.start(ComponentManager.java:220)
        at com.atlassian.jira.upgrade.PluginSystemLauncher.start(PluginSystemLauncher.java:23)
        at com.atlassian.jira.startup.DefaultJiraLauncher$3.run(DefaultJiraLauncher.java:101)
        at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.doNowOrEnqueue(DatabaseConfigurationManagerImpl.java:250)

[ .. ]

2012-05-18 15:14:15,437 main INFO      [atlassian.jira.startup.JiraStartupLogger]

********************************************************************************
JIRA 4.4.4 build: 664 started. You can now access JIRA through your web browser.
********************************************************************************

2012-05-18 15:14:15,490 main INFO      [atlassian.jira.scheduler.JiraSchedulerLauncher] JIRA Scheduler not started: JIRA not setup yet.
2012-05-18 15:14:17,376 Modification Check:thread-1 INFO      [atlassian.jira.startup.JiraStartupLogger]

2 answers

1 accepted

0 votes
Answer accepted
Dave Forgac May 21, 2012

Well it turns out the database copy wasn't actually complete. It was missing data and therefore JIRA saw it as a new installation.

Morly of the story: validate your database copies...

0 votes
parthiban subramaniam
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 17, 2012

There should be an explanation in the logs

charset change sometimes messes up the data check the logs to see any obvious erros

Dave Forgac May 18, 2012

I've added log excerpts but they don't really give much indication of what the problem actually is.

Suggest an answer

Log in or Sign up to answer