通过3月28日和3月29日两个下午的时间学习OpenGauss,对于从没有接触过这款数据库的我来说,它带给我的感觉像是为我打开了新世界的大门,专家讲解了OpenGauss的很多特性及其优势,下面我就我自己的理解针对OpenGauss的主备HA这方面谈谈自己的看法与见解,不足之处望大家理解并指正。
众所周知,主备HA的主要目的其实就是为了实现当主节点发生灾难时,备节点能够快速提升为主并承接主节点的业务对外提供服务;其次对于读写分离的场景来说如果备机能提供一部分的读请求的处理能力,这样不仅可以降低主节点数据库的负载,并且还能够提升备节点的资源利用率,可以说是一箭双雕。
通过老师的讲解,我也了解到,OpenGauss的主备HA也采用的是传统的两地三中心模式,并且在主备HA复制流程上来说,提供了两种复制流程,一种是同步复制,默认是当备机日志落盘后主机才提交事务,这样做的好处是可靠性高,不会存在数据丢失的问题,但是当主备两节点间网络存在延迟的情况下,这种模式在性能上会损耗很多;另一种是异步复制,即当主机日志落盘后便可提交事务,这样做的好处是,需要等待备机的反馈,可以大大提高主机处理事务的性能,然而在可靠性方面就会变差,当主机发生故障时,可能会存在部分日志未传到备机,造成部分数据丢失。
我也了解到OpenGauss的主备HA模式具有两种切换模式,switchover和failover,switchover常用做主机、备机正常,当需要对主机进行维护性停机时,需要将主机降为备机,备机提升为主机,对外提供服务,当维护性操作完成后,再将原来的主机提升为主对外提供服务,在执行switchover时,主备机之间会进行通讯,保证主机上产生的所有事务日志都传输到了所有备机,保证数据一致性;failover是指当主机发生故障时,在备机执行failover操作,将备机提升为主机,并对外提供服务,在整个failover过程中都是备机独立完成,不需要和主机进行交互。
同时也学习到了OpenGauss 主备HA集群的增删节点操作,删除节点时需要使用gs_dropnode命令,执行前首先需要检查主备之间网络互通且可信,使用安装用户omm执行,并且仅支持以om方式安装的主备数据库实例;添加节点时需要使用gs_expansion命令,需要使用root用户执行,并且新节点用户与原集群节点用户需要建立互信,当从从单机扩容到主备模式时,还需重启数据库,最后扩容完成后需要手动更新主节点的synchronous_standby_names参数。
此上为我对OpenGauss的主备HA之间的关系及操作的理解,不足之处希望大家可以指出,共同进步。




