GBase 8s数据库灾备集群(同城灾备辅节点)详细搭建
文章目录
灾备集群安装
环境准备
集群节点准备
- 准备1个主节点、1个同城辅节点
- PRIMARY:10.197.167.136
- HAC:10.197.167.137
- 硬件要求
GBase 8s同城灾备集群支持一个辅节点,GBase 8s异地灾备集群支持多个辅节点,以下为单节点推荐配置:
| 硬件 | 最低配置 | 推荐配置 |
|---|---|---|
| 处理器 | 1×2核 2.0GHz | 4×4核 3.0GHz |
| 内存 | 4GB | 64GB或更多 |
| 硬盘 | 100GB | 1TB |
| 光驱 | CD-ROM | CD-ROM |
- 平台要求:
GBase 8s灾备集群支持安装部署在x86、飞腾、鲲鹏、龙芯等多种平台上,支持的操作系统包括RedHat6.x、CentOS6.x等主流OS,并包括UOS、麒麟、凝思磐石等国产OS。
| 序号 | 操作系统 | CPU(平台) | 位数 |
|---|---|---|---|
| 1 | Redhat6.x、CentOS6.x及以上 | x86 | 64位 |
| 2 | 麒麟 V10、UOS V20 | 飞腾、鲲鹏平台 | 64位 |
| 3 | 麒麟 V10、UOS V20 | 龙芯平台 | 64位 |
本手册以Redhat Enterprise Linux 6.5 64位操作系统为例进行讲解,对于RHEL后续版本和CentOS等其他Linux内核操作系统,请大家做相应调整。
组和用户
- 以root用户身份创建gbasedbt组和用户
[root@PRIMARY ~]# groupadd gbasedbt
[root@PRIMARY ~]# useradd -g gbasedbt gbasedbt
- 为gbasedbt用户设置密码,建议设置为复杂密码
[root@PRIMARY ~]# passwd gbasedbt
安装和配置
安装数据库
GBase 8s详细安装步骤请参考[单机版安装](https://www.gbase.cn/docs/gbase-8s/03 安装指南/01 单机版安装/01 安装环境检查),集群环境建议选择Custom installation,并使用各缺省选项,不创建实例,主节点准备创建的实例名为gbaseserver。
配置数据库
创建数据目录
进入安装目录,创建数据目录
# 进入gbasesbt用户
su - gbasedbt
cd /opt/GBASE/gbase
mkdir gbaseserver_dbs
cd gbaseserver_dbs
touch rootdbs
chmod 660 rootdbs
配置profile.gbaseserver环境变量文件
# 进入gbasesbt用户
su - gbasedbt
cd /home/gbasedbt/
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文件
# 进入gbasesbt用户
su - gbasedbt
cd /opt/GBASE/gbase/etc
vim sqlhosts.gbaseserver
sqlhosts文件中需要将本次的2个节点的实例名、连接方式、IP、端口配置正确。
gbaseserver onsoctcp 10.197.167.136 9088
gbaseserver_hac onsoctcp 10.197.167.137 9088
配置onconfig.gbaseserver参数文件
以gbasedbt用户身份,将/opt/GBASE/gbase/etc/目录中的onconfig.std文件复制一份,命名为profile.gbaseserver中$ONCONFIG变量指定的名称onconfig.gbaerserver。
-- 【gbasesbt用户】 --
cp onconfig.std onconfig.gbaseserver
vim onconfig.gbaseserver
# 修改以下参数
ROOTNAME rootdbs
ROOTPATH $GBASEDBTDIR/gbaseserver_dbs/rootdbs
ROOTSIZE 500000
PHYSFILE 100000
MSGPATH $GBASEDBTDIR/gbaseserver.log
DBSPACETEMP dbspacetemp
SBSPACETEMP sbspacetemp
SBSPACENAME sbspace
SERVERNUM 1
DBSERVERNAME gbaseserver
DRAUTO 3
主要参数说明如下:
| 参数 | 值 | 说明 |
|---|---|---|
| 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,内容如下(如果没有自动创建):
10.197.167.136 gbasedbt
10.197.167.137 gbasedbt
10.197.167.138 gbasedbt
10.197.167.139 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:10.197.167.136节点的准备工作。
配置同城灾备辅节点
配置集群内其他节点
同城灾备集群只支持一个辅节点,重复上述步骤准备HAC:10.197.167.137节点,这个节点与主节点设置上有如下不同:
- 实例名
PRIMARY:10.197.167.136节点实例名为gbaseserver, HAC:10.197.167.137192.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
# 在onconfig.gbaseserver_hac文件中设置
FULL_DISK_INIT 1
# 其他的不变
- SERVERNUM
PRIMARY节点的SERVERNUM配置的是1,建议HAC节点的SERVERNUM配置为10。
原则:保证唯一。
关闭防火墙
--[root]--
systemctl stop firewalld
关闭SELinux
# 立刻关闭
/usr/sbin/setenforce 0
# 永久更改
[root@PRIMARY ~]# vim /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled
以gbasedbt用户身份登录
可以直接切换到gbasedbt用户,也可以:
su - gbasedbt
source /home/gbasedbt/.bash_profile
source /home/gbasedbt/profile.gbaseserver
初始化实例
- 在PRIMARY:10.197.167.136节点执行,并确认不报错
oninit -ivwy
其中的-i选项表示初始化磁盘空间并使数据库服务器进入联机方式,-w选项表示在返回至shell提示符并返回代码0之前迫使服务器等待直到成功初始化为止。
- 在PRIMARY:10.197.167.136节点执行,并确认不报错
onmode -d primary gbaseserver_hac
其中gbaseserver_hac是辅节点实例名
- HAC:10.197.167.137节点确保可正常启动数据库服务但是不需要启动数据库服务。然后在主节点进行0级全备,并使用管道恢复到辅节点。备份及恢复结束后HAC:10.197.167.137节点执行:
onstat -,状态应为Fast Recovery
# 现在备节点执行也就是137
oninit -ivy
# 没有报错后输入
onstat -
[gbasedbt@ssd1-nzl etc]$ onstat -
Your evaluation license will expire on 2027-06-30 00:00:00
gbaseserver_hac: On-Line -- Up 00:00:43 -- 1036224 Kbytes
# 关闭
onmode -ky
# 确认没有报错后
# 136上执行
ontape -s -L 0 -t STDIO | ssh 10.197.167.137 "source /home/gbasedbt/profile.gbaseserver_hac && ontape -p -t STDIO "
# 137 执行
onstat -
# 出现Fast Recovery则成功
- HAC:10.197.167.137节点执行,并确认不报错
onmode -d secondary gbaseserver
查看节点状态
在PRIMARY:10.197.167.136节点执行onstat -g dri,可以看到On-Line(Prim)状态。
[gbasedbt@pri-nzl log]$ onstat -g dri
Your evaluation license will expire on 2027-06-30 00:00:00
gbaseserver: On-Line (Prim) -- Up 00:49:40 -- 1047540 Kbytes
Data Replication at 0x81f99040:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
primary off gbaseserver_hac -1 / -1 NA
DRINTERVAL 0
DRTIMEOUT 30
DRAUTO 3
DRLOSTFOUND /opt/GBASE/gbase/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Catchup Backlog 1311
Last Send 2026/07/01 10:57:45
Last Receive 2026/07/01 10:57:46
Last Ping 2026/07/01 10:57:46
Last log page applied(log id,page): 0,0
在HAC:10.197.167.137节点执行onstat -g dri 可以看到Read-Only(Sec)状态 。
[gbasedbt@ssd1-nzl etc]$ onstat -g dri
Your evaluation license will expire on 2027-06-30 00:00:00
gbaseserver_hac: Read-Only (Sec) -- Up 00:09:13 -- 1027192 Kbytes
Data Replication at 0x80bba040:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
HDR Secondary on gbaseserver 8 / 6 N
DRINTERVAL 0
DRTIMEOUT 30
DRAUTO 3
DRLOSTFOUND /opt/GBASE/gbase/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
Last Send 2026/07/01 10:58:34
Last Receive 2026/07/01 10:58:34
Last Ping 2026/07/01 10:58:14
Last log page applied(log id,page): 0,0
至此同城灾备集群安装成功。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)