[JIRA] 从3.6.2旧版升级到新版6.0.8的详细过程
?前言:
JIRA是Atlassian公司出品的項目與事務跟蹤工具,被廣泛應用于缺陷跟蹤、客戶服務、需求收集、流程審批、任務跟蹤、項目跟蹤和敏捷管理等工作領域。
 公司原來用的是JIRA 3.6.2版本,Atlassian官方已不推薦使用JIRA 4.4之前的版本,之前的版本有漏洞也已不再更新,同事已經安裝好了JIRA6.0.8版本,新版的JIRA界面扁平化設計,支持移動端瀏覽,很符合移動互聯網企業的風格,現在JIRA升級到了新的版本JIRA 6.1.7,但是在遷移數據的時候,直接從3.6.2遷移到6.0.8失敗,google了很久,才發現需要在4.4.5上面將數據轉換一下,在此記錄一下數據遷移步驟。
 
 思路:(1),安裝Jira4.4.5;(2),將Jira3.6.2的數據導入到Jira4.4.5后再導出;(3),再將從4.4.5導出的數據導入到6.0.8版本中,這樣就完成了數據的遷移工作,升級也完成了。
 ????? 準備工作,JIRA3.6.2以及JIRA6.0.8已經安裝,還需要安裝的是中間的過度版本4.4.5
 
1,下載Jira4.4.5
Jira下載地址:http://pan.baidu.com/s/1eQcQeL8
2,安裝Jira4.4.5
3,Jira4.4.5配置過程
 安裝完后可以直接訪問http://192.168.171.230:8080/,進行Jira配置步驟。
 
3.1,訪問報錯問題
如果訪問出現該頁面,是因為我們還沒有配置JIRA HOME的路徑,需要設置java_home路徑,先去查看下JAVA_HOME路徑為:
[root@name01 atlassian-jira-4.4.5-standalone]# echo $JAVA_HOME
/usr/lib/jvm/jdk1.7.0_60
[root@name01 atlassian-jira-4.4.5-standalone]#
找到jira的配置文件
[root@name01 atlassian-jira-4.4.5-standalone]# find /root/atlassian-jira-4.4.5-standalone -name jira-application.properties
/root/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes/jira-application.properties
[root@name01 atlassian-jira-4.4.5-standalone]#
[root@name01 atlassian-jira-4.4.5-standalone]# vim /root/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes/jira-application.properties
# Do not modify this file unless instructed. It is here to store the location of the JIRA home directory only and is typically written to by the installer.
jira.home = /usr/lib/jvm/jdk1.7.0_60
?
在jira.home = 后面添加上JAVA_HOME的路徑,保存配置文件后再重啟JIRA。
3.2,配置好jira.home后重啟Jira
再重新啟動jira:
3.3,配置jira數據庫
再次訪問http://192.168.171.xxx:8080/,如下顯示正常:
點擊下一步,錄入各項信息,準備創建DB
3.4,報錯信息
| JIRA Startup Failed | ||
| You cannot access JIRA at present. Look at the table below to identify the reasons | ||
| ? 
 | 
?
重新關閉啟動,報錯如下:
……
Using CATALINA_BASE:?? /root/atlassian-jira-4.4.5-standalone
Using CATALINA_HOME:?? /root/atlassian-jira-4.4.5-standalone
Using CATALINA_TMPDIR: /root/atlassian-jira-4.4.5-standalone/temp
Using JRE_HOME:??????? /usr/lib/jvm/jdk1.7.0_60/jre
Using CLASSPATH:?????? /root/atlassian-jira-4.4.5-standalone/bin/bootstrap.jar
Using CATALINA_PID:??? /root/atlassian-jira-4.4.5-standalone/work/catalina.pid
Existing PID file found during start.
Tomcat appears to still be running with PID 32194. Start aborted.
[root@name01 logs]#
Kill 掉已經存在的進程32194
[root@name01 logs]# kill -9 32194
[root@name01 logs]#
再重新啟動jira進程,啟動信息如下:
Using CATALINA_BASE:?? /root/atlassian-jira-4.4.5-standalone
Using CATALINA_HOME:?? /root/atlassian-jira-4.4.5-standalone
Using CATALINA_TMPDIR: /root/atlassian-jira-4.4.5-standalone/temp
Using JRE_HOME:??????? /usr/lib/jvm/jdk1.7.0_60/jre
Using CLASSPATH:?????? /root/atlassian-jira-4.4.5-standalone/bin/bootstrap.jar
Using CATALINA_PID:??? /root/atlassian-jira-4.4.5-standalone/work/catalina.pid
Existing PID file found during start.
Removing/clearing stale PID file.
[root@name01 logs]#
?
查看日志文件,有如下信息:
[root@name01 logs]# more catalina.out
九月 11, 2014 5:41:41 下午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/l
ib64:/lib:/usr/lib
九月 11, 2014 5:41:41 下午 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
九月 11, 2014 5:41:41 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1007 ms
九月 11, 2014 5:41:41 下午 org.apache.catalina.realm.JAASRealm setContainer
信息: Set JAAS app name Catalina
九月 11, 2014 5:41:41 下午 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
九月 11, 2014 5:41:41 下午 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.32
2014-09-11 17:41:43,504 main INFO????? [jira.config.database.SystemTenantDatabaseConfigurationLoader] Reading database configuration from /usr/lib/jvm/jdk1.7.0_60/dbconfig.xml
2014-09-11 17:41:44,076 main INFO????? [atlassian.jira.startup.JiraStartupLogger]
?
刪除這個dbconfig.xml,關閉jira,然后再重新啟動,這回啟動正常了,如下所示:
?
看見這個頁面就表示JIRA服務正常啟動了,接下來是根據安裝向導配置安裝的過程。
?
3.5,重新配置DB過程
看Database Configuration,有Internal和External二個選擇項,我們要使用External,選擇外部數據庫。
?
先建立jira數據庫以及賬號密碼:
mysql>
mysql> create database jira445;
Query OK, 1 row affected (0.00 sec)
?
mysql>
mysql> GRANT ALL ON jira445.* TO jira_user@'%' IDENTIFIED BY 'jira_user1809';
Query OK, 0 rows affected (0.16 sec)
?
mysql>
?
在界面配置好數據庫連接信息,如下圖所示:
?
隨手點擊一下“Test Connection”測試下數據庫連接,連接正常,如下所示:
?
點擊下一按鈕,報錯如下:
javax.servlet.ServletException: com.atlassian.util.concurrent.LazyReference$InitializationException: com.opensymphony.module.propertyset.PropertyImplementationException: SQL Exception while executing the following:SELECT ID, ENTITY_NAME, ENTITY_ID, PROPERTY_KEY, propertytype FROM propertyentry WHERE ENTITY_NAME=? AND ENTITY_ID=? (Table 'jira445.propertyentry' doesn't exist)
?
去下載:
# wget -c href="http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.29.tar.gz
# tar zxvf mysql-connector-java-5.1.29.tar.gz
將解壓后目錄中的mysql-connector-java-5.1.29-bin.jar拷貝到JIRA的lib目錄/opt/atlassian-jira-4.4.5-standalone/lib/中
?
重啟jira,還是報一樣的錯誤。
?
去查看jira的error log信息,看到如下信息:
[root@name01 logs]# more /root/atlassian-jira-4.4.5-standalone/logs/catalina.out
……
CREATE TABLE portletconfiguration (ID DECIMAL(18,0) NOT NULL, PORTALPAGE DECIMAL(18,0), PORTLET_ID VARCHAR(255), COLUMN_NUMBER DECIMAL(9,0), positionseq DECIMAL(9,0), GADGET_XML TEXT, COLOR V
ARCHAR(255), CONSTRAINT PK_portletconfiguration PRIMARY KEY (ID))
Error was: java.sql.SQLException: The MySQL server is running with the --read-only option so it cannot execute this statement
?
【】將數據庫設置成不是read-only的方式。
mysql> set global read_only =0;
Query OK, 0 rows affected (0.01 sec)
?
mysql>
?
之后重建jira445庫,重啟jira,再重新初始化數據庫:
?
在下一頁么,輸入授權碼:
授權碼為:
AAABMQ0ODAoPeJxtUMlOwzAQvfsrLHF2laSlVStZwiQ+hGZTFlS4mTAFo8SJbKeif0/StAcQ0lxm3
rxl5q4cABfQY3c91m652a022C9K7DnuCgVgai17KztFn8KcoS+pxSIZ2jfQ6bEyoA0lLvI1iGknE
BboRCTOlrhr5HfKitomogXaNxN3Fhhn8gTU6gFuOzwWsqFWthPd2breg+3aRd21iJ9EM1zk6VE0B
maJSNagDJTnHi7yfhrHPPdDFv3C+bu8MHlS8jzLw4KjZkaex+wT4qHRWVlQQtXAv3upz/MZy+WGu
B7x7lHBE/qSVjhme45jjhkuWIAzlgRsgVL9IZQ0c8C+wRaMRQXoE+gwoI9pdSD8wPYkfQ0zcogyj
q7RRjQKg1v3v3M26PpTGPjz2B8tAYyAMCwCFGiKwG9qA+2ksL7mkMIrV80z+un8AhRu0CryeqTv8
LIZstOPg/B3240BnQ==X02fb
?
點擊“下一”按鈕,進行下一步操作,設置管理員賬戶,用戶名admin密碼admin
?
下一步,暫時不設置郵件通知:
 點擊下一步,報錯如下3.6小節所示:
 
3.6,JIRA Access Constraints 錯誤處理
You cannot access JIRA at present.
| 描述 | Time | Level | Exception | 
|  The current license is too old to install this version of JIRA (4.4.5) | 
?
點擊 Edit License or proceed under Evaluation Terms 進去,需要填入授權碼,重新Proceed才行,
 
進入 https://my.atlassian.com/license/evaluation頁面,登錄進去,選擇Licen 進去,
選擇Jira(Server)
然后下一步,再輸入Server ID和Organization Name的值,點擊“Generate License”按鈕,創建授權碼,如下所示:
?
 
之后然后生成授權碼,Evaluations?New Evaluation License,點擊后面的New Evaluation License,進去看到右邊的授權碼:
AAABBw0ODAoPeNptkFtLxDAQhd/zKwI+R9Kwy66FPKxthGhvtF0p4kuso0a6sUwvuP/edissyj4MD
HPOfHOYqzu0tICWeoJy4a+FzzkNwpIK7q1ICF2Ntu3tl5P3Ot89+1SNphnMPCEBwqkJTQ9y9jN+w
zxBPi2a68jW4DpQr/a0rZJS5VmuC0XOBNnjAH/s5bGFxBxABmkcqzzQu2jRTd3bEZaFZvE+AnYzR
JDYWNeDM64G9d1aPJ4TeXxOlOK7cbZbjrbNgkyGwwtg+rbvJpBkHikAR0Adytt0XzFV7R5Y+qQzV
kWZIoVK5FQsWq03YrvdkN/Ekz3S4SXlcpRswPrDdPD/aT+P1nzDMC0CFQCM9+0LlHVNnZQnSTwuR
O3eK+2gVgIUCteTs4Q3khIgrnsY64hxYB/d8bM=X02dh
?
然后把激活授權碼copy出來,錄入到授權碼輸入框,點擊Proceed按鈕,出現如下提示,表示成功:
| Update License | 
| Your license has been successfully updated. Please restart your server so that all necessary changes can take effect. Changes will not take place until server is restarted. Click?here?when the server is restarted. | 
3.7,訪問報錯
重啟jira,然后輸入http://192.168.171.xxx:8080/登錄報錯如下:
| JIRA Startup Failed | ||
| You cannot access JIRA at present. Look at the table below to identify the reasons | ||
| ? 
 | 
去查看后臺tomcat日志
2014-09-12 16:48:46,012 main ERROR????? [atlassian.plugin.manager.PluginEnabler] Unable to enable plugin com.atlassian.sal.jira
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.Comparable
???????? at org.apache.felix.framework.resolver.CandidateComparator.compare(CandidateComparator.java:46)
???????? at org.apache.felix.framework.resolver.CandidateComparator.compare(CandidateComparator.java:26)
???????? at java.util.TreeMap.compare(TreeMap.java:1188)
???????? at java.util.TreeMap.put(TreeMap.java:531)
???????? at java.util.TreeSet.add(TreeSet.java:255)
???????? at java.util.AbstractCollection.addAll(AbstractCollection.java:342)
???????? at java.util.TreeSet.addAll(TreeSet.java:312)
???????? at org.apache.felix.framework.FelixResolverState.getCandidates(FelixResolverState.java:759)
?
google找到原因是:
This appears to have been caused by running on Java 1.7.0_3.
Running on Java 1.6.0_25 works fine.
下載jdk6版本,下載地址1:http://download.csdn.net/download/wangcong02345/6707321
下載地址2:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
分割命令:
tar czvf jdk-6u35-linux-x64.bin.tar.gz jdk-6u35-linux-x64.bin
split -b 40M ./jdk-6u35-linux-x64.bin.tar.gz ./jdk-6u35-linux-x64.bin.tar.gz.
合并命令:
cat jdk-6u35-linux-x64.bin.tar.gz.a* > jdk-6u35-linux-x64.bin.tar.gz
tar xf jdk-6u35-linux-x64.bin.tar.gz
增加可執行權限
chmod +x jdk-6u35-linux-x64.bin
解壓
./jdk-6u35-linux-x64.bin
將解壓好的jdk1.6.0_35文件夾用最高權限復制到/usr/lib/jvm目錄中:
$ sudo cp -R jdk1.6.0_35 /usr/lib/jvm
(注意:
??? 如果:不存在jvm目錄,請以最高權限創建jvm目錄:
??????? $ sudo mkdir /usr/lib/jvm
)
?
在$HOME的.profile文件中設置環境變量JAVA_HOME:
$ cd ~
$ vi /etc/profile
(
添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_35
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH)
參數立即生效
?source /etc/profile
 
驗證java版本號碼
[root@name01 java]# java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
[root@name01 java]# javac -version
javac 1.6.0_35
[root@name01 java]#
?
然后修改jira的jdk版本為jdk6:
[root@name01 java]# vim /root/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes/jira-application.properties
# Do not modify this file unless instructed. It is here to store the location of the JIRA home directory only and is typically written to by the installer.
jira.home =? /usr/lib/jvm/jdk1.6.0_35
~????????????????????????????????????????
解決好JDK,重復3.1到3.7的步驟,最后幾個步驟如下:
3.8,登錄報錯
The Gadget Dashboard bundled plugin is not available. To ensure the Gadget Dashboard plugin is enabled, please contact your JIRA administrators.
 如果你認為這個信息是錯誤的, 請聯系你的 please contact your?JIRA administrators管理員{1} 以得到需要的權限.
 
Jira需要重新編譯安裝,以為之前是在jdk7下安裝的,現在jdk版本換到了jdk6,所以jira也需要重新編譯安裝一下,重復之前的所有步驟1—>3,最后登錄界面如下:
 
 ?
 
3.9,JIRA重啟報錯
| JIRA Startup Failed | ||
| You cannot access JIRA at present. Look at the table below to identify the reasons | ||
| ? 
 | 
原因就是沒有使用shutdown.sh來關閉jira,所以最好是使用start-jira.sh啟動,使用shutdown.sh關閉,那么下次啟動就不會有問題了。若安裝目錄找不到 .jira-home.lock文件(所在目錄不一定是你的安裝路徑),可以使用搜索功能搜索,如下所示:
[root@name01 logs]# find / -name .jira-home.lock
/usr/lib/jvm/jdk1.6.0_35/.jira-home.lock
[root@name01 logs]#
[root@name01 logs]# rm -rf /usr/lib/jvm/jdk1.6.0_35/.jira-home.lock
[root@name01 logs]#
?
4,備份JIRA3.6.2
4.1,選擇備份路徑
找到數據備份目錄,每個登錄用戶的菜單欄是不一樣的,我這里是“首頁”-> “管理”-> “備份”,就進入備份頁面,輸入備份文件(帶上全路徑),這個路徑是在jira安裝服務器上面,linux服務器就用linux路徑/tmp/jira_pl_3.6.2.xml,windows服務器就采用windows的路徑:D:\ jira_pl_3.6.2.xml。
?
4.2,開始備份
點擊Backup按鈕,開始備份,jira數據多的話,時間有些長,備份完,頁面顯示如下表示備份成功:
| Backup JIRA data | 
| Data exported to:?D:\jira_pl_3.6.2.xml. | 
 ?
 
5,在4.4.5上恢復jira3.6.2版本數據
把Step#4備份的文件copy到/usr/lib/jvm/jdk1.6.0_35/import目錄下,然后登錄進入4.4.5的jira面板,找到“System”->?“Restore System”,錄入恢復文件路徑以及3.5小節中的License,點擊“Restore”按鈕開始恢復。
 
恢復報錯如下:
| Either create the paths shown below and reimport, or?reimport using default paths. | 
| 錯誤 ·???????? The index path /usr/lib/jvm/jdk1.6.0_35/D:\JIRA_file\index specified in the backup file is not valid. ·???????? The attachment path /usr/lib/jvm/jdk1.6.0_35/D:\JIRA_file\attach specified in the backup file is not valid. | 
VIM打開備份文件,找到vim jira_pl_3.6.2.xml,找到D:\JIRA_file\字符串,換成/usr/lib/jvm/jdk1.6.0_35/import/,如下所示:
???
???
然后,建3個目錄
[root@name01 import]# mkdir /usr/lib/jvm/jdk1.6.0_35/import/index
[root@name01 import]# mkdir /usr/lib/jvm/jdk1.6.0_35/import/attach
[root@name01 import]# mkdir /usr/lib/jvm/jdk1.6.0_35/import/backUp
[root@name01 import]#
?
然后重新導入,OK,沒有報錯信息,開始慢慢導入數據,如下顯示:
?
最后,經過50分鐘,終于恢復完畢,如下所示:
?
6,在4.4.5上備份數據導入的舊版本3.6.2的數據
在上一步導入完畢之后,重新在4.4.5版本上面把新的數據進行備份,進入
 
?
備份完成,如下所示:
 
7,在6.0.8上做jira恢復
包括數據恢復和附件恢復
7.1恢復數據
把上一步驟備份的jira_4.4.5.zip解壓縮
[root@name01 export]# unzip jira_4.4.5.zip
Archive:? jira_4.4.5.zip
? inflating: entities.xml???????????
? inflating: activeobjects.xml??????
[root@name01 export]#
?
將解壓縮出來的xml備份文件copy到Jira6.0.8的服務器上,開始恢復,如下所示:
?
大概耗時40分鐘,恢復完后,如下所示:
?
7.2,恢復附件
去“管理員界面”->“系統”,打開如下所示:
點開后,再拉到左邊最下面,點擊“附件”選項,就會看到附件路徑,把Jira3.6.2版本下的附件文件直接copy過來到這個目錄下,如下所示:
?
 ?
 
OK,最后,JIRA從舊版本3.6.2到新版本6.0.8升級完畢。
 
?
參考文章地址:
http://www.trongeek.com/archives/jira-di-an-zhuang-yu-sheng-ji.html
http://blog.csdn.net/mchdba/article/details/38768513
?
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/26230597/viewspace-1271155/,如需轉載,請注明出處,否則將追究法律責任。
轉載于:http://blog.itpub.net/26230597/viewspace-1271155/
總結
以上是生活随笔為你收集整理的[JIRA] 从3.6.2旧版升级到新版6.0.8的详细过程的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: PHP 7.4的新增特性(功能,弃用,速
- 下一篇: 如何传输利润中心主数据
