巨杉数据库为国产数据库,官方自称为分布式NewSQL数据库,语法类似于mongodb。连一些内部的机制都很相似。
如mongodb的ObjectId由Time,Machine,PID,INC构成,而sdb的ObjectId由Time,Machine,INC构成,构造方法为org.bson.types.ObjectId.ObjectId(Date time, int machine, int inc)。
如巨杉的ObjectId类中,可以查到带有mongod的方法:ObjectId.babbleToMongod(arg0)
总之巨杉跟mongodb有着很大的渊源,这里就不展开了。
在部署的时候主要有三大步骤:
1.主机配置,所有节点都建议配置。
2.数据库软件安装,所有节点都需安装。
3.数据库集群配置,在其中的一个节点即可。
--主机配置
[root@node1 ~]$ vi /etc/security/limits.conf
#<domain> <type> <item> <value>
* soft core 0
* soft data unlimited
* soft fsize unlimited
* soft rss unlimited
* soft as unlimited
[root@node1 ~]$ vi /etc/security/limits.d/90-nproc.conf
#<domain> <type> <item> <value>
* soft nproc unlimited
cat /proc/sys/vm/dirty_ratio
cat /proc/sys/vm/dirty_background_ratio
cat /proc/sys/vm/dirty_expire_centisecs
cat /proc/sys/vm/vfs_cache_pressure
cat /proc/sys/vm/min_free_kbytes
[root@node1 ~]$ cat /proc/sys/vm/dirty_ratio
20
[root@node1 ~]$ cat /proc/sys/vm/dirty_background_ratio
10
[root@node1 ~]$ cat /proc/sys/vm/dirty_expire_centisecs
3000
[root@node1 ~]$ cat /proc/sys/vm/vfs_cache_pressure
100
[root@node1 ~]$ cat /proc/sys/vm/min_free_kbytes
45056
[root@node1 ~]$ vi /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 = 1000000
当数据库可用物理内存不足 8GB 时不需使用 vm.swappiness = 0;
vm.min_free_kbytes为<物理内存大小的8%,单位KB>
[root@node1 ~]$ /sbin/sysctl -p
--关闭防火墙,或开通下面部署时需要的端口
chkconfig |grep ip
service iptables stop
chkconfig iptables off
--配置主机映射
vi /etc/hosts
192.168.239.129 node1
192.168.239.135 node2
192.168.239.136 node3
--创建数据库
[root@node1 ~]$ su - root
[root@node1 ~]# ./sequoiadb-1.12.5-linux_x86_64-installer.run --SMS false
Language Selection
Please select the installation language
[1] English - English
[2] Simplified Chinese - 简体中文
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] : 1
----------------------------------------------------------------------------
同意以上协议
按 [Enter] 继续 : --回车
您接受这个软件授权协议吗? [y/n]: y
----------------------------------------------------------------------------
请指定 SequoiaDB Server 将会被安装到的目录
安装目录 [/opt/sequoiadb]:
----------------------------------------------------------------------------
数据库管理用户配置
配置用于启动SequoiaDB的用户名和密码
用户名 [sdbadmin]:
密码 [********] : --回车
确认密码 [********] : --回车
配置SequoiaDB集群管理服务端口,集群管理用于远程启动添加和启停数据库节点
端口 [11790]:
是否允许Sequoiadb相关进程开机自启动
Sequoiadb相关进程开机自启动 [Y/n]: Y
是否安装OM服务 [y/N]: y
----------------------------------------------------------------------------
设定现在已经准备将 SequoiaDB Server 安装到您的电脑.
您确定要继续? [Y/n]: Y
----------------------------------------------------------------------------
正在安装 SequoiaDB Server 于您的电脑中,请稍候.
安装中
0% ______________ 50% ______________ 100%
#########################################
----------------------------------------------------------------------------
安装程序已经完成安装 SequoiaDB Server 于你的电脑中.
--配置环境变量
[root@node1 root]# vi /etc/profile
export SDB_HOME=/data1/sequoiadb
export PATH=$PATH:${SDB_HOME}/bin
[root@node1 ~]$ ps -ef|grep sdb
sdbadmin 14533 1 0 23:00 ? 00:00:00 sdbcmd
sdbadmin 14535 1 0 23:00 ? 00:00:00 sdbcm(11790)
sdbadmin 14548 1 4 23:00 ? 00:00:06 sdbom(11780)
root 14618 14594 0 23:02 pts/0 00:00:00 su - sdbadmin
sdbadmin 14624 14618 0 23:02 pts/0 00:00:00 -bash
sdbadmin 14647 14624 0 23:02 pts/0 00:00:00 sdb
root 14677 14653 0 23:03 pts/1 00:00:00 grep sdb
数据库软件安装完需要3.6G空间
集群模式全部安装完,node1需要8.1G,其他节点需要7.8G空间
--集群安装
主机node1的安装目录是:/opt/sequoiadb
[root@node1 ~]$ su - sdbadmin
-bash-4.1$ sdb
> var oma = new Oma("localhost", 11790) --建立临时的coord协调进程
> oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")
> oma.startNode(18800)
> var db = new Sdb("localhost",18800) --new一个db,后面创建都是通过db
> db.createCataRG("node1", 11800, "/opt/sequoiadb/database/cata/11800")
> var cataRG = db.getRG("SYSCatalogGroup");
> var node2 = cataRG.createNode("node2", 11800,"/opt/sequoiadb/database/cata/11800") --catalognode
> var node3 = cataRG.createNode("node3", 11800,"/opt/sequoiadb/database/cata/11800")
> node2.start()
> node3.start()
> var dataRG = db.createRG("datagroup")
> dataRG.createNode("node1", 11820, "/opt/sequoiadb/database/data/11820") --datanode
> dataRG.createNode("node2", 11820, "/opt/sequoiadb/database/data/11820")
> dataRG.createNode("node3", 11820, "/opt/sequoiadb/database/data/11820")
> dataRG.start()
> var rg = db.createCoordRG()
> rg.createNode("node1", 11810, "/opt/sequoiadb/database/coord/11810") --coordnode
> rg.createNode("node2", 11810, "/opt/sequoiadb/database/coord/11810")
> rg.createNode("node3", 11810, "/opt/sequoiadb/database/coord/11810")
> rg.start()
> var oma = new Oma("localhost", 11790)
> oma.removeCoord(18800) --删除临时的coord协调进程
var db = new Sdb("localhost",11810)
-bash-4.1$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_node1-lv_root
18G 4.4G 12G 27% /
tmpfs 908M 72K 908M 1% /dev/shm
/dev/sda1 477M 37M 415M 9% /boot
/dev/sdb1 20G 7.8G 11G 42% /data1 --全部安装完需要7.8G空间
[root@node1 ~]$ ps -ef|grep sdb
sdbadmin 14894 1 0 Apr03 ? 00:00:06 sdbcmd
sdbadmin 14898 1 0 Apr03 ? 00:00:37 sdbcm(11790)
sdbadmin 14914 1 0 Apr03 ? 00:01:23 sdbom(11780)
root 15350 15317 0 Apr03 pts/0 00:00:00 su - sdbadmin
sdbadmin 15356 15350 0 Apr03 pts/0 00:00:00 -bash
sdbadmin 15383 15356 0 Apr03 pts/0 00:00:00 sdb
sdbadmin 15435 1 3 Apr03 ? 00:00:25 sequoiadb(11800) C --catalognode
sdbadmin 15493 1 2 00:01 ? 00:00:09 sequoiadb(11820) D --datanode
sdbadmin 15518 1 0 00:03 ? 00:00:01 sequoiadb(11810) S --coordnode
root 15534 15392 1 00:07 pts/1 00:00:00 grep sdb
> dataRG.start()
ps -ef|grep sdb --启动的时候相当于是执行下面的脚本
sdbadmin 15347 15049 3 00:11 ? 00:00:00 /opt/sequoiadb/bin/sdbstart --confpath /opt/sequoiadb/bin/../conf/local/11850
sdbadmin 15350 15347 32 00:11 ? 00:00:03 /opt/sequoiadb/bin/sequoiadb --confpath /opt/sequoiadb/bin/../conf/local/11850
巨杉数据库SequoiaDB的安装部署
最新推荐文章于 2021-03-25 16:44:13 发布