巨衫數據庫SequoiaDB是一款金融級分佈數關係型數據庫,主要面對高併發OLTP場景提供高性能、可靠性穩定以及無限水平擴展的數據庫服務。用戶可在SequoiaDB巨衫數據庫中創建多種類型的數據庫實例(支持MYSQL、PostgreSQL、SparkSQL三種關係型數據庫實例,類MongoDB的Json文檔型數據庫實例、以及S#對象存儲與Posix文件系統的非結構化數據庫實例),以滿足上層不同應用程序各自的需求。本篇主要對巨衫數據庫的命令行安裝與部署進行分享。
1 軟件環境
- Oracle Linux 6.9
- Sequoia DB 3.4
2 系統配置
2.1 硬件要求
需求項 |
要求 |
建議 |
CPU |
- x86(Intel Pentium、Intel Xeon和AMD)32位Intel和AMD處理器 - 64(64位AMD64和Intel EMT處理器) - PowerPC 7或者PowerPC 7+處理器 |
建議採用X64(64位AMD64和Intel EM64T處理器)或PowerPC處理器 |
磁盤 |
至少20GB空間 |
建議大於100GB磁盤空間 |
內存 |
至少1GB |
大於2GB物理內存 |
網卡 |
配備至少1張網卡 |
建議至少配置1Gb網卡 |
2.2 受支持的操作系統
系統類型 |
系統列表 |
Linux |
- Red Hat Enterprise Linux (RHEL) 6 - Red Hat Enterprise Linux (RHEL) 7 - SUSE Linux Enterprise Server (SLES) 11 Service Pack 1 - SUSE Linux Enterprise Server (SLES) 11 Service Pack 2 - SUSE Linux Enterprise Server (SLES) 12 Service Pack 1 - Ubuntu 12.x - Ubuntu 14.x - Ubuntu 16.x - CentOS 6.x - CentOS 7.x |
未在上述列表中列舉的Linux操作系統不代表不能用於安裝Sequoia DB。
2.3 軟件要求
在安裝Sequoia之前,應先對Linux系統相關的配置進行檢查和設置,包括:
- 配置主機名
- 配置主機名/IP地址映射
- 配置防火牆
2.3.1 配置主機名
[root@strong ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=sdbserver1
[root@strong ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101 sdbserver1
2.3.2 配置防火牆
[root@strong ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@strong ~]# chkconfig iptables off
[root@strong ~]# vim /etc/selinux/config
SELINUX=disabled
2.3.3 調整ulimit參數
[root@strong ~]# vim /etc/security/limits.conf
* soft core 0
* soft data unlimited
* soft fsize unlimited
* soft rss unlimited
* soft as unlimited
參數說明:
- core:數據庫出現故障時產生core文件用於故障診斷,生產建議關閉;
- data:數據庫進程所允許分配的數據內存大小;
- fsize:數據庫進程所允許尋址的文件大小;
- rss:數據庫進程所允許的最大resident set大小;
- as:數據庫進程所允許最大虛擬內存尋址空間限制;
[root@strong ~]# vim /etc/security/limits.d/90-nproc.conf
* soft nproc unlimited
參數說明:
- 數據庫所允許的最大線程數限制;
2.3.4 調整內核參數
[root@strong ~]# vim /etc/sysctl.conf
vm.swappiness = 0
vm.dirty_ratio = 100
vm.dirty_background_ratio = 40
vm.dirty_expire_centisecs = 3000
vm.vfs_cache_pressure = 200
vm.min_free_kbytes = 600000(物理內存的8%,單位爲K,最大不超1GB)
vm.overcommit_memory = 2
vm.overcommit_ratio = 85
[root@strong ~]# sysctl -p
3 部署架構
部署完成後Sequoia DB巨衫數據庫的集羣拓撲結構爲三分區單副本,其中包括:1個SequoiaSQL-MySQL數據庫實例節點、1個引擎協調節點、1個編目節點和3個數據節點。
4 軟件安裝
4.1 準備安裝軟件
1)下載Sequoia DB安裝軟件
下載地址:SequoiaDB巨衫數據庫
2)上傳並解壓縮安裝軟件
[root@sdbserver1 ~]# tar zxvf sequoiadb-3.4-linux_x86_64.tar.gz
sequoiadb-3.4/
sequoiadb-3.4/setup.sh
sequoiadb-3.4/unset.sh
sequoiadb-3.4/sequoiasql-mysql-3.4-linux_x86_64-installer.run
sequoiadb-3.4/readme.txt
sequoiadb-3.4/sequoiasql-postgresql-3.4-x86_64-installer.run
sequoiadb-3.4/sequoiadb-3.4-linux_x86_64-installer.run
[root@sdbserver1 ~]# cd sequoiadb-3.4
[root@sdbserver1 sequoiadb-3.4]# chmod u+x sequoia*
[root@sdbserver1 sequoiadb-3.4]# ll
total 853572
-rwxrwxrwx. 1 nobody nfsnobody 1104 Jul 27 2019 readme.txt
-rwxr--r--. 1 root root 756098844 Nov 15 00:19 sequoiadb-3.4-linux_x86_64-installer.run
-rwxr--r--. 1 root root 104758705 Nov 15 00:19 sequoiasql-mysql-3.4-linux_x86_64-installer.run
-rwxr--r--. 1 root root 13176565 Nov 15 00:20 sequoiasql-postgresql-3.4-x86_64-installer.run
-rwxrwxrwx. 1 nobody nfsnobody 3861 Jul 2 2019 setup.sh
-rwxrwxrwx. 1 nobody nfsnobody 5828 Jul 2 2019 unset.sh
4.2 安裝Sequoia DB數據庫
1)運行安裝程序,選擇語言爲中文
[root@sdbserver1 sequoiadb-3.4]# ./setup.sh
Install sequoiadb Y/n: Y
--------------------------begin to install sequoiadb-------------------------
./sequoiadb-3.4-linux_x86_64-installer.run --mode text
Language Selection
Please select the installation language
[1] English - English
[2] Simplified Chinese - 簡體中文
Please choose an option [1] : 2
2)許可協議,默認
Please choose an option [1] : 2
----------------------------------------------------------------------------
由BitRock InstallBuilder評估本所建立
歡迎來到 SequoiaDB Server 安裝程序
----------------------------------------------------------------------------
重要信息:請仔細閱讀
下面提供了兩個許可協議。
1. SequoiaDB 評估程序的最終用戶許可協議
2. SequoiaDB 最終用戶許可協議
如果被許可方爲了生產性使用目的(而不是爲了評估、測試、試用“先試後買”或演示)獲得本程序,單擊下面的“接受”按鈕即表示被許可方接受 SequoiaDB 最終用戶許可協議,且不作任何修改。
如果被許可方爲了評估、測試、試用“先試後買”或演示(統稱爲“評估”)目的獲得本程序:單擊下面的“接受”按鈕即表示被許可方同時接受(i)SequoiaDB 評估程序的最終用戶許可協議(“評估許可”),且不作任何修改;和(ii)SequoiaDB 最終用戶程序許可協議(SELA),且不作任何修改。
在被許可方的評估期間將適用“評估許可”。
如果被許可方通過簽署採購協議在評估之後選擇保留本程序(或者獲得附加的本程序副本供評估之後使用),SequoiaDB 評估程序的最終用戶許可協議將自動適用。
“評估許可”和 SequoiaDB 最終用戶許可協議不能同時有效;兩者之間不能互相修改,並且彼此獨立。
這兩個許可協議中每個協議的完整文本如下。
評估程序的最終用戶許可協議
[1] 同意以上協議: 瞭解更多的協議內容,可以在安裝後查看協議文件
[2] 查看詳細的協議內容
請選擇一個選項 [1] :
3)輸入安裝路徑後回車,後面的步驟選擇默認選項
----------------------------------------------------------------------------
請指定 SequoiaDB Server 將會被安裝到的目錄
安裝目錄 [/opt/sequoiadb]:
----------------------------------------------------------------------------
是否強制安裝?強制安裝時可能會強殺殘留進程
是否強制安裝 [y/N]:
----------------------------------------------------------------------------
數據庫管理用戶配置
配置用於啓動SequoiaDB的用戶名、用戶組和密碼
用戶名 [sdbadmin]:
用戶組 [sdbadmin_group]:
密碼 [********] :
確認密碼 [********] :
----------------------------------------------------------------------------
集羣管理服務端口配置
配置SequoiaDB集羣管理服務端口,集羣管理用於遠程啓動添加和啓停數據庫節點
集羣管理服務端口 [11790]:
----------------------------------------------------------------------------
是否允許Sequoiadb相關進程開機自啓動?
Sequoiadb相關進程開機自啓動 [Y/n]:
----------------------------------------------------------------------------
是否安裝OM服務
[1] true
[2] false
[3] only
請選擇一個選項 [2] : 1
----------------------------------------------------------------------------
設定現在已經準備將 SequoiaDB Server 安裝到您的電腦.
您確定要繼續? [Y/n]:
----------------------------------------------------------------------------
正在安裝 SequoiaDB Server 於您的電腦中,請稍候.
安裝中
0% ______________ 50% ______________ 100%
########################################
----------------------------------------------------------------------------
安裝程序已經完成安裝 SequoiaDB Server 於你的電腦中.
----------------------------end install sequoiadb----------------------------
4)提示是否安裝MySQL或PostgreSQL實例,默認安裝MYSQL實例,選擇中文
Install 1:sequoiasql-mysql or 2:sequoiasql-postgresql, [1]: --------------------------begin to install sequoiasql-mysql-------------------------
./sequoiasql-mysql-3.4-linux_x86_64-installer.run --mode text
Language Selection
Please select the installation language
[1] English - English
[2] Simplified Chinese - 簡體中文
Please choose an option [1] : 2
----------------------------------------------------------------------------
由BitRock InstallBuilder評估本所建立
歡迎來到 SequoiaSQL MySQL Server 安裝程序
----------------------------------------------------------------------------
GNU 通用公共授權
第二版, 1991年6月
著作權所有 (C) 1989,1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
允許每個人複製和發佈本授權文件的完整副本,但不允許對它進行任何修改。
[1] 同意以上協議: 瞭解更多的協議內容,可以在安裝後查看協議文件
[2] 查看詳細的協議內容
請選擇一個選項 [1] :
----------------------------------------------------------------------------
請指定 SequoiaSQL MySQL Server 將會被安裝到的目錄
安裝目錄 [/opt/sequoiasql/mysql]:
----------------------------------------------------------------------------
數據庫管理用戶配置
配置用於啓動SequoiaSQL-MySql的用戶名、用戶組和密碼
用戶名 [sdbadmin]:
用戶組 [sdbadmin_group]:
密碼 [********] :
確認密碼 [********] :
----------------------------------------------------------------------------
設定現在已經準備將 SequoiaSQL MySQL Server 安裝到您的電腦.
您確定要繼續? [Y/n]:
----------------------------------------------------------------------------
正在安裝 SequoiaSQL MySQL Server 於您的電腦中,請稍候.
安裝中
0% ______________ 50% ______________ 100%
#########################################
----------------------------------------------------------------------------
安裝程序已經完成安裝 SequoiaSQL MySQL Server 於你的電腦中.
----------------------------end install sequoiasql-mysql----------------------------
4.3 安裝後檢查
[root@sdbserver1 sequoiadb-3.4]# service sequoiasql-mysql status
Status of service sequoiasql-mysql:
running. (PID: 3522)
[root@sdbserver1 sequoiadb-3.4]# su - sdbadmin
[sdbadmin@sdbserver1 ~]$ sequoiadb --version
SequoiaDB version: 3.4
Release: 32435
Git version: 485380326b0177244669df7906454a753a7fb900
2019-11-14-23.37.58
4.4 部署Sequoia DB及MySQL實例
部署SequoiaDB數據庫到本機上,包含1個Sequoia SQL-MySQL數據庫實例節點,1個協調節點、1個編目節點和3個數據節點。
4.4.1 集羣部署
1)切換到Sequoia DB快速部署腳本所在目錄
[sdbadmin@sdbserver1 ~]$ cd /opt/sequoiadb/tools/deploy/
[sdbadmin@sdbserver1 deploy]$ ll
total 60
-rw-rw-rw- 1 sdbadmin sdbadmin_group 248 Nov 15 00:02 mysql.conf
-rw-rw-rw- 1 sdbadmin sdbadmin_group 248 Nov 15 00:02 postgresql.conf
-rw-r--r-- 1 sdbadmin sdbadmin_group 41493 Nov 15 00:02 quickDeploy.js
-rwxr-xr-x 1 sdbadmin sdbadmin_group 3146 Nov 15 00:02 quickDeploy.sh
-rw-r--r-- 1 sdbadmin sdbadmin_group 478 Nov 15 00:02 sequoiadb.conf
2)查看快速部署腳本的Sequoia DB集羣的配置信息
[sdbadmin@sdbserver1 deploy]$ cat sequoiadb.conf
role,groupName,hostName,serviceName,dbPath
catalog,SYSCatalogGroup,localhost,11800,[installPath]/database/catalog/11800
coord,SYSCoord,localhost,11810,[installPath]/database/coord/11810
data,group1,localhost,11820,[installPath]/database/data/11820
data,group2,localhost,11830,[installPath]/database/data/11830
data,group3,localhost,11840,[installPath]/database/data/11840
# Note: This configuration file only supports cluster mode, doesn't support standalone mode.
3)查看快速部署腳本的Sequoia SQL-MySQL配置信息
[sdbadmin@sdbserver1 deploy]$ cat mysql.conf
instanceName,port,databaseDir,coordAddr
myinst,3306,[installPath]/database/3306,-
# Note: coordAddr, '-' means the first coord in sdb.conf. You can configure it by format hostName1:serviceName1 or [hostname1:serviceName1,hostname2:serviceName2]
4)運行快速部署腳本,顯示以下信息,Sequoia DB集羣和SequoiaSQL-MySQL實例部署完成
[sdbadmin@sdbserver1 deploy]$ ./quickDeploy.sh --sdb --mysql
Execute command: /opt/sequoiadb/tools/deploy/./../../bin/sdb -f /opt/sequoiadb/tools/deploy/./quickDeploy.js -e 'var sdb=true;var mysql=true;'
************ Deploy SequoiaDB ************************
Create catalog: sdbserver1:11800
Create coord: sdbserver1:11810
Create data: sdbserver1:11820
Create data: sdbserver1:11830
Create data: sdbserver1:11840
************ Deploy SequoiaSQL-MySQL *****************
Create instance: [name: myinst, port: 3306]
4.4.2 驗證部署
1)在MySQL實例中創建數據庫和表,進行數據操作
[sdbadmin@sdbserver1 deploy]$ mysql -h127.0.0.1 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database company;
Query OK, 1 row affected (0.00 sec)
mysql> use company;
Database changed
mysql> insert into employee (ename,age) values('Alen',28);
Query OK, 1 row affected (0.02 sec)
mysql> select * from employee;
+-------+-------+------+
| empno | ename | age |
+-------+-------+------+
| 1 | Alen | 28 |
+-------+-------+------+
1 row in set (0.00 sec)
2)在數據引擎層查詢數據
[sdbadmin@sdbserver1 deploy]$ sdb
Welcome to SequoiaDB shell!
help() for help, Ctrl+c or quit to exit
> var db=new Sdb('localhost',11810)
Takes 0.005539s.
> db.company.employee.find()
{
"_id": {
"$oid": "5e7eb693f598f3daa0f79149"
},
"ename": "Alen",
"age": 28,
"empno": 1
}
Return 1 row(s).
Takes 0.012581s.
至此,Sequoia DB與Mysql實例安裝、部署完畢;