安装和配置
安装数据库
GBase 8s详细安装步骤请参考单机版安装,集群环境建议选择Custom installation,并使用各缺省选项,不创建实例,主节点准备创建的实例名为gbaseserver。
配置数据库
创建数据目录
进入安装目录,创建数据目录
[root@PRIMARY ~]# cd /opt/GBASE/gbase
[root@PRIMARY gbase]# su gbasedbt
[gbasedbt@PRIMARY gbase]$ mkdir gbaseserver_dbs
[gbasedbt@PRIMARY gbase]$ cd gbaseserver_dbs
[gbasedbt@PRIMARY gbaseserver_dbs]$ touch rootdbs
[gbasedbt@PRIMARY gbaseserver_dbs]$ chmod 660 rootdbs
配置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文件
[root@PRIMARY ~]# su gbasedbt
[gbasedbt@PRIMARY ~]$ cd /opt/GBASE/gbase/etc
[gbasedbt@PRIMARY etc]$ vim sqlhosts.gbaseserver
sqlhosts文件中需要将本次的2个节点的实例名、连接方式、IP、端口配置正确。
gbaseserver onsoctcp 192.168.5.100 9088
gbaseserver_hac onsoctcp 192.168.5.110 9088
配置onconfig.gbaseserver参数文件
以gbasedbt用户身份,将/opt/GBASE/gbase/etc/目录中的onconfig.std文件复制一份,命名为profile.gbaseserver中$ONCONFIG变量指定的名称onconfig.gbaerserver。
[gbasedbt@PRIMARY etc]$ cp onconfig.std onconfig.gbaseserver
[gbasedbt@PRIMARY etc]$ vim onconfig.gbaseserver
主要参数说明如下:
参数 | 值 | 说明 |
---|---|---|
ROOTNAME | rootdbs | 指定数据库服务器root dbspace的名称 |
ROOTPATH | $GBASEDBTDIR/gbaseserver_dbs/rootdbs | 指定root dbspace的初始chunk全路径名,包括设备或文件 |
ROOTSIZE | 500000 | 指定以KB为单位的root dbspace的初始chunk的大小,500000即500M左右 |
PHYSFILE | 100000 | 指定物理日志文件大小,100000即100M左右 |
MSGPATH | $GBASEDBTDIR/gbaseserver.log | 指定消息日志文件的全路径名 |
DBSPACETEMP | dbspacetemp | 指定临时数据空间的名称 |
SBSPACETEMP | sbspacetemp | 指定临时智能大对象空间的名称 |
SBSPACENAME | sbspace | 指定智能大对象空间的名称 |
SERVERNUM | 1 | 指定共享内存中的相对位置,取值范围为0-255,多个数据库实例时候需要确保SERVERNUM唯一 |
DBSERVERNAME | gbaseserver | 数据库实例名 |
DRAUTO | 3 | 指定由连接管理器控制 |
配置节点互信任
集群中节点都需要vim /home/gbasedbt/.rhosts,内容如下(如果没有自动创建):
192.168.5.100 gbasedbt
192.168.5.110 gbasedbt
192.168.5.111 gbasedbt
192.168.5.112 gbasedbt
调优操作系统参数
根据节点硬件和软件具体情况,调整默认操作系统参数,包括但不限于:
- /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 使修改的核心参数动态生效
- /etc/security/limits.conf
#永久修改ulimit的nofiles参数
#使用root用户在 /etc/security/limits.conf 中加入
* soft nofile 102400
* hard nofile 102400
#然后重新登录用户
- 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
配置完成
通过上述步骤完成了PRIMARY:192.168.5.100节点的准备工作。
配置同城灾备辅节点
配置集群内其他节点
同城灾备集群只支持一个辅节点,重复上述步骤准备HAC:192.168.5.110节点,这个节点与主节点设置上有如下不同:
- 实例名
PRIMARY:192.168.5.100节点实例名为gbaseserver, HAC:192.168.5.110节点实例名建议为gbaseserver_hac。
请依次修改下面几个文件中的实例名和文件名,建议加_hac后缀区分,例如:
/home/gbasedbt/profile.gbaseserver_hac:
export GBASEDBTSERVER=gbaseserver_hac
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserver_hac
export ONCONFIG=onconfig.gbaseserver_hac
/opt/GBASE/gbase/etc/onconfig.gbaseserver_hac:
SERVERNUM 10
DBSERVERNAME gbaseserver_hac
- SERVERNUM
PRIMARY节点的SERVERNUM配置的是1,建议HAC节点的SERVERNUM配置为10。
原则:保证唯一。
以root用户身份关闭各个节点防火墙
RHEL6.5:
[root@PRIMARY ~]# service iptables stop
CentOS7:
[root@primary ~]# systemctl stop firewalld
可根据需要以root用户身份关闭SELinux
立刻关闭:
[root@PRIMARY ~]# /usr/sbin/setenforce 0
永久更改:
[root@PRIMARY ~]# vim /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled
以gbasedbt用户身份登录
可以直接切换到gbasedbt用户,也可以:
[root@PRIMARY ~]# su gbasedbt
[gbasedbt@PRIMARY root]$ source /home/gbasedbt/.bash_profile
如果想在切换用户之后使用新用户的工作环境,也可以在su和用户名之间加-:
[root@PRIMARY ~]# su - gbasedbt
初始化实例
- 在PRIMARY:192.168.5.100节点执行,并确认不报错
[gbasedbt@PRIMARY ~]$ oninit -ivwy
其中的-i选项表示初始化磁盘空间并使数据库服务器进入联机方式,-w选项表示在返回至shell提示符并返回代码0之前迫使服务器等待直到成功初始化为止。
- 在PRIMARY:192.168.5.100节点执行,并确认不报错
[gbasedbt@PRIMARY ~]$ onmode -d primary gbaseserver_hac
其中gbaseserver_hac是辅节点实例名
- HAC:192.168.5.110节点确保可正常启动数据库服务但是不需要启动数据库服务。然后在主节点进行0级全备,并使用管道恢复到辅节点。备份及恢复结束后HAC:192.168.5.110节点执行:onstat -,状态应为Fast Recovery
[gbasedbt@PRIMARY ~]$ ontape -s -L 0 -t STDIO | ssh 192.168.5.110 "source /home/gbasedbt/profile.gbaseserver_hac && ontape -p -t STDIO "
- HAC:192.168.5.110节点执行,并确认不报错
[gbasedbt@HAC ~]$ onmode -d secondary gbaseserver
查看节点状态
在PRIMARY:192.168.5.100节点执行onstat -g dri,可以看到On-Line(Prim)状态。
[gbasedbt@PRIMARY ~]$ onstat -g dri
Your evaluation license will expire on 2021-05-21 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- On-Line (Prim) -- Up 00:08:23 -- 207104 Kbytes
Data Replication at 0x45e11028:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
primary on gbaseserver_hac 2 / 5 NA
DRINTERVAL 0
DRTIMEOUT 30
DRAUTO 3
DRLOSTFOUND /opt/GBASE/gbase/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
Last Send 2020/05/25 15:35:14
Last Receive 2020/05/25 15:35:14
Last Ping 2020/05/25 15:34:47
Last log page applied(log id,page): 2,6
在HAC:192.168.5.110节点执行onstat -g dri 可以看到Read-Only(Sec)状态 。
[gbasedbt@HAC ~]$ onstat -g dri
Your evaluation license will expire on 2021-05-25 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- Read-Only (Sec) -- Up 00:08:53 -- 198912 Kbytes
Data Replication at 0x45e0c028:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
HDR Secondary on gbaseserver 2 / 5 N
DRINTERVAL 0
DRTIMEOUT 30
DRAUTO 3
DRLOSTFOUND /opt/GBASE/gbase/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
Last Send 2020/05/25 15:37:37
Last Receive 2020/05/25 15:37:37
Last Ping 2020/05/25 15:37:17
Last log page applied(log id,page): 0,0
至此同城灾备集群安装成功。
配置异地灾备辅节点
配置集群内其他节点
异地灾备集群支持多个辅节点,重复上述步骤准备HAC1:192.168.5.111节点和HAC2:192.168.5.112节点,这2个辅节点与主节点设置上有如下不同:
- 实例名
HAC1:192.168.5.111节点实例名建议为gbaseserver_hac1,HAC2:192.168.5.112节点实例名建议为gbaseserver_hac2。
HAC1辅节点请依次修改下面几个文件中的实例名,例如:
/home/gbasedbt/profile.gbaseserver_hac:
export GBASEDBTSERVER=gbaseserver_hac1
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserver_hac
export ONCONFIG=onconfig.gbaseserver_hac
/opt/GBASE/gbase/etc/onconfig.gbaseserver_hac:
SERVERNUM 11
DBSERVERNAME gbaseserver_hac1
LOG_INDEX_BUILDS 1
HAC2辅节点请依次修改下面几个文件中的实例名,例如:
/home/gbasedbt/profile.gbaseserver_hac:
export GBASEDBTSERVER=gbaseserver_hac2
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserver_hac
export ONCONFIG=onconfig.gbaseserver_hac
/opt/GBASE/gbase/etc/onconfig.gbaseserver_hac:
SERVERNUM 12
DBSERVERNAME gbaseserver_hac2
LOG_INDEX_BUILDS 1
- SERVERNUM
PRIMARY节点的SERVERNUM配置的是1,HAC节点的SERVERNUM配置的是10。
建议HAC1节点的SERVERNUM配置为11,建议HAC2节点的SERVERNUM配置为12。
原则:保证唯一。
- LOG_INDEX_BUILDS
PRIMARY节点和HAC1、HAC2节点此参数均需要配置为1。
以root用户身份关闭各个节点防火墙
RHEL6.5:
[root@PRIMARY ~]# service iptables stop
CentOS7:
[root@primary ~]# systemctl stop firewalld
可根据需要以root用户身份关闭SELinux
立刻关闭:
[root@PRIMARY ~]# /usr/sbin/setenforce 0
永久更改:
[root@PRIMARY ~]# vim /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled
以gbasedbt用户身份登录
可以直接切换到gbasedbt用户,也可以:
[root@PRIMARY ~]# su gbasedbt
[gbasedbt@PRIMARY root]$ source /home/gbasedbt/.bash_profile
如果想在切换用户之后使用新用户的工作环境,也可以在su和用户名之间加-:
[root@PRIMARY ~]# su - gbasedbt
初始化实例
- 如果是初次使用,在PRIMARY:192.168.5.100节点执行,并确认不报错:
[gbasedbt@PRIMARY ~]$ oninit -ivwy
其中的-i选项表示初始化磁盘空间并使数据库服务器进入联机方式,-w选项表示在返回至shell提示符并返回代码0之前迫使服务器等待直到成功初始化为止。
- 如果同城灾备集群部分已初始化实例,则在PRIMARY:192.168.5.100节点执行,并确认不报错:
[gbasedbt@PRIMARY ~]$ oninit -vwy
- 启动数据库服务后使用onmode命令把HAC1节点加入到主服务器,即在PRIMARY:192.168.5.100节点执行,并确认不报错:
[gbasedbt@PRIMARY ~]$ onmode -d add RSS gbaseserver_hac1
- HAC1:192.168.5.111节点确保可正常启动数据库服务但是不需要启动数据库服务。然后在主节点进行0级全备,并使用管道恢复到HAC1点:
[gbasedbt@PRIMARY ~]$ onape -s -L 0 -t STDIO | ssh 192.168.5.111 "source /home/gbasedbt/profile.gbaseserver_hac && ontape -p -t STDIO "
-
备份及恢复结束后HAC1:192.168.5.111节点执行:onstat -,状态应为Fast Recovery
-
HAC1:192.168.5.111节点执行onmode -d RSS gbaseserver,状态变为Read-Only(RSS)
-
可重复步骤3至6,操作HAC2辅节点。
查看节点状态
在PRIMARY:192.168.5.100节点执行onstat -g rss verbose,可以看到On-Line(Prim)状态。
[gbasedbt@PRIMARY etc]$ onstat -g rss verbose
Your evaluation license will expire on 2021-05-21 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- On-Line (Prim) -- Up 16:10:57 -- 207104 Kbytes
Local server type: Primary
Index page logging status: Enabled
Index page logging was enabled at: 2020/05/25 17:48:47
Number of RSS servers: 1
RSS Server information:
RSS Server control block: 0x4e323170
RSS server name: gbaseserver_hac1
RSS server status: Active
RSS connection status: Connected
RSS flow control:384/352
Log transmission status: Active
Next log page to send(log id,page): 2,4006
Last log page acked(log id,page): 2,4005
Last log page applied(log id,page): 2,4005
Time of Last Acknowledgement: 2020-05-26.10:14:36
Pending Log Pages to be ACKed: 0
Approximate Log Page Backlog:0
Sequence number of next buffer to send: 163
Sequence number of last buffer acked: 162
Supports Proxy Writes: N
在HAC1:192.168.5.111节点和HAC2:192.168.5.112节点执行onstat -g rss verbose,可以看到Read-Only(RSS)状态 。
[gbasedbt@HAC1 ~]$ onstat -g rss verbose
Your evaluation license will expire on 2021-05-25 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- Read-Only (RSS) -- Up 00:55:03 -- 207104 Kbytes
RSS Server control block: 0x45e3ca70
Local server type: RSS
Server Status : Active
Source server name: gbaseserver
Connection status: Connected
Last log page received(log id,page): 2,4005
Sequence number of last buffer received: 162
Sequence number of last buffer acked: 162
Delay Apply: Not configured.
Stop Apply: Not configured.
Delay or Stop Apply not active.
至此异地灾备集群安装成功。
验证HAC
HAC集群安装成功后,客户端可以通过JDBC访问服务端。例如使用GBaseDataStudio连接到PRIMARY:192.168.5.100节点、HAC:192.168.5.110节点、HAC1:192.168.5.111节点、HAC2:192.168.5.112节点。对PRIMARY节点执行insert、update、delete操作,主节点对数据的修改可以同步到HAC节点、HAC1节点、HAC2节点。默认情况下HAC节点、HAC1节点、HAC2节点不支持写操作,如需支持,可通过onconfig文件的UPDATABLE_SECONDARY参数进行配置。