巨杉数据库SequoiaDB的安装部署
巨杉数据库为国产数据库,官方自称为分布式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 #* 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 # * 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