介绍

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。很多企业与互联网公司都在使用Jira作为内部流程管理系统,进行团队协作与问题单管理。

JIRA的后台数据库可以选择使用嵌入式数据库或MySQL/PGSQL等专业数据库。一般来说,大部分企业选择MySQL作为底层的数据存储。但是,随着问题工单的不断积累,对于较大型企业来说MySQL所支撑的数据量可能很快达到瓶颈。用户可以选择使用SequoiaDB分布式数据库替换MySQL默认的InnoDB引擎,在保持对Jira应用程序完整兼容的前提下做到弹性横向扩张。

JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。同时,开源则是其另一特色,在用户购买其软件的同时,也就将源代码也购置进来,方便做二次开发。JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。

bc924e57a7efa7e9abad0edc13c82942.png

通过阅读本文,用户可以了解到如何使用SequoiaDB巨杉数据库的MySQL实例无缝替换标准MySQL数据库。SequoiaDB巨杉数据库允许用户在不更改一行代码的情况下直接对已有应用进行后台MySQL数据库迁移。

通过使用SequoiaDB巨杉数据库,用户可以得到:

  • 水平弹性扩张

  • MySQL的100%全兼容

  • 优秀的交易性能

安装SequoiaDB

本文使用Linux Ubuntu Server 18.10作为服务器,SequoiaDB巨杉数据库版本为3.2.1。

本教程默认使用sudo用户名密码为“sequoiadb:sequoiadb”,默认home路径为/home/sequoiadb。

对于使用CentOS等其他Linux版本的用户,本文所描述的流程可能略有不同,需要根据实际情况自行调整。

下载SequoiaDB标准虚拟机模板的用户可以直接跳过该安装部署步骤。

1)下载并安装SequoiaDB巨杉数据库

$ wget http://cdn.sequoiadb.com/images/sequoiadb/x86_64/sequoiadb-3.2.1-linux_x86_64.tar.gz$ tar -zxvf sequoiadb-3.2.1-linux_x86_64.tar.gz$ cd sequoiadb-3.2.1/$ sudo ./setup.sh

之后一直回车确认各个默认参数即可。

2) 使用数据库实例用户创建默认实例

$ sudo su sdbadmin$ /opt/sequoiadb/tools/deploy/quickDeploy.sh$ exit
 

安装JIRA

本教程使用JIRA 8.2.1。

1)用户可以登录JIRA的官网

https://www.atlassian.com/software/jira/download下载安装包

或直接通过wget进行下载。

$ wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.1-x64.bin

注:JIRA官方安装文档位于

https://confluence.atlassian.com/adminjiraserver/installing-jira-applications-on-linux-938846841.html

2)执行安装包

$ chmod 755   atlassian-jira-software-8.2.1-x64.bin$ sudo   ./atlassian-jira-software-8.2.1-x64.bin

3)默认情况下,测试版的JIRA不提供MySQL JDBC驱动,因此需要手工下载驱动包。由于当前JIRA版本不支持MySQL 8的驱动,因此需要下载MySQL 5.1.x的JDBC安装包。

077b5b10a15dd32c805fef441e1fc233.png

或直接通过wget下载

$ wget https://downloads.mysql.com/archives/get/file/mysql-connector-java-5.1.46.tar.gz$ tar -zxvf mysql-connector-java-5.1.46.tar.gz

4)将JDBC驱动拷贝至JIRA的lib目录下并重启JIRA

$ sudo cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar   /opt/atlassian/jira/lib/$ sudo /opt/atlassian/jira/bin/shutdown.sh$ sudo /opt/atlassian/jira/bin/startup.sh

5)开启SequoiaDB巨杉数据库事务功能并设置默认隔离级别RC

$ sudo su sdbadmin$ /opt/sequoiadb/bin/sdb> db = new Sdb() ;> db.updateConf ( { transactionon:   true, transisolation: 1 } ) ;> quit ;$ /opt/sequoiadb/bin/sdbstop$ /opt/sequoiadb/bin/sdbstart

6)创建数据库

$ /opt/sequoiasql/mysql/bin/mysql -S   /opt/sequoiasql/mysql/database/3306/mysqld.sock -u rootmysql> create user   'sequoiadb'@'localhost' identified by 'sequoiadb';mysql> create database jira;mysql> grant all on jira.* to   'sequoiadb'@'localhost';mysql> grant all privileges on *.* to   'sequoiadb'@'%' identified by 'sequoiadb' with grant option;mysql> exit$ exit

配置JIRA

1)使用浏览器登录服务器IP地址的8080端口,选择“I’ll set it up myself”

e4af667eed69fad0873eee732effceee.png

2)数据库设置页面选择“My Own Database”,填入服务器IP地址、jira数据库名、以及sequoiadb:sequoiadb作为用户名密码

b4e0cba963335a35c41d5265409c9eba.png

3)点击Test Connection确认数据库连接正确

9b3c50ff13553d0b92d8f857ac8f7c53.png

4)点击Next创建数据库,并跟随导航进入注册页面

40bb09df1ea48d110c405f75e7bcf8ef.png

5)作为测试账户,用户可以点击“generate a Jira trial license”并在官网注册申请测试授权账号

ac21355471a7c6472d380d012f49ccef.png

6)将授权码黏贴到安装界面下并点击Next,用户名密码设置为默认sequoiadb:sequoiadb

d3bf457b68ac35340252e73364235980.png

7)完成安装设置并创建一个默认sequoiadb的项目

567dc8fbec720d8a186370d9f6ee6471.png

切换数据库至SequoiaDB

在JIRA的安装部署程序中,默认指定了InnoDB作为所有表的存储引擎。因此接下来用户可以通过mydumper与myloader将InnoDB的表切换至SequoiaDB。

1)停止JIRA

$ sudo /opt/atlassian/jira/bin/shutdown.sh

2)下载mydumper

$ wget https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper_0.9.5-2.xenial_amd64.deb$ sudo dpkg -i   mydumper_0.9.5-2.xenial_amd64.deb

3)导出jira数据库所有表

$ sudo su – sdbadmin$ mkdir temp$ mydumper -h 10.211.55.14 -P 3306 -u   sequoiadb -p sequoiadb -t 16 -F 64 -B jira -o ./temp

4)将所有InnoDB表替换为SequoiaDB引擎

$ sed -i   "s/InnoDB/SequoiaDB/g"  `grep   -R "InnoDB" -rl ./temp`

5)重新创建jira库并使用myloader导入数据

$ /opt/sequoiasql/mysql/bin/mysql -S   /opt/sequoiasql/mysql/database/3306/mysqld.sock -u rootmysql> drop database jira;mysql> create database jira;mysql> grant all on jira.* to   'sequoiadb'@'localhost';mysql> exit$ myloader -h 10.211.55.14 -u sequoiadb -p   sequoiadb -P 3306 -t 32 -d ./temp$ exit

6)重新启动JIRA服务

$ sudo /opt/atlassian/jira/bin/startup.sh

7)重新登录浏览器,如今JIRA后台所有的数据已经由MySQL迁移至SequoiaDB

0ee80b422e1fcbeeb899caba052aaa39.png

结论

SequoiaDB巨杉数据库作为一款分布式数据库,提供包括结构化SQL、与非结构化文件系统和对象存储的机制。

通过SequoiaDB创建的MySQL实例,能够提供与标准MySQL全兼容的SQL与DDL能力,用户无需调整DDL或SQL即可实现无缝透明地访问分布式表结构。

本文向读者展示了如何通过SequoiaDB的MySQL实例,实现与标准MySQL的无缝迁移。通过使用SequoiaDB巨杉数据库,用户可以在满足标准ACID与MySQL协议的基础上,实现近无限的弹性扩展能力。

a07d5d951250c368e9e1ecb7b07c145f.png

991462e1480142977aa8cc6288bea738.png

0569fb04b6d6713d593daf3b50b50a98.png

点击,获取更多精彩内容

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐