对一些行业关键核心业务应用来说,必须满足7×24小时的不间断服务。这就要求数据库必须具备高可用性以避免数据库节点的单点故障。数据库的高可用架构选择直接影响到业务应用服务可用性的等级。一般行业的关键核心业务要求具备极高可用性,即99.999%的可用性级别。
Oracle在高可用架构上陆续推出了主机HA(Highly Available)、ADG(Active DataGuard)、RAC(Real Application Cluster)、OGG(Oracle Golden Gate)等多种形式。这些高可用架构可以单独使用,也可以组合使用,许多金融机构借助Oracle的多种高可用架构组合,构建了两地三中心的极高高可用业务服务。
在国产化替代的背景下,国产数据库需要在高可用性技术上达到Oracle的同等水平甚至有所突破才能逐步实现千行百业的关键核心业务替换。目前,国产数据库大多已经借鉴Oracle构建了自己的完整高可用架构,以南大通用GBase 8s数据库为例,就有一整套对标Oracle高可用的技术栈来确保行业业务系统的高可用服务。
GBase 8s主备式集群
GBase 8s提供了基于redo log实时同步和重做的主备式集群。主节点和备用节点之间的数据传输支持多路复用连接,可以减少网络资源的需求,提高服务器之间的通信效率。
主备式集群支持HAC和RHAC两种集群方式。
HAC是典型的一主一备的集群模式,可以根据网络传输条件选择全同步、近同步和异步三种redo log复制形式,完美对标oracle ADG的最大保护、最大可用、最大性能三种工作模式。
全同步是交易在主节点上完成后,在提交之前,需要把交易的redo log复制到备用节点,备用节点在接受到redo log之后,进行日志重放,在备节点重放完成之后,主备节点一起提交。该方式最大的优点是保障交易的可靠性,只要交易成功,一定是在主备两个节点都写入redo log成功。
近同步是交易在主节点上完成后,该交易的redo log需要通过网络发送给备用节点,当备用节点确认接受该交易的redo log之后,主节点上的交易即刻提交。
异步是交易在主节点完成之后,就传送到备用节点,不需要等待备用节点回复任何消息,主节点都可以提交。但在检查点来临时,需要比对主备节点检查点的一致性,也就是说数据库允许在两个检查点之间是异步的,但是主备节点的检查点必须要一致。
HAC集群的实际部署,推荐服务器双网卡配置,业务流量走南北向网卡,redo log同步的流量走东西向网卡。
HAC集群的特点:
1. 该集群模式部署简单,数据冗余;
2. 对应用程序来说,数据库透明访问;
3. 故障切换时间在30秒内完成;
4. 数据同步方式灵活多选;
5. 主备节点均可读可写。
HAC集群的使用场景:
1. 在同机柜、同机房、同城的时候推荐考虑,网络延迟是影响HAC集群的主要因素;
2. 数据量建议在不超过10TB的时候可以考虑HAC,主要是考虑单服务器磁盘可用容量的限制
RHAC集群是GBase 8s集群的另外一种表现形式,从集群形态上支持一主多备,主要用于远距离传输、异地容灾的业务场景。RHAC是典型的异步传输机制,主节点负责接受和处理交易,并把交易的redo log源源不断地发送到目标节点,不需要等目标节点接受消息,也不需要等目标节点的检查点,只有目标节点在重做redo log之后才会向主节点返回redo log的位置信息。
RHAC集群的特点:
1. 通过数据库的redo log进行复制,在备用节点恢复的时候可以通过最后一个检查点自动追平redo log,保证主备节点的数据完整性和一致性;
2. 对主节点性能影响最小;
3. 对应用透明访问;
4. 故障切换时间在30秒内完成;
5. 主备节点均可读可写。
RHAC集群的使用场景:
1. 长距离传输的业务场景或异地容灾的场景;
2. 网络的延迟和带宽都要求比较宽松。
HAC和RHAC部署架构如下图所示:
连接管理器CM
连接管理器CM(Connection Manager)是GBase 8s自带的数据库集群管理组件。该组件有两个功能,应用客户端向GBase 8s进行连接访问,用于数据库集群故障发现、故障转移。
该组件可以单独部署,也可以和数据库部署在一起,为了避免单点故障,可以部署多个CM。
GBase 8s基于共享存储的数据库集群
对于大型业务系统来说,一般会采用基于共享存储的双节点或者多节点数据库集群来支撑业务的高可用。GBase 8s共享存储高可用集群SSC,采用共享磁盘方式实现节点高可用,数据仅存储一份,有效利用硬件资源,避免数据重复存储问题。共享存储支持磁盘阵列也支持分布式存储,IO设备支持裸设备也支持共享文件系统。
集群为主控对等管理模式,查询时访问本地缓存,无网络开销,线性扩展性良好,集群节点数最多可达16个,所有节点均可读写。当主节点失效时,辅助节点可以升级为主控节点,保障系统的高可用。
SSC集群的特点:
1. 类RAC技术,支持共享存储,保证数据的强一致性;
2. 应用透明访问;
3. 集群中所有节点均可读写;
4. 集群故障切换在30秒内完成;
5. 在数据量低于100TB的业务场景中,相对于分布式数据库来说,性价比最高的数据库集群方案。
SSC集群使用场景:
1. 数据量超过10TB小于100TB的业务场景;
2. 单机能力或主备式集群处理能力不满足的业务场景。
部署架构如下图所示:
对SLA要求更加严格的关键核心业务系统,GBase 8s也有两地三中心高可用解决方案。部署架构如下图所示:
如上图所示,主机房采用4节点的SSC集群架构,同城灾备机房部署一个HAC节点,异地灾备机房部署一个RHAC容灾节点,完美地构建了两地三中心的部署架构。
应用程序通过CM访问数据库集群,应用程序无法知道数据库集群的部署情况,相对数据库来说更安全。
当主节点发生故障时,一个SSC节点自动提升为主节点接管业务,其他节点自动向新的主节点看齐,并自动同步无需人工干预。当备用节点故障的时候,也不影响整个数据库集群的访问和业务的持续运行。
GBase 8s 数据实时交换共享集群
GBase 8s内置以表为单位的数据实时同步能力,对标OGG。
该能力的特点如下:
1. 数据库可以有两个或多个节点,每个节点均可读、可写;
2. 每个表上的同步支持单向同步、也支持双向同步;
3. 可以支持完整行的数据同步,也支持特定字段的数据同步;
4. 支持全量同步、增量同步,支持断点续传;
5. 支持数据快速比对;
6. 当有一个节点故障的时候,业务系统可以在1秒以内切换到其他节点,最大化保障业务连续性;
7. 支持一键部署;
8. 可以在两个数据库集群之间使用表复制的能力连接起来,从而实现数据库集群双活的能力。
该能力的使用场景:
- 野外或无人值守环境,对数据库干预较少的场景;
- 对数据库切换时间要求极短的场景;
- 部省市县数据实时交换共享业务场景;
- 平行单位之间数据实时交换共享场景。