Jira数据库迁移,从HSQL到MYSQL
- 通过JIRA管理员登录,进入“管理员页面”,“系统”--“导入&导出”,以XML格式备份数据。
- 在MySQL中创建Schema,命名为jira
- 关闭JIRA服务
- 备份一下JIRA的安装目录和数据目录
- 在JIRA的数据目录下删除文件:dbconfig.xml
- 重新启动JIRA服务
- 再访问JIRA,会再次出现第一次安装时候的数据库配置。在这里输入MySQL的地址、用户名、密码、数据库名称等,测试连接成功后,点击下一步
- 选择“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&useUnicode=true&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索引目录路径, 确定就完成数据库迁移工作了,
附: 似乎备份的数据不包括邮件服务器的设置, 可能恢复后需要重新进行手动配置