乐趣区

巨杉Tech-使用-SequoiaDB-分布式数据库搭建JIRA流程管理系统

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

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

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

通过阅读本文,用户可以了解到如何使用 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/imag…
$ 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/sof…,或直接通过 wget 进行下载。
$ wget https://www.atlassian.com/sof…

注:JIRA 官方安装文档位于
https://confluence.atlassian….

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/a…
$ 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
配置 JIRA
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 的项目

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

1)停止 JIRA
$ sudo /opt/atlassian/jira/bin/shutdown.sh

2)下载 mydumper
$ wget https://github.com/maxbube/my…
$ 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 协议的基础上,实现近无限的弹性扩展能力。

退出移动版