现在的位置: 首页 > 综合 > 正文

记一次服务器迁移,包括jira、svn

2014年04月05日 ⁄ 综合 ⁄ 共 2998字 ⁄ 字号 评论关闭

公司新买的一个服务器,放在公司内部使用,准备将原来放在阿里云服务器上的jira迁移过来。原先将jira部署在阿里云上是由于公司还没有购买服务器,所以暂时部署在云上,结果用了一段时间之后,同事们经常反映速度太慢,而且jira使用的tomcat服务器占内存凶得很,经常达到800M之多,这个就有点昂贵了,毕竟买云服务器主要是给网站用的,所以必须将其迁移到公司内部,同时迁移的还有VisualSVN配置管理服务。这次迁移可谓是一波三折,折腾了我整整一天,晚上7点才下班(苦逼的IT民工)。

1,在新服务器上安装jira5.2.1,参考安装文档:win2003下安装破解汉化jira5步骤_史上最细节 - Testingba工作室 - 博客频道 - CSDN.NET

2,安装完成之后,将原jira上安装的插件一个不剩地在新jira上安装,这一点很重要,因为在迁移数据之前,我们要保证jira程序的一致性,否则迁移过来的数据可能出现异常。

3,准备完成之后,开始迁移数据。其实jira自己提供了有“导入/导出”功能,用于数据迁移,点击“系统”菜单,选择“导入/导出“,文件名填写备份数据的文件名,文件保存在JIRA的Application Data\JIRA\export目录下,但是这个备份不包括附件、图标、logos等。文件名我们命名为1120,备份完成之后,生成一个文件在export目录下。

4,将文件下载到新服务器上,同样将1120.zip放在”Application Data\JIRA\import“目录下,进入“系统”,“导入/导出”功能,选择“恢复数据”,文件名填写1120.zip,授权码不填,点击“恢复”,结果发现没这么简单,jira报了一个错:无效的授权码。那就增加一个授权码吧,授权码是什么东西,我导出数据的时候并没有要求我提供授权码,或者提供一个授权码给我啊,难道是安装JIRA时License中的那个串号,这个串号在”系统“,”授权“菜单中是可以看到的,那就试试吧,试的结果就是无论是填写新服务器的授权码还是旧服务器的授权码都不行。

5,那就尝试一下使用项目导入的功能吧,这个功能倒是不需要提供授权码,只需要提供备份文件,同样文件还是放在import那个目录下,但是这里要求将这个项目相关的附件放在attachments这个目录下,所以就把旧服务器上的”Application Data\JIRA\data\attachments“下所有项目的附件全部都下载到这个目录下,还是按项目为目录分好。开始导入,选择”下一页“,结果发现这样也不行,JIRA报了一个错误:问题类型****不存在,无法导入

6,尝试了”恢复数据“和”项目导入“都不行,那只有死马当活马医了,直接导入数据库吧,反正新装的JIRA也是空的。先把旧服务器上的jiradb备份下来,进入”SQL Server Management Studio“,选择jiradb数据库,“任务”,“备份”,将备份文件设置为jiradb.bak,下载到本地。

7,在新服务器上的数据库上选择jiradb,”任务“,”还原“,”文件和文件组“,还原的源中选择”源设备“,将jiradb.bak文件添加进来,将列表中的两项都选择,点击”确定“开始还原,结果还是报错,报的好像是3154号错误,那意思就是不在同一个实例上备份的数据无法进行还原,不应该啊。所以就在网上查找解决方案,下面这篇文章很好地解决了这个问题:

SQL2005备份集中的数据库备份与现有的数据库不同,错误号码:3154,解决方法

最后是通过新建一个查询,编写如下的SQL语句解决数据库jiradb到导入问题的,心里一阵窃喜:

RESTORE DATABASE jiradb

FROM DISK = 'F:\download\jirabackup\db.bak'
with replace,
MOVE 'jiradb' TO 'D:\SQLServer\MSSQL.1\MSSQL\DATA\test1.mdf',

MOVE 'jiradb_log' TO 'D:\SQLServer\MSSQL.1\MSSQL\DATA\test1_log.ldf'

8,打开jira服务,浏览器上输入地址打开,结果报了一堆的错误差点让我直接奔溃,到底还是不行啊,是啊,这种到数据库的方法在官方的导入数据说明中都没有提到,估计是不行了,但是我还是不死心,仔细分析了一下报的错误,估计就是打不开数据库,所以我就仔细查了一下用户jira的权限、jira下的dbconfig.xml配置,在数据库中的jira用户的设置中少了jiradb的映射,所以给jira用户的”用户映射“中增加了jiradb,并且角色身份选择为db_owner,将dbconfig.xml中的配置仔细检查了一遍,包括schema-name,用户名、密码、数据库地址。

9,重新打开jira,终于连接上了,看来直接导入数据库还是可以啊。别急,怎么项目问题一个都不在了,刚才导入数据库之后,我还特意看了一下jiraissue这个表,里面问题都在啊,这是怎么回事?估计是jira的索引问题,直接导入数据库,估计有很多关联的数据没有设置,所以导致了问题看不到。怎么办呢,回想刚才进行项目导入时,出现了"问题类型****不存在,无法导入"的错误,现在应该没有这些问题了,因为数据库全部到导进来了,数据应该都存在了,现在就缺少项目问题了,因为其他的比如状态、工作流、问题类型、项目等我检查了一下都存在。

10,重新进行项目导入,选择”系统“,”导入/导出“,”项目导入“,还是刚才jira导出的那个文件1120.zip,点击”下一页“,选择一个项目,导入,又报错,说什么”问题已经存在,无法导入”。那就删除issue表中的数据吧。

11,将jiraissue表中的数据清除,再进行“项目导入”,这下没有报错了,全部成功,检查了一下项目问题,都在,太好了,就按这样子,将一个一个项目都导入进去。至此,jira的数据迁移全部完成。

总结一下:

1,jira的数据迁移最简单的就是采用“导入/导出”的备份和恢复功能,如果这个不行,就采用数据库备份恢复的方式;

2,数据库恢复必须采用新建查询,执行sql语句的方式;

3,数据库恢复之后,单独删除jiraissue表中的所有内容,然后采用“项目导入”的方式,一个一个项目导入问题,这种方式导入的同时,需要将attachments目录下的附件全包拷贝到新jira的Application Data\JIRA\import\attachments目录,这样在恢复问题的同时,就会自动恢复项目的相关附件;

4,除了将数据库和附件恢复之外,还需要手动拷贝两个目录Application Data\JIRA\data\avatars和Application Data\JIRA\logos。

买JIRA上CSDN,特殊折扣购买通道:

http://atlassian.csdn.net/module/btc/atlassian/prduct_detail?project_id=445&module=34&product=9

CSDN开立Atlassian中文技术论坛更多交流分享请点击:

http://bbs.csdn.net/forums/atlassian

博文原创作者:newborn2012

抱歉!评论已关闭.