JIRA数据库的迁移,从HSQL到MYSQL/Oracle

Jira数据库迁移,从HSQL到MYSQL

  1. 通过JIRA管理员登录,进入“管理员页面”,“系统”--“导入&导出”,以XML格式备份数据。
  2. 在MySQL中创建Schema,命名为jira
  3. 关闭JIRA服务
  4. 备份一下JIRA的安装目录和数据目录
  5. 在JIRA的数据目录下删除文件:dbconfig.xml
  6. 重新启动JIRA服务
  7. 再访问JIRA,会再次出现第一次安装时候的数据库配置。在这里输入MySQL的地址、用户名、密码、数据库名称等,测试连接成功后,点击下一步
  8. 选择“import your existing data”,将第一步导出的XML导入,至此完成数据库迁移。

JIRA使用自带的嵌入式数据库还是比较快的,不过占用内存太大。

1.将项目导出成XML文件。

2、停止JIRA服务。

3.安装MYSQL,最好将MYSQL的字符集设置为UTF-8.在服务启动所使用的my.ini中修改。

default-character-set=utf8

4.创建MYSQL数据库,create database jiradb character set utf8;,如果不是UTF8的字符集,长的文本导入时会报错,无法导入。

5.创建连接用户,密码。 如果连接的是远程的数据库,请在用户配置中HOSTNAME这一栏,标明应用服务器的IP。(我用Navicat mysql配置MYSQL数据库的)

6.修改conf/server.xml

<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">

<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"

username="[enter db username]"

password="[enter db password]"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"

[ 删除这儿的 minEvictableIdleTimeMillis 和 timeBetweenEvictionRunsMillis 参数配置] />

7、配置 JIRA Entity Engine

<!-- DATASOURCE - You will need to update this tag for your installation.

-->

<datasource name="defaultDS" field-type-name="mysql"

[ 如果这句存在的话,请删除。schema-name="PUBLIC" ]

8.MySQL driver

将MySQL JDBC 驱动 (mysql-connector-java-3.x.x-bin.jar) 放在common/lib/ 目录下,否则会报连接不到数据库的错误。注意,在CLASSPATH不要放Debug版本的驱动 (mysql-connector-java-3.x.x-bin-g.jar) 否则会引起这个错误(JRA-8674).

9.启动JIRA,看一下有没有错误。一般如果报用户名密码不对,尝试三次连接的,请检查你的用户密码。报连接不到MYSQL的,请检查你的MYSQL 驱动。启动完成后,进入JIRA安装页面,将备份的XML文件导入就OK了。

迁移到Oracle存储.

1. 先在Oracle中新建数据库或者表空间, 并创建个Jira使用的用户, 设置好权限.

2. 进入Jira管理界面, 左侧Import & Export-Backup Data to XML, 填写备份文件名, 点击Backup按钮保存当前数据库的数据.

3. 停止Jira服务, 进入Jira安装目录的conf子目录, 编辑server.xml, 修改Context的username, password, driverClassName和url属性段, 比如:

username="jira"

password="jira"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:scrs/scrs@211.88.26.101:1521:gftdb"

同时还要删除以下两行只适用于HSQL的属性

minEvictableIdleTimeMillis="4000"

timeBetweenEvictionRunsMillis="5000"

再添加上一行以存储大文本, 否则只能储存32K字节大小的文本

connectionProperties="SetBigStringTryClob=true"

4. 修改Jira目录下的atlassian-jira\WEB-INF\classes\entityengine.xml

将datasource里的field-type-name改成oracle10g并删除schema-name="PUBLIC", 因为它只适用于HSQL而不适用于Oracle

5. 拷贝Oracle公司发布的JDBC驱动ojdbc14.jar到Jira目录下的common\lib

注意: 按照官方网站说明, 选择10.1.0.5版的驱动最佳, 其它版本的可能会导致挂起或者数据恢复时异常问题. 下载页面: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html, 选中Accept点击下载 ojdbc14.jar (1,378,346 bytes) - classes for use with JDK 1.4 这个就对了.

6. 最后一步, 启动Jira, 打开页面会出现配置向导, 此时选择恢复并填好之前备份好的xml文件名(注意需要填写绝对路径)和index索引目录路径, 确定就完成数据库迁移工作了,

附: 似乎备份的数据不包括邮件服务器的设置, 可能恢复后需要重新进行手动配置