介绍

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

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

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

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

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

l  水平弹性扩张

l  MySQL的100%全兼容

l  优秀的交易性能

安装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安装包。

或直接通过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

配置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/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协议的基础上,实现近无限的弹性扩展能力。

巨杉Tech | 使用 SequoiaDB 分布式数据库搭建JIRA流程管理系统的更多相关文章

  1. 巨杉Tech | 使用 SequoiaDB + Docker + Nodejs 搭建 Web 服务器

    容器化技术的出现大大简化了应用开发人员在构建底层基础设施的工作.SequoiaDB 巨杉数据库于3.2.1版本正式推出了 Docker 容器化部署方案,本文将会基于 SequoiaDB 巨杉数据库与N ...

  2. 巨杉Tech|SequoiaDB 巨杉数据库高可用容灾测试

    数据库的高可用是指最大程度地为用户提供服务,避免服务器宕机等故障带来的服务中断.数据库的高可用性不仅仅体现在数据库能否持续提供服务,而且也体现在能否保证数据的一致性. SequoiaDB 巨杉数据库作 ...

  3. 巨杉Tech | SparkSQL+SequoiaDB 性能调优策略

    当今时代,企业数据越发膨胀.数据是企业的价值,但数据处理也是一种技术挑战.在海量数据处理的场景,即使单机计算能力再强,也无法满足日益增长的数据处理需求.所以,分布式才是解决该类问题的根本解决方案.而在 ...

  4. 巨杉Tech | 微服务趋势下的数据库设计与应用简析

    周五(7月12日)巨杉数据库参与了由得到App主办八里庄技术沙龙活动,分享主题是关于分布式数据库架构与实战. 以下就是根据巨杉数据库现场分享的内容进行的分享实录整理. 巨杉数据库简介 巨杉,专注新一代 ...

  5. 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践

    01 引言 随着用户的增长.业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍.其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈. ...

  6. 巨杉数据库SequoiaDB】巨杉Tech | SequoiaDB 分布式事务实现原理简介

    1 分布式事务背景 随着分布式数据库技术的发展越来越成熟,业内对于分布式数据库的要求也由曾经只用满足解决海量数据的存储和读取这类边缘业务向核心交易业务转变.分布式数据库如果要满足核心账务类交易需求,则 ...

  7. 【巨杉数据库SequoiaDB】巨杉Tech | “删库跑路”又出现,如何防范数据安全风险?

    最近,又双叕有企业被“删库”了.来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除,系统将停止运营超48小时. 频发的类似事件也让大家对于数据安全的关注不断提高.数据是一个科 ...

  8. 【巨杉数据库SequoiaDB】省级农信国产分布式数据库应用实践

    本文转载自<金融电子化> 原文链接:https://mp.weixin.qq.com/s/WGG91Rv9QTBHPsNVPG8Z5g 随着移动互联网的迅猛发展,分布式架构在互联网IT技术 ...

  9. 【巨杉数据库SequoiaDB】巨杉Tech | 四步走,快速诊断数据库集群状态

    1.背景 SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL.分布式文件系统与对象存储.与高性能 NoSQL 三种存储模式,分别对应分布式在线交易.非结构化数据和内容管 ...

随机推荐

  1. SSH-Secure-Shell 3.2.9 build283版本,创建直接打开文件传输的快捷方式的方法

    2019-12-31 16:21:23 版本信息: 在安装目录下新建快捷方式 目标填写:"D:\SSH-Secure-Shell\SshClient.exe" /f 图标选择,系统 ...

  2. 小Z的袜子(hose) HYSBZ - 2038 莫队+分块

    #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll>pl ...

  3. ArcGIS Runtime SDK for Android 加载shp数据,中文乱码问题

    针对ArcGIS10.2版本的解决办法(默认中文编码为OEM): 现有一个图层名称为“图层.shp”,以此为例: 1.拷贝一个cpg文件,修改名称为“图层.cpg”,并用文本打开cpg文件修改编码为“ ...

  4. elementui_day02

    Elementui_day02 1. maven多模块搭建 1.1 搭建多模块的好处 1. 方便维护(代码增加,拆分越细,越好维护) 2. 有些公共的内容(BaseDomain.BaseService ...

  5. linux---基础学习

    学习使用linux 偶然间看到一篇介绍linux的使用,于是看了看,整体看完,虽然看的有些懵✒,但还是坚持看完了基础部分,并做了一些摘要. man页面所属的分类标识 常用的是分类1和分类3 (1).用 ...

  6. 第二章.学习halcon的准备工作

    *图片读取 read_image (Test1, 'C:/Users/Administrator/Desktop/new/Test1.jpg') *文件夹读取 list_files ('C:/User ...

  7. CLion快捷键设置

    CLion自动格式化的快捷键默认为Ctrl+Alt+L,代码前后跳转CRTL+ALT+Left或CRTL+ALT+Right 但有时会和系统的快捷键冲突,需要修改CLion里面的快捷键 如图:sett ...

  8. spring boot的一些常用注解

    spring boot的一些常用注解: 使用@SpringBootApplication注释: 许多Spring Boot开发人员喜欢他们的应用程序使用自动配置,组件扫描,并能够在其“应用程序类”上定 ...

  9. 2020.01.19【NOIP提高组】模拟比赛-1.水池,2.数字排序,3.球星,4.钻石交易 总结反思

    水池 比赛时 我最讨厌这种数学类题了,我首先想到了这几种情况,设\(jl[][]\)表示两点之间弧的距离,从F到G可以由 F->G F->B->A->G F->A-> ...

  10. matlab bitset的理解

    在阅读别人的matlab程序中,发现了这个bitset函数.于是查阅资料搞明白了大概意思,意思如下: B= bitset(A,pos,V) 将A以二进制来表示,并将第pos个位置, 设置为 V 的值, ...