暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle 替代方案?GBase 8s 集群架构一览

原创 Lucifer三思而后行 2024-12-05
721

大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。

社群交流

为了给大家提供一些技术交流的平台,目前已成立的技术交流群:

  • Oracle 数据库交流群
  • 国产数据库交流群
  • Linux 技术交流群
  • ChatGPT 4o 免费体验群

需要进群可以添加微信:Lucifer-0622,备注对应的群名即可。

目录

前言

南大通用 GBase 8s 集群模式共分为三种:

  • SSC:基于共享存储的高可用集群
  • HAC:一主一备的同城灾备集群
  • RHAC:一主多备的远程容灾集群

大胆猜测一下 GBase 8s 集群和 Oracle 的对标关系:

  • SSC 对标 Oracle RAC
  • HAC 对标 Oracle ADG
  • RHAC 对标 Oracle ADG + Far Sync

本文简单介绍三种集群的架构以及原理,这三种集群模式可以共同构建两地三中心的使用场景。

SSC 集群

GBase 8s 共享存储高可用集群(SSC),采用共享磁盘方式实现节点高可用,数据仅存储一份,有效利用硬件资源,避免数据重复存储问题。

SSC 集群有以下特性:

  • 高可用性:节点间关系对等,备节点下线对集群无影响,主节点下线故障自动切换到备节点,切换过程和选主过程由连接管理器(CM)实现;
  • 扩展性:可以在一定范围内随业务需要而扩展;
  • 高性能:集群中任何节点都能响应用户请求,能够更高的支持高并发业务;
  • 部署简单:可以非常容易地配置多个 SSC,支持负载均衡。

集群为主控对等管理模式,查询时访问本地缓存,无网络开销,线性扩展性良好,集群节点数最多可达 128 个,所有节点均可读写。当主控节点失效时,辅助节点可以升级为主控节点,保障系统的高可用。SSC 集群操作简单、成本低无需额外硬件支持。

如上图,在共享存储集群中:

  • PRIMARY 为主节点,SSC 为辅节点;
  • PRIMARY 节点与 SSC 节点共享磁盘阵列,数据库 chunk 文件放置于并发裸设备或并行文件系统之上;
  • 连接管理器(CM)可部署在一个或多个数据节点上,建议部署在单独的应用服务器节点或服务器集群上;

SSC 集群缓存采用各节点独立架构,各节点上数据缓存不一定相同。当主节点有数据更新时,通过传递页号的方式通知各辅助节点,辅助节点接到通知后,更新自己的数据缓存,以保障数据缓存的一致性,不存在过期的数据页。当访问缓存时,缓存全部在本地,不存在网络开销。

SSC 共享存储支持裸设备,也支持 NFS、GFS 等共享文件系统。此外 SSC 集群可与 HAC、RHAC 集群共同构建两地三中心的使用场景。SSC 适合大型业务系统,在仅一个存储的基础上,各节点间能够保障数据高度一致。也可用于需要高可用、高性能和负载均衡的交易系统等。

HAC 集群

HAC 为一主一辅两节点高可用集群,采用日志同步的方式来保障节点间数据的快速同步。主节点执行读写业务的同时,备节点可承担查询等读业务。HAC 具有安装简单、应用透明无感知、故障自动切换、无须额外付费等特点。为了提升性能,集群采用缓冲区内存同步,再到辅节点回放的方式。日志同步的同步模式包括:同步模式、半同步模式、异步模式

主服务器的逻辑日志缓冲区的内容将复制到共享内存的数据复制缓冲区并清空到磁盘。如果主服务器使用的是完全同步或接近同步方式,那么它必须接收到来自 HAC 辅助服务器的确认,然后才能完成逻辑日志清空。主服务器启动日志发送线程以将数据复制缓冲区通过网络传输到辅助服务器的日志接收线程,然后该线程会将数据写入共享内存的接收缓冲区。日志重做线程将接收缓冲区复制到恢复缓冲区。辅助服务器使用日志恢复线程来重做日志。两节点通过心跳机制发送并接收消息以监视两个服务器之间的连接。

主数据库服务器可使用三种同步方式将数据复制到 HAC 辅助服务器:

  • 完全同步方式:其中事务需要 HAC 辅助服务器上的完成确认,然后才能完成,该方式数据完整性最高,但系统性能会受到负面影响;
  • 半同步方式:其中事务需要 HAC 辅助服务器上的已接收确认,然后才能完成。接近同步方式可提供比完全同步方式更优异的性能,比异步方式更优异的数据完整性。
  • 异步方式:其中事务无需 HAC 辅助服务器上的已接收或已完成确认即可完成。该方式系统性能最佳,但是如果发生服务器故障,那么数据可能有丢失。

RHAC 集群

异地容灾集群(RHAC)与同城两中心 HAC 集群架构上基本相同。不同之处是发送缓冲区与接收缓冲区之间的同步,采用了服务器多路复用器组件(SMX)技术。SMX 是支持高可用性环境中各服务器之间的多路复用网络连接的通信接口。其为数据库服务器实例之间提供可靠、高性能通信机制。

  1. 主节点验证其已连接到备节点,那么日志发送线程将页面从磁盘或逻辑日志缓冲区复制到数据复制缓冲区。
  2. 日志发送线程使用“服务器多路复用器组”(SMX) 将数据复制缓冲区发送至辅节点的日志接收线程。
  3. 日志接收线程将数据写入接收缓冲区。
  4. 日志重做线程将接收缓冲区复制到恢复缓冲区。

不同于 HAC 完全同步方式或接近同步的方式,RHAC 主节点在发送下一个缓冲区之前不需要来自备节点的确认。在日志发送线程等待日志接收线程接收来自辅节点的确认之前,主节点最多可发送 32 个未确认的数据复制缓冲区。

由于异地之间网络带宽、延迟和质量都较同城之间有较大差异,因此异地之间的复制难点在于稳定可靠的传输日志和事务完整性保障,也因此 RHAC 设计中采用异步高可靠传输机制。

RHAC 集群最多支持 256 个辅节点,安装部署简单快捷,且无须额外付费。用户可根据需求自由添加、删除 RHAC 节点,RHAC 节点和 HAC 节点类型可相互转换。集群对带宽和网络延时要求宽松,更适合节点分布多、节点距离跨度大、对网络带宽要求相对较低的业务场景系统。与 SSC、HAC 集群结合共同构建两地三中心的解决方案。

GBase 8s 高可用方案及案例

GBase 8s 提供了丰富且成熟的高可用解决方案,包括同机房高可用方案、同城高可用方案、异地高可用方案以及两地三中心高可用方案等,适应不同业务场景的需求。

  • 同机房高可用方案:服务器部署在同一个机房内,主要用于应对软件和硬件故障引发的问题。
  • 同城高可用方案:服务器部署在相隔数十公里到几十公里的地点,通常由不同的电力来源供电,可规避部分电力故障以及火灾等局部城市灾害引发的问题。
  • 异地高可用方案:针对地震、海啸等重大自然灾害,同城方案可能无法完全规避,此时需要采用异地灾备,将服务器部署在相隔几百至上千公里的不同城市,以降低自然灾害带来的风险。

GBase 8s 的同城灾备集群能够实现 零数据丢失,异地灾备方案也可以达到 几乎零数据丢失,并支持分钟级快速切换,确保业务连续性。

在实际项目中,可以根据需求灵活组合不同的集群方案,例如:

  • SSC + HAC:同城高可用方案。
  • HAC + RHAC:两地三中心高可用方案。
  • SSC + RHAC:两地三中心高可用方案。
  • SSC + HAC + RHAC:综合高可用方案。

这种组合方式有效规避单一方案的局限性,实现优势互补,进一步提升系统的稳定性和容灾能力,目前已广泛应用于各行各业。

高可用集群部署策略

GBase 8s HAC、RHAC、SSC 高可用集群,可以根据需求进行进行组合部署。具体部署策略可参考下方内容:

灾难级别及目的 方案 部署策略 优点 要求
在服务器故障时,保证高可用 同机房 部署SSC集群 可用性极高;数据库始终处于同步状态,主辅节点具有相同的数据访问权限;无需更改应用程序。服务端处理失败时,客户端可自动切换至同机房主辅服务器的连接。 主辅节点位于同一机房;使用共享磁盘集群,元数据冗余;主辅节点需要相同的操作系统和数据库版本;辅助节点硬件需与主节点保持一致,否则会影响数据库性能。
数据中心出现故障时,保证高可用 同城 部署HAC集群或SSC+HAC集群 可用性极高,应用程序如果不能连接到主节点,可快速访问同城辅节点。数据库异步复制,SSC集群提高了可靠性,无需更改应用程序。 位于同一城市,无法提供档数据及自然灾害灾备;需要数据库独立的副本,主辅节点需要相同的数据库版本和操作系统版本。
城市级别灾难发生时,保证高可用 两地 RHAC集群 可用性极高,应用程序如果不能连接到主节点,可快速访问RHAC辅节点。数据库异步复制,提升了可伸缩性无需更改应用程序。 两地主中心方案需确保操作系统和硬件一致。
城市级别灾难发生时,保证高可用 两地三中心 HAC+RHAC集群或SSC+HAC集群或SSC+HAC+RHAC集群 两地三中心方案集成了组合各集群的所有优点,且能抵挡城市及灾难带来的影响,最大程度保证高可用性。 两地三中心方案中的SSC和HAC集群数据库、操作系统和硬件等须保持一致。

SSC+RHAC 高可用方案

SSC+RHAC 集群为 GBase 8s 两地三中心最佳实践方案,SSC 集群集群切换后可避免数据丢失,RHAC 为完全异步集群,保证数据同步的同时,最大限度降低对主节点影响。

以下是一个实际案例,展示了 GBase 8s 数据库在高并发和高可用场景中的应用。

项目背景
A 项目中,客户提出以下要求:

  1. 数据库性能:在高并发业务压力下,数据库需支持多用户高并发访问,确保在高频访问时仍能提供准确、及时的数据访问。
  2. 数据库稳定性:在网络中断、主机掉电等意外情况下,数据库必须保证数据的安全性、可靠性和一致性。
  3. 数据库高可用:要求中心机房和灾辅机房双活,两地均能提供业务服务(业务双活),采用单点写、两点读的模式(数据读写分离)。

解决方案
在此项目中,可以设计以下架构:

  • 中心机房:部署 SSC 集群,包含一个主节点和一个辅节点。主节点负责读写业务,辅节点负责只读业务。
  • 灾辅机房:部署 RHAC 远程辅机,通过高速网络将日志数据同步到灾辅节点,以确保数据一致性。
  • 连接管理器:配置 3 个连接管理器(CM)实例,组成高可用组。
    • cm2 部署在 SSC 辅节点,作为最高优先级仲裁 CM。
    • cm2 不可用,次高优先级的 cm1 自动提升为仲裁 CM。
    • 应用程序通过连接管理器连接,连接管理器根据读写需求分发会话到中心机房或灾辅机房,实现数据读写分离,对应用完全透明。
  • 高可用性:连接管理器自动监控故障(如主节点故障或网络异常),并快速切换到可用节点,实现本地和异地容灾自动切换。

效果

  • 满足客户对高并发和高频访问的性能需求。
  • 在主节点出现故障时,实现分钟级自动切换,确保业务连续性。
  • 双活架构下支持中心机房和灾辅机房的读写分离,为客户提供高可靠、高稳定的数据库服务。

以下为架构示意图:

该项目上线之后,取得了非常不错的效果。

HAC+RHAC 高可用方案

HAC+RHAC 集群是 GBase 8s 提供的一种成熟高可用方案,其中 HAC 节点采用同步更新,RHAC 节点采用异步更新,进一步提升了系统的高可用性。

以下是一个已实施并上线的项目案例:

项目背景
B 项目主要目标是国产化替代,用自主可控的国产数据库替换国外数据库。客户对系统提出了以下要求:

  1. 实时处理能力:系统需支持强大的实时数据处理能力,以满足高并发业务需求。
  2. 批量处理能力:需具备极强的批量处理能力,处理海量数据。
  3. 高稳定性:系统必须具备极高的稳定性,能够承载高压力场景。

现状与挑战
原系统采用 2 节点双活架构,业务并发量极高,总数据量超过 TB 级,涉及用户数超千万。

解决方案
GBase 8s 提供了 HAC+RHAC 集群高可用架构,具体实现如下:

  • 高可用集群
    • 在 HAC 集群中采用同步更新,确保主辅节点数据的一致性。
    • 在 RHAC 集群中采用异步更新,通过高速网络同步日志数据,提升数据备份效率。
  • 连接管理器配置
    • 配置 3 个连接管理器(CM)实例,组成高可用组。
    • cm2 部署于 HAC 辅节点,设置为最高优先级仲裁 CM。
    • cm2 不可用,次高优先级的 cm1 自动提升为仲裁 CM。
  • 性能与稳定性优化
    • 利用 HAC 集群的同步特性保证高并发场景下的数据一致性。
    • 通过 RHAC 的异步更新机制,在高频批量数据传输中提升系统的容灾能力。
    • 系统实现读写分离,减轻单节点负载压力,保障系统平稳运行。

实施效果

  • 实现高并发场景下的实时处理,满足业务需求。
  • 提升了批量处理效率,有效支持 TB 级数据和千万级用户规模。
  • HAC+RHAC 集群架构增强了系统的稳定性和高可用性,满足国产化替换的要求。

以下为架构示意图:

此项目上线也取得了非常优异的效果:此项目中,为了平滑迁移,通过采用 HAC+RHAC 三节点部署模式,通过同步+异步的数据同步模式,提升了集群灾备高可用能力,同时借助读写分离模式,HAC 辅节点分担了主节点的读负载,保证了主节点的资源利用。满足 RPO=0,RTO<60s 的高可用能力。

SSC+HAC 高可用方案

SSC+HAC 集群是 GBase 8s 在高可用方案中非常适合城市轨道交通项目的一种常用架构。该方案特别适用于对数据库性能要求高、并发量大、实时事务处理需求强且备份与灾备中心位于同城的项目。

在 C 项目中,生产云主中心及各站点部署了 SSC+HAC 方式,实现了高可用集群功能。

架构优势
SSC 和 HAC 各自的特点在该架构中得到了充分发挥:

  • SSC 集群特点

    1. 多节点可同时访问共享存储,通过 LSN(逻辑序列号)传输实现节点间内存同步。
    2. 辅节点支持读写(写操作最终路由到主节点执行),可动态增减辅节点,最大支持 128 个节点。
    3. 提供负载均衡,支持读写分离,提升集群整体性能和并发处理能力。
    4. 适合高并发、高实时性的场景。
  • HAC 集群特点

    1. 数据库实例级别的数据复制,辅机支持读写分离,可根据业务需求选择不同模式(完全同步、异步、折中)。
    2. 提供更灵活的 RPO(恢复点目标),满足不同灾备需求。
    3. 在保持数据一致性的同时,支持业务高可用和快速恢复。

实施效果

  • 系统满足了客户对高性能、高并发和实时事务处理的需求。
  • 提供了同城灾备功能,确保业务连续性和数据安全。
  • 通过灵活的架构组合,提高了资源利用率和业务处理能力。

以下为架构示意图:

此案例上线至今,未出现任何异常。

复杂故障转移恢复策略示例

此小节将介绍 GBase 8s 三种集群同时使用的情况下,逐个发生灾难时的应对策略和方法。为了展示故障的复杂性和数据库集群面对复杂故障时的高可用性,我们搭建了 SSC+HAC+RHAC 的高可用集群。示例中,我们在北京搭建了两个数据中心,在 A 数据中心通过共享盘的方式部署了 SSC 集群。在北京 B 数据中心部署 HAC 节点,在上千公里的上海部署 RHAC 节点。架构图如下所示:

现在假设主节点发生故障,则北京 A 数据中心的某个 SSC 辅节点会升为主节点。如下图所示:

如果发生的是区域性故障,北京 A 数据中心都不能对外提供服务,那么北京 B 数据中心的 HAC 节点会升为主节点。如果有需求,还可以将北京 B 数据中心中添加 SSC 集群。如下图所示:

如果北京 B 数据中心也发生故障,且此高可以方案中发生故障的节点均无法恢复,那么远在上海的数据中心会接管应用的访问,继续对外提供服务。如下图所示:

写在最后

通过两地三中心的集群部署,GBase 8s 不仅满足了金融业务的高安全性和高可用性需求,还提供了良好的性能扩展性。在这个数据驱动的时代,GBase 8s 数据库集群技术将成为金融业务的坚实后盾。

如果有遗漏或者不足的地方,欢迎评论区补充或者投稿,感谢阅读!

往期精彩文章

达梦数据库安装最详细教程
一招教你学会达梦数据库的免密登录
一文讲透达梦数据库的大小写敏感
效率翻倍!达梦数据库 disql 使用技巧全攻略
达梦数据库参数配置与一键优化指南
达梦 AWR 报告快速上手指南
金仓数据库 KingbaseES V9 单机安装指南
KingbaseES KSQL 免密登录的几种方式
KingbaseES 控制文件冗余与恢复秘籍
金仓 KingbaseES RAC 入门指南
金仓 KDTS 初探:Oracle 到 KingbaseES 一键迁移
GBase 8a MPP 集群部署最佳实践
GBase 8a GDCA 认证课后练习题大全(题库)
南大通用 GBASE 8s V8.8 数据库最全安装指南
GBase 8s GDCA 认证课后练习题大全(题库)
GBase 8s 数据库巡检报告及一键巡检脚本
YashanDB 一键生成 AWR 报告
YashanDB 数据库安装部署
YashanDB 共享集群(YAC)入门指南与技术详解
基于 TencentOS 3 的 OpenTenBase 集群搭建实践


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
最后修改时间:2024-12-12 10:09:06
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论