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
l 水平彈性擴張github
l MySQL的100%全兼容sql
l 優秀的交易性能數據庫
本文使用Linux Ubuntu Server 18.10做爲服務器,SequoiaDB巨杉數據庫版本爲3.2.1。瀏覽器
本教程默認使用sudo用戶名密碼爲「sequoiadb:sequoiadb」,默認home路徑爲/home/sequoiadb。服務器
對於使用CentOS等其餘Linux版本的用戶,本文所描述的流程可能略有不一樣,須要根據實際狀況自行調整。
下載SequoiaDB標準虛擬機模板的用戶能夠直接跳過該安裝部署步驟。
1)下載並安裝SequoiaDB巨杉數據庫
$ wget cdn.sequoiadb.com/images/sequ… $ 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 8.2.1。
1)用戶能夠登陸JIRA的官網www.atlassian.com/software/ji…下載安裝包,或直接經過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 downloads.mysql.com/archives/ge… $ 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 github.com/maxbube/myd… $ 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協議的基礎上,實現近無限的彈性擴展能力。