記一次服務器遷移,包括jira、svn

公司新買的一個服務器,放在公司內部使用,準備將原來放在阿里雲服務器上的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章