作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万+ 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障应急处理
某大厂由于网络大面积故障,企业核心的生产系统使用openGauss国产数据库集群,集群秒级切换,作为7*24小时的工厂不停机作业,这次故障节点切换,核心业务无感知

1.openGauss高可用:CM支持两节点部署 通过引入第三方网关IP,有效解决CM集群两节点部署模式下自仲裁问题, 支持CMS和DN均为2节点的部署; 同时支持动态配置CM集群故障切换策略和数据库集群脑裂故障恢复策略, 从而能够尽可能确保集群数据的完整性和一致性。 2.写重定向 主备节点开启控制参数 enable_remote_execute=on之后 通过备库发起的写操作,会重定向到主库执行
1.添加VIP,以端口号标记,便于区分 ifconfig ens33:15400 192.168.6.14 netmask 255.255.255.0 up 2.给集群添加VIP资源 VIP作为openGauss的资源管理 cm_ctl res --add --res_name="VIP_az1" --res_attr="resources_type=VIP,float_ip=192.168.6.14" cm_ctl: add res(VIP_az1) success. 将每个实例加到资源中 cm_ctl res --edit --res_name="VIP_az1" --add_inst="node_id=1,res_instance_id=6001" --inst_attr=base_ip=192.168.6.11 cm_ctl res --edit --res_name="VIP_az1" --add_inst="node_id=2,res_instance_id=6002" --inst_attr=base_ip=192.168.6.12

cd /openGauss/cm/cm_server vi cm_server.conf --cm集群故障自动切换配置前提条件 third_party_gateway_ip = 192.168.6.8 cms_enable_failover_on2nodes = true cms_network_isolation_timeout = 20 --数据库集群故障自动切换配置前提条件 third_party_gateway_ip = 192.168.6.8 cms_enable_failover_on2nodes = true cms_enable_db_crash_recovery = on
主库挂了之后,备库变为主库,VIP也漂移
1.模拟主库down机 [omm@opengauss51m ~]$ gs_ctl stop -D /openGauss/data/dn 2.主库挂了之后,备库变为主库,VIP也漂移过来了 [omm@opengauss51b ~]$ gs_om -t status --detail 3.主库修复后集群恢复正常 [omm@opengauss51b ~]$ cm_ctl show


openGauss集群,如果备机故障无法使用,可以在线重构新备机,恢复集群业务
主机: gs_guc set -D /u01/opengauss/data/db -c "replconninfo1='localhost=主机ip localport=port+1 localheartbeatport=port+4 localservice=port+5 remotehost=备机IP remoteport=port+1 remoteheartbeatport=port+4 remoteservice=port+5'" gs_guc set -D /u01/opengauss/data/db -c 'remote_read_mode=off'; gs_guc set -D /u01/opengauss/data/db -c 'replication_type=1'; gs_guc set -D /u01/opengauss/data/db -h "host all omm 主机ip/32 trust" gs_guc set -D /u01/opengauss/data/db -h "host all omm 备机IP/32 trust" gs_guc set -D /u01/opengauss/data/db -c "port=主机端口" gs_guc set -D /u01/opengauss/data/db -c "listen_addresses='主机ip'" 备机: gs_guc set -D /u01/opengauss/data/db -c "replconninfo1='localhost=备机ip localport=port+1 localheartbeatport=port+4 localservice=port+5 remotehost=主机IP remoteport=port+1 remoteheartbeatport=port+4 remoteservice=port+5'" gs_guc set -D /u01/opengauss/data/db -c 'remote_read_mode=off'; gs_guc set -D /u01/opengauss/data/db -c 'replication_type=1'; gs_guc set -D /u01/opengauss/data/db -h "host all omm 主机ip/32 trust" gs_guc set -D /u01/opengauss/data/db -h "host all omm 备机IP/32 trust" gs_guc set -D /u01/opengauss/data/db -c "port=备机端口" gs_guc set -D /u01/opengauss/data/db -c "listen_addresses='备机IP'" 主机启动: gs_ctl start -D /u01/opengauss/data/db -M primary 备机启动 gs_ctl start -D /u01/opengauss/data/db -M standby gs_ctl build -D /u01/opengauss/data/db -M standby -b full
opengauss的OM仓库有个 一主一备安装脚本以及单机安装的脚本 在部署安装的时候非常方便 https://gitee.com/opengauss/openGauss-OM/tree/master/simpleInstall 使用如下命令执行安装脚本 sh install.sh -U user_name \ -G user_group \ -h host_ip \ -p port [-D install_path] 参数说明 user_name为openGauss数据库的安装用户。 user_group为openGauss数据库安装用户所属用户组。 host_ip为主机在后端存储网络中的IP地址(内网IP)。 host_port为数据库节点的基础端口号。 install_path为openGauss数据库安装路径,该参数为可选参数。

高可用性是一个关键的考虑因素。为了确保系统的连续可用,看到国产数据库的高可用越来越完善,而且也发现越来越多的核心应用在使用openGauss,相信国产数据库的会越来越好,加油!国产数据库
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69947868/viewspace-3018920/ ,如需转载,请注明出处,否则将追究法律责任。