JIRA是Atlassian公司出品的项目与事务跟踪工具,被普遍应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工做领域。不少企业与互联网公司都在使用Jira做为内部流程管理系统,进行团队协做与问题单管理。html
JIRA的后台数据库能够选择使用嵌入式数据库或MySQL/PGSQL等专业数据库。通常来讲,大部分企业选择MySQL做为底层的数据存储。可是,随着问题工单的不断积累,对于较大型企业来讲MySQL所支撑的数据量可能很快达到瓶颈。用户能够选择使用SequoiaDB分布式数据库替换MySQL默认的InnoDB引擎,在保持对Jira应用程序完整兼容的前提下作到弹性横向扩张。java
JIRA 是目前比较流行的基于Java架构的管理系统,因为Atlassian公司对不少开源项目实行免费提供缺陷跟踪服务,所以在开源领域,其认知度比其余的产品要高得多,并且易用性也好一些。同时,开源则是其另外一特点,在用户购买其软件的同时,也就将源代码也购置进来,方便作二次开发。JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。mysql
经过阅读本文,用户能够了解到如何使用SequoiaDB巨杉数据库的MySQL实例无缝替换标准MySQL数据库。SequoiaDB巨杉数据库容许用户在不更改一行代码的状况下直接对已有应用进行后台MySQL数据库迁移。linux
经过使用SequoiaDB巨杉数据库,用户能够获得:git
本文使用Linux Ubuntu Server 18.10做为服务器,SequoiaDB巨杉数据库版本为3.2.1。github
本教程默认使用sudo用户名密码为“sequoiadb:sequoiadb”,默认home路径为/home/sequoiadb。sql
对于使用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 |
以后一直回车确认各个默认参数便可。
$ sudo su sdbadmin $ /opt/sequoiadb/tools/deploy/quickDeploy.sh $ exit |
本教程使用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官方安装文档位于 |
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安装包。
或直接经过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 root mysql> 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 |
1)使用浏览器登陆服务器IP地址的8080端口,选择“I’ll set it up myself”
2)数据库设置页面选择“My Own Database”,填入服务器IP地址、jira数据库名、以及sequoiadb:sequoiadb做为用户名密码
3)点击Test Connection确认数据库链接正确
4)点击Next建立数据库,并跟随导航进入注册页面
5)做为测试帐户,用户能够点击“generate a Jira trial license”并在官网注册申请测试受权帐号
6)将受权码黏贴到安装界面下并点击Next,用户名密码设置为默认sequoiadb:sequoiadb
7)完成安装设置并建立一个默认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 root mysql> 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
SequoiaDB巨杉数据库做为一款分布式数据库,提供包括结构化SQL、与非结构化文件系统和对象存储的机制。
经过SequoiaDB建立的MySQL实例,可以提供与标准MySQL全兼容的SQL与DDL能力,用户无需调整DDL或SQL便可实现无缝透明地访问分布式表结构。
本文向读者展现了如何经过SequoiaDB的MySQL实例,实现与标准MySQL的无缝迁移。经过使用SequoiaDB巨杉数据库,用户能够在知足标准ACID与MySQL协议的基础上,实现近无限的弹性扩展能力。