巨杉Tech | 使用 SequoiaDB 分散式資料庫搭建JIRA流程管理系統

OliverFinn發表於2019-06-13

介紹

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協議的基礎上,實現近無限的彈性擴充套件能力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31534344/viewspace-2647524/,如需轉載,請註明出處,否則將追究法律責任。

相關文章