学习笔记——GBase 8s的HAC高可用集群

HAC高可用集群

HAC简介

GBase 8s的HAC集群是使用非常广泛的有一种高可用解决方案。HAC基于数据库逻辑日志复制技术,实现主、辅数据库数据保持一致。因此如果需要使用HAC集群,数据库需要开启日志。逻辑日志复制方式支持同步、半同步和异步模式。HAC集群主辅节点都可以进行读写,但一般实际项目中当主节点工作时,辅节点提供查询、报表等读功能,实现业务负载均衡的功能;当主节点发生故障时,辅节点会自动接管,承担主机工作,企业的业务不受影响。

HAC原理

GBase 8sHAC集群分成主节点(Primary)和辅节点(Secondary),整体同步流程如下:
1、主节点执行事务操作会写逻辑日志,当一个逻辑日志缓冲区满或者发生checkpoint的情况下,会将共享内存中的逻辑日志缓冲区刷新到磁盘上的逻辑日志中去,与此同时,主节点也会复制一份数据到数据复制缓冲区(DR Buffer)中
2、主节点将数据复制缓冲区中的数据发送到辅节点的接收缓冲区(辅节点的接收缓冲区将自动根据发送的数据量调节至合适大小)
3、辅节点将接收到的数据放入恢复缓冲区
4、辅节点针对恢复缓冲区中的逻辑日志进行日志重做并刷新到本地磁盘中
至此,主节点和辅节点完成数据的同步。

逻辑日志复制模式

逻辑日志复制方式有以下三种,分别是完全同步模式、近同步模式(半同步模式)、异步模式。三种模式主要的区别在于主节点返回事务完成的时间点。

完全同步模式

当辅节点数据落盘完成之后,主节点会接收到来自辅节点的完成确认,主节点上事务才算完成。为保证事务一致性,若辅节点没能完成其中任意一项操作,哪怕主节点上数据已经落盘,都会显示事务失败并进行回滚。在使用完全同步方式时,数据完整性最高,但是如果客户机应用程序使用无缓冲日志记录并且有许多小事务,那么系统性能可能会受到影响,但是能保证0数据丢失。


采用完全同步模式时,主节点和辅节点都将存储以下信息:

  • 包含最近完成的检查点的逻辑日志文件的标识
  • 逻辑日志文件中检查点记录的位置
  • 上次发送或接收的逻辑日志文件的标识
  • 上次发送或接收的逻辑日志记录的页码

设置方式:
1,需将主辅节点上的 DRINTERVAL 配置参数必须设置为 0。
2,需将主辅节点上的 DRTIMEOUT 配置参数必须设置为相同值。
—其中DRINTERVAL配置参数定义数据复制缓冲区刷新之间的最大秒数,DRTIMEOUT配置参数来指定高可用性数据复制对中的一个数据库服务器等待从该对中的另一个数据库服务器收到传输确认的时间长度,以秒为单位。

如果主辅节点上操作系统 时间是同步的,那么也可以使用以下方法:
1,需将主辅节点上的 DRINTERVAL 配置参数必须设置为 0。
2,将 HDR_TXN_SCOPE 配置参数设置为 FULL_SYNC。
—其中HDR_TXN_SCOPE配置参数与DRInterval配置参数一起使用,用于指定高可用性集群中HDR复制的同步模式。 FULL_SYNC是指完全同步模式。

近同步模式

近同步模式中,辅节点收到主节点发来的逻辑日志之后,就会给主节点发送确认收到逻辑日志的信号。主节点收到辅节点接收确认后,将返回事务提交完成。主节点不需要等待辅节点重放逻辑日志、写盘等操作,所以性能比完全同步要好。


采用近同步模式时,主节点将存储以下同步信息:

  • 已排队至 drprsend 线程的未处理数据复制缓冲区的数量。
  • 日志唯一值,最近分页的日志的页码。
  • 线程控制块 (TCB) 的指针、带括号的线程标识以及该线程已执行的落实的日志序号 (LSN)。
  • 等待 HDR 辅助服务器上“已接收”确认的落实的 LSN。

设置方式:
1,需将主辅节点上的 DRINTERVAL 配置参数设置为 -1或者主节点为0辅节点为-1。
2,需将主辅节点上的 DRTIMEOUT 配置参数必须设置为相同值。
3,主辅节点操作系统时间必须同步
—其中DRINTERVAL配置参数定义数据复制缓冲区刷新之间的最大秒数,DRTIMEOUT配置参数来指定高可用性数据复制对中的一个数据库服务器等待从该对中的另一个数据库服务器收到传输确认的时间长度,以秒为单位。

除此之外也可以使用以下方法:
1,需将DRINTERVAL 配置参数设置为 0。
2,将 HDR_TXN_SCOPE 配置参数设置为 NEAR_SYNC。
—其中HDR_TXN_SCOPE配置参数与DRInterval配置参数一起使用,用于指定高可用性集群中HDR复制的同步模式。 NEAR_SYNC是指近同步模式。

异步同步模式

异步同步模式中,主节点主要保证数据已经落盘并且写入发送缓冲区的信息发出去了就会返回事务提交完成。辅节点有没有收到,有没有落盘都不会影响在主节点事务的完成。数据的完整性、一致性都靠传输协议来保证。因此异步模式的性能是最好的,不过存在丢失事务的可能性。


为了减少异步同步方式下丢失事务的风险,请为所有数据库使用无缓冲日志记录。该方法减少了从主节点到辅节点的写入和事务记录传送之间所需的时间。

设置方法:
可通过以下两种方式开启异步复制方式:
将 DRINTERVAL 配置参数设置为正整数值。
将 DRINTERVAL 配置参数设置为 0,并将 HDR_TXN_SCOPE 配置参数设置为 ASYNC。

  • 41
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值