跳到主要内容

SSC集群搭建

数据库安装

调优操作系统参数

根据节点硬件和软件具体情况,调整默认操作系统参数,包括但不限于:

  1. /etc/sysctl.conf
#操作系统核心参数设置
#使用root用户在 /etc/sysctl.conf 中加入
kernel.shmmax = 4398046511104
kernel.shmall = 4294967296
kernel.sem = 250 32000 32 4096
vm.swappiness = 0
#使用root用户执行 sysctl -p 使修改的核心参数动态生效
  1. /etc/security/limits.conf
#永久修改ulimit的nofiles参数
#使用root用户在 /etc/security/limits.conf 中加入
* soft nofile 102400
* hard nofile 102400
#然后重新登录用户
  1. RHEL6.5:/etc/security/limits.d/90-nproc.conf,CentOS7:/etc/security/limits.d/20-nproc.conf
#增加内容
*           soft    nproc     4096
root        soft    nproc     unlimited
gbasedbt soft    nproc     unlimited

关闭或配置防火墙

操作系统自带的防火墙可能限制数据库端口的访问,因此,需要关闭各节点防火墙或者设置各节点的防火墙策略,开放相应的端口。例如,RHEL7或CentOS7中关闭防火墙的操作命令如下:

注意:需使用root用户执行。

RHEL6.5:

[root@PRIMARY ~]# service iptables stop

CentOS7:

[root@primary ~]# systemctl stop firewalld

关闭SELinux

关闭selinux,避免对数据库软件安装的影响。以下示例分别是临时关闭和永久关闭selinux的方法。

注意:需使用root用户执行。

立刻关闭:

[root@PRIMARY ~]# /usr/sbin/setenforce 0

永久关闭:

[root@PRIMARY ~]# vim /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled

安装数据库软件

GBase 8s详细安装步骤请参考单机版安装,集群环境建议选择Custom installation,并使用各缺省选项,不创建实例。

数据库配置

假设主节点实例名为gbaseserver,然后两个辅节点的实例名分别为gbaseserver1和gbaseserver2。以下数据库的配置均以主节点的数据库配置为例,两个辅节点数据库配置中实例相关的参数修改为对应辅节点的实例名即可(配置文件的名称无需修改)。

创建数据目录

进入安装目录,创建数据目录

[root@PRIMARY ~]# cd /opt/GBASE/gbase
[root@PRIMARY gbase]# su gbasedbt
[gbasedbt@PRIMARY gbase]$ mkdir gbaeserver_dbs

配置profile.gbaseserver环境变量文件

以 gbasedbt 用户身份,将默认环境变量 .bash_profile 文件复制一份,命名为 profile.gbaseserver,修改文件信息并保存。

[root@PRIMARY ~]# cd /home/gbasedbt/
[root@PRIMARY gbasedbt]# su gbasedbt
[gbasedbt@PRIMARY ~]$ vim profile.gbaseserver

内容示例如下:

export GBASEDBTSERVER=gbaseserver
export GBASEDBTDIR=/opt/GBASE/gbase
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserver
export ONCONFIG=onconfig.gbaseserver
export PATH=/opt/GBASE/gbase/bin:$PATH
export DB_LOCALE=zh_CN.GB18030-2000
export CLIENT_LOCALE=zh_CN.GB18030-2000
export GL_USEGLU=1

为了gbasedbt用户在登录后自动应用这些环境变量,可以修改.bash_profile文件,在文件后添加如下内容:

source /home/gbasedbt/profile.gbaseserver

配置sqlhosts.gbaseserver文件

以gbasedbt用户身份,将安装目录中的 sqlhosts.std 文档复制一份,命名为 sqlhost.gbaseserver。

[root@PRIMARY ~]# su gbasedbt
[gbasedbt@PRIMARY ~]$ cd /opt/GBASE/gbase/etc
[gbasedbt@PRIMARY etc]$ vim sqlhosts.gbaseserver

sqlhosts文件中需要将本次的3个节点的实例名、连接方式、IP、端口配置正确,示例如下:

gbaseserver onsoctcp 192.168.5.100 9088
gbaseserver1 onsoctcp 192.168.5.101 9088
gbaseserver2 onsoctcp 192.168.5.102 9088

配置onconfig.gbaseserver参数文件

以gbasedbt用户身份,将安装目录中的onconfig.std文件复制一份,命名为onconfig.gbaseserver。

[gbasedbt@PRIMARY etc]$ cp onconfig.std onconfig.gbaseserver
[gbasedbt@PRIMARY etc]$ vim onconfig.gbaseserver

主要参数说明如下:

参数说明
ROOTNAMErootdbs指定数据库服务器root dbspace的名称
ROOTPATH$GBASEDBTDIR/gbaseserver_dbs/rootdbs指定root dbspace的初始chunk全路径名,包括设备或文件
ROOTSIZE500000指定以KB为单位的root dbspace的初始chunk的大小,500000即500M左右
PHYSFILE100000指定物理日志文件大小,100000即100M左右
MSGPATH$GBASEDBTDIR/gbaseserver.log指定消息日志文件的全路径名
DBSPACETEMPdbspacetemp指定临时数据空间的名称
SBSPACETEMPsbspacetemp指定临时智能大对象空间的名称
SBSPACENAMEsbspace指定智能大对象空间的名称
SERVERNUM1指定共享内存中的相对位置,取值范围为0-255,多个数据库实例时候需要确保SERVERNUM唯一
DBSERVERNAMEgbaseserver数据库实例名
DRAUTO3指定由连接管理器控制
SDS_ENABLE主节点值为0,从节点的值修改为1是否启用辅助服务器功能
SDS_TEMPDBSsdsdbspacetemp,$GBASEDBTDIR/sds_dbs/sdsdbspacetemp,2,0,51200指定共享磁盘辅助服务器用于动态地创建临时数据空间的信息,2k大小,偏移量0,共50M
SDS_PAGING$GBASEDBTDIR/sds_dbs/paging1,$GBASEDBTDIR/sds_dbs/paging2指定两个作为缓冲区的文件信息

注意:相关参数中用到的文件不存在的需要以gbasedbt用户身份touch。

[gbasedbt@PRIMARY etc]$ cd /opt/GBASE/gbase/
[gbasedbt@PRIMARY gbase]$ mkdir sds_dbs
[gbasedbt@PRIMARY gbase]$ cd sds_dbs
[gbasedbt@PRIMARY sds_dbs]$ touch sdsdbspacetemp paging1 paging2
[gbasedbt@PRIMARY sds_dbs]$ chmod 660 sdsdbspacetemp paging1 paging2
由于默认权限高,为了安全需要chown为660

链接数据chunk文件到裸设备上

以gbasedbt用户身份执行如下命令,链接数据chunk文件到裸设备上,其中raw4是扩展分区跳过。

ln -s /dev/raw/raw1 $GBASEDBTDIR/gbaseserver_dbs/rootdbs
ln -s /dev/raw/raw2 $GBASEDBTDIR/gbaseserver_dbs/llogdbs
ln -s /dev/raw/raw3 $GBASEDBTDIR/gbaseserver_dbs/plogdbs
ln -s /dev/raw/raw5 $GBASEDBTDIR/gbaseserver_dbs/dbspace
ln -s /dev/raw/raw6 $GBASEDBTDIR/gbaseserver_dbs/dbspacetemp
ln -s /dev/raw/raw7 $GBASEDBTDIR/gbaseserver_dbs/sbspace
ln -s /dev/raw/raw8 $GBASEDBTDIR/gbaseserver_dbs/sbspacetemp

注意:3个节点均需要链接数据chunk文件到裸设备。

配置节点互信任

集群节点间需要配置互信,以保障同一用户在不同主机间的信任。

使用vim /home/gbasedbt/.rhosts命令,修改.rhosts文件并保存(如果没有该文件则需创建),内容如下:

192.168.5.100 gbasedbt
192.168.5.101 gbasedbt
192.168.5.102 gbasedbt

搭建集群关系

以gbasedbt用户身份登录,并执行 source /home/gbasedbt/.bash_profile命令设置为数据库环境变量。接下来初始化数据库实例,操作如下:

  1. 在PRIMARY:192.168.5.100节点执行如下命令,初始化并启动数据库服务,确认不报错
[gbasedbt@PRIMARY ~]$ oninit -ivwy

其中的-i选项表示初始化磁盘空间并使数据库服务器进入联机方式,-v选项表示打印所有过程信息,-w选项表示使服务器等待直至初始化成功,-y选项表示对所有提示默认选择YES。

注意

从节点不需要初始化实例。

  1. 在PRIMARY:192.168.5.100节点执行如下命令,让此节点成为集群的主节点,并确认不报错
[gbasedbt@PRIMARY ~]$ onmode -d set SDS primary gbaseserver

其中gbaseserver是实例名,SDS大写

  1. 在SSC1:192.168.5.101节点和SSC2:192.168.5.102节点执行如下命令,启动辅节点数据库服务,并确认不报错
[gbasedbt@PRIMARY ~]$ oninit -vy

查看节点状态

当从节点没有启动时,在PRIMARY:192.168.5.100节点执行onstat -g sds,可以看到On Line状态。在SSC1:192.168.5.101节点执行oninit -vy启动数据库服务。此时在PRIMARY:192.168.5.100节点执onstat -g sds可以看到SSC1已经加入。

[gbasedbt@PRIMARY ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00

GBase Database Server Version 12.10.FC4G1TL -- On-Line -- Up 00:02:03 -- 198912 Kbytes

Local server type: Primary
Number of SDS servers:1

SDS server information

SDS srv SDS srv Connection Last LPG sent Supports
name status status (log id,page) Proxy Writes
gbaseserver1 Active Connected 1,27814 N

在SSC1:192.168.5.101节点执行onstat -g sds 可以看到Soruce server信息。

[gbasedbt@SSC1 ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00

GBase Database Server Version 12.10.FC4G1TL -- Read-Only (SDS) -- Up 00:02:05 -- 198912 Kbytes

Local server type: SDS
Server Status : Active
Source server name: gbaseserver
Connection status: Connected
Last log page received(log id,page): 1,27814

然后在SSC2:192.168.5.102节点执行oninit -vy。此时在PRIMARY:192.168.5.100节点执行onstat -g sds看到第二台SSC2也加入了。

[gbasedbt@PRIMARY ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00

GBase Database Server Version 12.10.FC4G1TL -- On-Line -- Up 00:04:53 -- 198912 Kbytes

Local server type: Primary
Number of SDS servers:2

SDS server information

SDS srv SDS srv Connection Last LPG sent Supports
name status status (log id,page) Proxy Writes
gbaseserver1 Active Connected 1,27826 N
gbaseserver2 Active Connected 1,27826 N

至此SSC安装成功。

验证SSC

SSC集群安装成功后,客户端可以通过JDBC访问服务端。例如使用GBaseDataStudio连接到PRIMARY:192.168.5.100节点、SSC1:192.168.5.101节点、SSC2:192.168.5.102节点。对PRIMARY节点执行insert、update、delete操作,主节点对数据的修改可以在其他SSC节点体现。默认情况下SSC节点不支持写操作,如需支持,可通过onconfig文件的UPDATABLE_SECONDARY参数进行配置。