moving to a new server

My hosting provider has gone broke.

I need to move Jira+Crucible+PLugins and addons +... to a new home

Old home: Centos6 + Jira6.4.7 + MySQL

New home: I can choose what I want

The pressing factor is time. I don't have enough of that.

I am thinking:

  1. Build a new host. Keep everything at the current versions if possible. 
  2. Connect VPN to new host
  3. stop JIRA and MySQL
  4. Backup db, /opt/atlassian, ...
  5. Restore same
  6. Disconnect new host from internet to 'defang' it 
  7. Start db and JIRA
  8. Test from  VPN

 

My question: IF I am intentionally avoiding upgrades, will this approach work or ... work well-enough?

 

4 answers

1 accepted

Wow Nic, you are a ninja! I imagined I was all alone here.

My sequence was:

Notifcations off

start-jira.sh

checks: attachments OK, issue crate OK, add attachment, comment existing ticket (some things that require a DB write). Tailing the log - all ok except for warnings about mail being off

stop-jira.sh

vim setenv.sh (enable notifications)

start-jira.sh

errors.

Here is the top part:

at com.xiplink.jira.git.ao.dao.GitRepositoryDaoImpl.processAll(GitRepositoryDaoImpl.java:153)
    at com.xiplink.jira.git.MultipleGitRepositoryManagerImpl.loadGitManagersFromDatabase(MultipleGitRepositoryManagerImpl.java:143)
2016-01-26 22:17:22,883 localhost-startStop-1 WARN      [NoModule] Could not find JDBC driver class named com.mysql.jdbc.Driver.

2016-01-26 22:17:22,884 localhost-startStop-1 WARN      [NoModule] 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found from bundle [com.xiplink.jira.git.jira_git_plugin]
    at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:103)
    at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

The caused by

 

at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy2962.stream(Unknown Source)
    at com.xiplink.jira.git.ao.dao.GitRepositoryDaoImpl.processAll(GitRepositoryDaoImpl.java:153)
    at com.xiplink.jira.git.MultipleGitRepositoryManagerImpl.loadGitManagersFromDatabase(MultipleGitRepositoryManagerImpl.java:143)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772)
    at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73)
    at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:634)
    at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1594)

and the end

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy2962.stream(Unknown Source)
    at com.xiplink.jira.git.ao.dao.GitRepositoryDaoImpl.processAll(GitRepositoryDaoImpl.java:153)
2016-01-26 22:19:23,128 localhost-startStop-1 ERROR      [ofbiz.core.entity.ConnectionFactory] ******* ERROR: No database connection found for helperName "defaultDS"

Answers emails people who have participated smile

The problem you've got here appears to be from a git related plugin - https://marketplace.atlassian.com/plugins/com.xiplink.jira.git.jira_git_plugin/server/overview

It sounds like the rest of JIRA is working, so a quick test before we go off chasing the wrong thing down the wrong rabbit-hole...

Can you disable this plugin (not remove, just disable) and see if the errors go away?

Sorry to be dim, but I am not sure where to do that ... grepping ... googling

 

mv var/atlassian.../plugins/<blah>git<blah>.jar <blah>._disabled_jar_ ?

 

Trying that and a start-jira.sh now

 

Here is the quote from near the top of the log:

xom-*.jar
     user.country                                  : US
     user.dir                                      : /opt/atlassian/jira/bin
     user.home                                     : /home/jira
     user.language                                 : en
     user.name                                     : jira
     user.timezone                                 : Australia/Sydney

2016-01-26 22:37:59,693 localhost-startStop-1 INFO      [atlassian.jira.startup.JiraHomeStartupCheck] The jira.home directory '/var/atlassian/application-data/jeenee-jira' is validated and locked for exclusive use by this instance.
2016-01-26 22:37:59,702 localhost-startStop-1 INFO      [jira.config.database.SystemDatabaseConfigurationLoader] Reading database configuration from /var/atlassian/application-data/jeenee-jira/dbconfig.xml
2016-01-26 22:37:59,815 localhost-startStop-1 INFO      [atlassian.jira.startup.JiraStartupLogger] Running JIRA startup checks.
2016-01-26 22:37:59,815 localhost-startStop-1 INFO      [atlassian.jira.startup.JiraStartupLogger] JIRA pre-database startup checks completed successfully.
2016-01-26 22:38:00,646 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Product Name is MySQL
2016-01-26 22:38:00,647 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Product Version is 5.1.73
2016-01-26 22:38:00,647 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Driver Name is MySQL Connector Java
2016-01-26 22:38:00,647 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Driver Version is mysql-connector-java-5.1.26 ( Revision: ${bzr.revision-id} )
2016-01-26 22:38:01,609 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Product Name is MySQL
2016-01-26 22:38:01,609 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Product Version is 5.1.73
2016-01-26 22:38:01,609 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Driver Name is MySQL Connector Java
2016-01-26 22:38:01,609 localhost-startStop-1 INFO      [core.entity.jdbc.DatabaseUtil] Database Driver Version is mysql-connector-java-5.1.26 ( Revision: ${bzr.revision-id} )
2016-01-26 22:38:02,393 localhost-startStop-1 INFO      [jira.config.database.DatabaseConfigurationManagerImpl] Now running Database Checklist Launcher
2016-01-26 22:38:03,628 localhost-startStop-1 INFO      [atlassian.jira.startup.DatabaseChecklistLauncher] JIRA database startup checks completed successfully.
2016-01-26 22:38:03,629 localhost-startStop-1 INFO      [jira.config.database.DatabaseConfigurationManagerImpl] Now running Post database-configuration launchers
2016-01-26 22:38:04,634 localhost-startStop-1 INFO      [jira.config.database.SystemDatabaseConfigurationLoader] Reading database configuration from /var/atlassian/application-data/jeenee-jira/dbconfig.xml
2016-01-26 22:38:05,216 localhost-startStop-1 ERROR      [atlassian.jira.tenancy.PluginKeyPredicateLoader] Could not read tenant-smart pattern file '/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/tenant-smart-patterns.txt' (using defaults)
2016-01-26 22:38:05,547 localhost-startStop-1 INFO      [atlassian.jira.startup.DatabaseLauncher] Database transactions enabled: true
2016-01-26 22:38:05,548 localhost-startStop-1 INFO      [atlassian.jira.startup.DatabaseLauncher] Using JIRA's default for database transaction isolation level: 2
2016-01-26 22:38:05,564 localhost-startStop-1 INFO      [atlassian.jira.startup.JiraStartupLogger] 

Database configuration OK

___ Database Configuration _________________

     Loading entityengine.xml from                 : file:/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/entityengine.xml
     Entity model field type name                  : mysql
     Entity model schema name                      : 
     Database Version                              : MySQL - 5.1.73
     Database Driver                               : MySQL Connector Java - mysql-connector-java-5.1.26 ( Revision: ${bzr.revision-id} )
     Database URL                                  : jdbc:mysql://localhost:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB
     Database JDBC config                          : mysql jdbc:mysql://localhost:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB

2016-01-26 22:38:05,660 localhost-startStop-1 INFO      [atlassian.jira.startup.ClusteringChecklistLauncher] JIRA clustering startup checks completed successfully.
2016-01-26 22:38:05,672 localhost-startStop-1 INFO      [atlassian.jira.startup.JiraStartupLogger] 

___ Starting the JIRA Plugin System _________________

2016-01-26 22:38:05,673 localhost-startStop-1 INFO      [atlassian.plugin.manager.DefaultPluginManager] Plugin system earlyStartup begun

... which looks nice, I thinkk.

and, (woo, cautiously) it looks like I have a start! checking ...

good so far ... ticket created, sysadmin is OK, comment existing ticket OK, tailing catalina.out... all looks good (except notifications are off)

Stopping and turning on Notifications (fingers crossed)

 

Oh that looks MUCH better. I think I couldn't care less about git integration tonight. Checking and check-pointing my work.

 

Nic, also, sorry, I see that I have completely ruined the flow of this ticket. Sorry about that. I am trying to give you points for being completely helpful and fantastic though.

Not at all.  I thought you had JIRA running, but throwing errors, so I was assuming you could go to the plugin manager and disable it, but it sounds like you couldn't get that far.  So nice catch on removing it from the file system!

 

Yes your method will work as an approach to moving hosts. I would do at least one practice run before you make the final change to ensure that there are no hidden surprises to your approach. You can use your local hosts file to change your connection to the new host whilst still retaining the same urls.

This is a good guide to JIRA, and the principles are similar for Crucible. It's a bit long, and looks scary, but it is trying to cover all the possible options. And you don't have to do the bit about "turn off old servers" until you're happy that the new ones are working. For this case, you're absolutely right to avoid upgrades. They can be easy to integrate with server moves, but if you have a time constraint, stick with the same versions as it'll keep the job easier and quicker. https://confluence.atlassian.com/jira/migrating-jira-to-another-server-151126305.html

All tested well (twice), but then I enabled notifications and got:

java.lang.ClassNotFoundException: com.mysql.jdbc.

and my log says "DB OK" back near the top....

I wonder if JEMH is confusing things?

0 vote

Ok, you might need to check your database setup and connections, but we could do with a good chunk more of the log - to see what it was trying to do when it failed to hit the database.

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,335 views 14 20
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot