目录
一、背景
最近领导安排我一项任务,把阿里云上部署的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
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、迁移之后无法进行索引查询
9、jira丢失索引问题
10、docker部署
https://cloud.tencent.com/document/product/213/46000
11、scp后台执行命令,避免中断
https://www.cnblogs.com/ocp-100/p/10843315.html
五、总结
以上就是关于如何进行jira项目迁移的全部内容,希望能够帮到大家,这篇文章可以收获如何将一个jira项目进行迁移,如何服务器之间传输文件,导入导出数据库等等,另外最最重要的是,可以发给你的好朋友,一起学习。觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。