巨杉数据库SequoiaDB是一款金融级分布数关系型数据库,主要面对高并发OLTP场景提供高性能、可靠性稳定以及无限水平扩展的数据库服务。用户可在SequoiaDB巨杉数据库中创建多种类型的数据库实例(支持MYSQL、PostgreSQL、SparkSQL三种关系型数据库实例,类MongoDB的Json文档型数据库实例、以及S#对象存储与Posix文件系统的非结构化数据库实例),以满足上层不同应用程序各自的需求。本篇主要对巨杉数据库的命令行安装与部署进行分享。
需求项 |
要求 |
建议 |
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网卡 |
系统类型 |
系统列表 |
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。
在安装Sequoia之前,应先对Linux系统相关的配置进行检查和设置,包括:
[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
[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
[root@strong ~]# vim /etc/security/limits.conf
* soft core 0
* soft data unlimited
* soft fsize unlimited
* soft rss unlimited
* soft as unlimited
参数说明:
[root@strong ~]# vim /etc/security/limits.d/90-nproc.conf
* soft nproc unlimited
参数说明:
[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
部署完成后Sequoia DB巨杉数据库的集群拓扑结构为三分区单副本,其中包括:1个SequoiaSQL-MySQL数据库实例节点、1个引擎协调节点、1个编目节点和3个数据节点。
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
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----------------------------
[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
部署SequoiaDB数据库到本机上,包含1个Sequoia SQL-MySQL数据库实例节点,1个协调节点、1个编目节点和3个数据节点。
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]
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实例安装、部署完毕;