在上篇文章中,我们完成了GBase 8s HAC集群搭建的初步配置。本文将重点介绍如何配置主节点和辅节点之间的互信关系,以及如何搭建并验证HAC集群的状态。

1、配置互信

互信是集群节点间通信的基础。我们可以通过配置.rhosts文件或使用REMOTE_SERVER_CFG参数两种方式来实现互信。根据企业的安全要求,选择适合的互信配置方法。

  • 配置 .rhosts 文件的方法

用户主目录内的“.rhosts”文件内容是受信任的{主机~用户}关系对。授予特定主机上的某一特定账号以信任关系。简单的说.rhosts是同一用户在不同主机间的信任,只信任被信主机的相应的某个用户。
.rhosts方式配置互信适用于对操作系统安全要求比较低,互信需要指定到用户级别。root用户管理严格。这种情况可以使用gbasedbt用户修改.rhosts方式配置互信。
配置方法如下:
首先修改 /etc/hosts 文件,主辅节点使用root用户执行:vi /etc/hosts。在/etc/hosts文件下添加主辅节点的ip地址及主机名。主辅两台服务器配置一样。

[root@localhost opt]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.128    prim
192.168.16.129    hac

修改完 /etc/hosts 文件之后,修改 .rhosts 文件,在gbasedbt用户家目录下新建.rhosts 文件,主节点和辅节点在文件中互相添加对方的主机名和互信用户gbasedbt。

[gbasedbt@hac ~]$ cat .rhosts 
prim gbasedbt
hac  gbasedbt

最后配置正确的sqlhosts文件即可完成互信。sqlhosts文件的配置前面已完成,至此配置互信完成。

  • 配置REMOTE_SERVER_CFG参数的方法

REMOTE_SERVER_CFG参数:指定列有信任的远程主机名或IP地址的文件名,该文件必须位于目录$GBASEDBTDIR/etc中。若设定该参数,则不会使用文件/etc/hosts.equiv 。
修改REMOTE_SERVER_CFG参数配置互信适用于操作系统对安全等级要求严格,操作系统会检测hosts.equiv等互信文件,禁止操作系统层主机互信。这种情况下可以使用数据库内部REMOTE_SERVER_CFG参数配置互信。
配置方法如下:
首先在数据库安装目录下的etc目录下创建host.trust文件。(主节点,辅节点都进行此操作)

[gbasedbt@hac ~]$ cd $GBASEDBTDIR/etc
[gbasedbt@hac ~]$ vi hosts.trust
[gbasedbt@hac ~]$ cat hosts.trust+ gbasedbt 
[gbasedbt@hac ~]$

之后我们修改REMOTE_SERVER_CFG参数,主辅节点使用gadmin -wf动态修改参数或修改onconfig文件后重启数据库。REMOTE_SERVER_CFG默认是空,我们修改为hosts.trust。(主节点,辅节点都进行此操作)
[gbasedbt@hac ~]$ gstat -g cfg |grep REMOTE_SERVER_CFG
Your evaluation license will expire on 2025-07-06 00:00:00
REMOTE_SERVER_CFG         hosts.trust   
S6_USE_REMOTE_SERVER_CFG  0
最后配置正确的sqlhosts文件即可完成互信。sqlhosts文件的配置前面已完成,至此配置互信完成。

2、搭建HAC集群

搭建集群前的准备工作完成了之后,就可以搭建集群关系了。
首先,我们需要设置主节点,命令中的HAC是辅节点实例的名称。之后可以查看集群状态,我们会发现HAC是Disconnected状态。

[gbasedbt@prim ~]$ onmode -d primary hac                  #主节点运行
Your evaluation license will expire on 2025-07-06 00:00:00
[gbasedbt@prim ~]$ gstat -g cluster                 #查看集群关系
Your evaluation license will expire on 2025-07-06 00:00:00
On-Line (Prim) -- Up 00:04:57 -- 674664 Kbytes
Primary Server:prim
Current Log Page:7,4078
Index page logging status: Enabled
Index page logging was enabled at: 2024/07/07 14:28:24

Server ACKed Log    Applied Log  Supports     Status
      (log, page)  (log, page)  Updates
hac    0,0          0,0          No           ASYNC(HDR),Disconnected,Off

接下来进行数据恢复,确保在执行以下命令之前,辅节点的状态是关闭状态。
在主节点执行以下命令:

[gbasedbt@prim gbase_dbs]$ ontape-s -L 0 -t STDIO |ssh 192.168.16.129 "source /home/gbasedbt/profile.hac && ontape-p -t STDIO"
Your evaluation license will expire on 2025-07-06 00:00:00
The authenticity of host '192.168.16.129 (192.168.16.129)' can't be established.
ECDSA key fingerprint is SHA256:XH0PY7Yz01qxcIYvvhfH/9++RyQDPiKfjTntyQ1CpSw.
ECDSA key fingerprint is MD5:5d:aa:64:0e:13:1f:f0:26:f8:34:a2:49:f2:bf:8c:e5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.16.129' (ECDSA) to the list of known hosts.
gbasedbt@192.168.16.129's password: 
Your evaluation license will expire on 2025-07-06 00:00:00
Your evaluation license will expire on 2025-07-06 00:00:00

在主节点执行完此命令之后,我们可以查看辅节点的状态,辅节点此时会变成Fast Recovery状态。

[gbasedbt@hac gbase_dbs]$ gstat -
Your evaluation license will expire on 2025-07-06 00:00:00
Fast Recovery -- Up 00:00:50 -- 597864 Kbytes

此时,我们需要设置辅节点。
在辅节点执行以下命令,执行完命令之后,可以查看辅节点的状态,此时辅节点的状态会有两种变化,首先会变成Fast Recovery (Sec)状态,之后会变成Read-Only (Sec)状态。此时我们可以查看集群状态,此时hac是Connected状态。至此,HAC集群关系搭建完毕。

[gbasedbt@hac gbase_dbs]$ gadmin -d secondary prim
Your evaluation license will expire on 2025-07-06 00:00:00
[gbasedbt@hac gbase_dbs]$ gstat -
Your evaluation license will expire on 2025-07-06 00:00:00
Fast Recovery (Sec) -- Up 00:01:40 -- 1135464 Kbytes
[gbasedbt@hac gbase_dbs]$ gstat -
Your evaluation license will expire on 2025-07-06 00:00:00Read-Only (Sec) -- Up 00:02:12 -- 1135464 Kbytes
[gbasedbt@hac ~]$ gstat -g cluster
Your evaluation license will expire on 2025-07-06 00:00:00Read-Only (Sec) -- Up 03:23:00 -- 1135464 Kbytes
Primary Server:prim
Index page logging status: Enabled
Index page logging was enabled at: 2024/07/07 14:28:24

Server ACKed Log    Supports     Status
      (log, page)  Updates
hac    7,4111       No           ASYNC(HDR),Connected,On

通过本篇和上篇文章的介绍,我们已经掌握了GBase 8s HAC集群搭建部署的全过程。高可用性集群的搭建对于保障企业数据库的稳定运行至关重要。希望本文能够帮助您更好地理解和应用GBase 8s的HAC功能。