目录
高可用的目的是通过技术手段避免因为数据库出现故障而导致停止对外服务, 一般实现方式是部署备用数据库,在主数据库出现故障时接管业务。
1、VIP配置
VIP即Virtual IP Address,用于向客户端提供一个固定的“虚拟”访问地址,是实现HA(高可用)数据库的一种方案,避免后端主数据库发生切换时对客户端的影响。
通常IP地址是和物理网卡绑定的,而VIP相反,是不与实际网卡绑定的的IP地址。 是通过ARP协议来完成的。也就是说这个VIP可以映射到的MAC地址是可以控制的。
VIP在openGauss上的实现方式:它会随主DN状态进行动态绑定和切换,即如果DN主发生了切换,原主DN上的虚拟IP可能动态绑定到新主DN上,用户可以只通过该IP与数据库连接,不用感知数据库在哪个节点上。
主机规划:
节点 | IP | 版本 | VIP |
主 | 192.168.5.1 | openGauss 5.0.0 | 192.168.5.100 |
备 | 192.168.5.3 | openGauss 5.0.0 |
- 已安装CM工具
- 可执行ifconfig命令(各节点都要安装,如果没有此命令,则安装:net-tools)
仲裁流程:
原主:
- 在原主上解绑VIP。
- 把VIP从数据库配置项"listen_addresses"中删除
新主:
- 在新主上用别名(网卡名:DN端口号)方式绑定VIP。
- 把VIP添加到数据库配置项 “listen_addresses” 中。
功能开启:在数据库实例节点上每一个cm_agent数据目录下生成cm_resource.json配置文件,文件中包含VIP的json字段,可通过cm_ctl工具命令生成VIP配置文件,可以通过cm_ctl show方法查看VIP信息。
约束:
-
不支持沙箱环境。
-
不支持灾备集群。
-
VIP(网卡名:DN端口号)不允许被其他非虚拟IP占用
-
每个节点上cm_resource.json配置文件必须一致。
-
只支持重启方式加载。
-
允许配置多个VIP,但是每个实例最多支持6个。
-
只支持IPV4。
-
需要可用VIP,即需要可对外提供服务的VIP(跟现有网卡处于同一网段中)。
1.1、集群未安装
以一主一备安装为例,默认已做好数据库安装前的准备工作,下一步为修改XML文件
1、为omm用户ifconfig提权(root用户执行,所有节点都添加)
# 编辑sudoers, 强制保存:wq!
vim /etc/sudoers
Cmnd_Alias COMMAND_FLAG = /usr/sbin/ifconfig
omm ALL=(ALL) NOPASSWD:ALL
2、修改XML文件(root用户执行,主节点执行)
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="gauss_cluster" />
<PARAM name="nodeNames" value="node1,node3" />
<PARAM name="gaussdbAppPath" value="/opt/opengauss/app" />
<PARAM name="gaussdbLogPath" value="/opt/opengauss/log/omm" />
<PARAM name="tmpMppdbPath" value="/opt/opengauss/tmp"/>
<PARAM name="gaussdbToolPath" valu