jira项目迁移完整实现

目录

一、背景

二、操作思路

三、问题排查

四、参考资料

五、总结

一、背景

最近领导安排我一项任务,把阿里云上部署的jira项目迁移到新的服务器上,jira是什么呢?进入社会工作的朋友们大部分都了解过吧,现在就来介绍一下它,JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。很多公司进行敏捷开发用到的工具就是这个jira。

二、操作思路

1、源服务器压缩Jira

(1)找到源服务器的jira项目所在位置,执行下面命令对项目进行压缩,这个命令意思是将 /opt/atlassian目录下的所有内容压缩到home目录下,命名为jira.gz。

tar -zcvf /home/jira.gz /opt/atlassian

2、通过ftp将压缩包下载到公司电脑,再传到新服务器,并解压到同一目录下。

3、源服务器导出jira数据库

(1)我的jira项目使用的是PostgreSQL数据库,同时数据库是可以从源服务器上进行下载,在源服务器上执行了下面命令,根据自己实际情况进行修改。

PGPASSWORD="pwd" pg_dump -h 'localhost' -p 5432 -U user -d jiradb  > /home/jiradb.sql

(2)如何知道自己数据库在哪里呢,可以在源jira项目中的这个位置找到jira.home配置在哪里

vi /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/jira-application.properties

(3)上面文件里面有jira.home配置的地址,然后到那个目录下找到dbcontext文件,进行查看。

4、通过pgsql命令导入到新数据库

(1)在新数据库上创建一个数据库,下面的数据库地址,账号,密码,数据库名都会在部署jira的dbcontext文件中进行配置。

PGPASSWORD="pwd"   createdb -h host -p 5432 -U user  jiradb

(2)将导出的数据库sql导入到新建的数据库中。

 PGPASSWORD="pwd"     psql -h host -U user -d jiradb < jiradb.sql

5、将数据部分通过scp上传到新服务器

(1)命令左边是源服务器的数据路径,右边是目标数据库要保存的数据路径,目标服务器的保存路径是上面配置的jira.home里面的路径,迁移中能跟源服务器路径一致更好。

(2)data目录下最主要的是attachments目录,存放的是jira每个任务的附件等信息,avatars目录存放的主要是用户头像等信息。

scp -P 54321 -r root@ip:/var/atlassian/application-data/jira/data    var/atlassian/application-data/jira/

 6、到jira项目bin目录下执行start-jira.sh命令启动jira

(1)假如不知道端口,或者源jira项目的端口新服务器没有开发,我们可以到jira的conf目录下修改server.xml,使用8080端口。启动以后没什么问题的话访问ip:8080就可以看到新的jira项目启动成功了。

        <Connector port="8080"
                   maxThreads="150"
                   minSpareThreads="25"
                   connectionTimeout="20000"
                   enableLookups="false"
                   maxHttpHeaderSize="8192"
                   protocol="HTTP/1.1"
                   useBodyEncodingForURI="true"
                   redirectPort="8443"
                   acceptCount="100"
                   disableUploadTimeout="true"
                   bindOnInit="false"/>

三、问题排查

1、启动jira报错:JIRA has been installed to run as jira2 so please sudo run this to enable switching to that user

解决:在.../bin/user.sh  设置,启动用户为jiankangxu

2、Wrong JVM version! You are running with .. but JIRA requires at least 1.8 to run.

解决:下载jdk 8,因为jira项目需要用到java环境。

 https://www.openlogic.com/openjdk-downloads

3、启动jira后,查看我未完成的任务,搜索不到结果,需要维护一下索引

解决:使用管理员登陆,找到系统设置,indexs,进行重建索引

4、头像附件传输到服务器乱码问题

解决:思路是查看一下新服务器的语言,新服务器语言是C,源服务器语言是en_US.UTF-8,修改目标服务器与源服务器到编码一致。

5、scp传输过程中断了,导致传输失败

解决:后台运行scp命令,如何实现呢?


(1)scp命令后台执行

scp -P 54321 -r root@ip:/var/atlassian/application-data/jira/data    var/atlassian/application-data/jira/

(2)执行ctrl+Z

(3)执行jobs

(4)执行bg将该任务号放入后台。

bg %1

(5)使用disown -h 将这个作业忽略HUP信号:

disown -h %1

(6)退出登录,再次进去查看任务运行状态和父进程号。

ps -ef|grep scp

四、参考资料

1、Migrating JIRA applications to another server

https://confluence.atlassian.com/adminjiraserver073/migrating-jira-applications-to-another-server-861253107.html?spm=a2c6h.12873639.0.0.215771bctbcNZF#MigratingJIRAtoAnotherServer-configuringnewjiraasold

2、安装Jira

https://www.cnblogs.com/selinaniur/p/10800113.html

3、数据库迁移方式

https://blog.csdn.net/liumiaocn/article/details/82010690

4、修改数据库连接

https://www.cnblogs.com/kaola8023/p/7064978.html

6、查询jar包进行下载安装(tencent-maven空间)

http://maven.oa.com/nexus/#nexus-search;quick~spring-data-commons

7、记一次jira迁移

https://blog.51cto.com/ljohn/1913132

8、迁移之后无法进行索引查询

https://confluence.atlassian.com/display/JIRAKB/How+to+Fix+the+JIRA+is+Unable+to+Perform+a+Background+Re-Index+at+This+Time+Error

9、jira丢失索引问题

https://blog.csdn.net/weixin_42207486/article/details/84253873?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.baidujsUnder6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.baidujsUnder6

10、docker部署

https://cloud.tencent.com/document/product/213/46000

11、scp后台执行命令,避免中断

https://www.cnblogs.com/ocp-100/p/10843315.html

五、总结

以上就是关于如何进行jira项目迁移的全部内容,希望能够帮到大家,这篇文章可以收获如何将一个jira项目进行迁移,如何服务器之间传输文件,导入导出数据库等等,另外最最重要的是,可以发给你的好朋友,一起学习。觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。

上一篇:Jenkins-job之间依赖关系配置


下一篇:iptables脚本模板