YashanDB V23.5:YAC高可用全面升级,全库闪回、SCAN与VIP、主备自动切换……

*作者:马志宏 YashanDB高可用架构师

核心业务的规模化部署,本质上是对“高可用”的极致考验,任何一层的故障都可能导致业务中断、数据丢失,唯有构建覆盖从客户端链接到底层存储的全链路高可用体系,才能让企业真正放心托付。

YashanDB V23.5以“驱动崖山共享集群YAC全面迈向规模化商用”为核心定位,对连接层、服务层、存储层的高可用能力深度升级,并持续优化主备模式性能,既筑牢故障防护的“安全网”,又打破性能损耗的“天花板”,为企业核心业务提供“业务永续、数据安全、性能稳定”的共享集群解决方案。

图片

图1  崖山共享集群YAC高可用总览

图片

连接层高可用升级

新增SCAN与VIP

过去,实现连接层高可用往往依赖于传统方式,如同驾驶一辆“手动挡”汽车,客户端需要手动配置所有节点地址,故障切换慢,扩容运维繁琐,严重影响业务连续性。YashanDB V23.5 引入了SCAN(单客户端访问名称)与VIP(虚拟IP)两大机制,实现了从“手动挡”到“自动驾驶”的体验跃迁,也是国内首个实现类Oracle SCAN机制的数据库产品。

一、VIP实现“自动挡”式的故障切换

  • 传统连接方式:通过TAF+多IP的方式实现连接的自动故障转移,但存在明显缺点——每次连接都会尝试重连故障节点,失败后才能连接到存活节点,整个过程耗时较长。
  • VIP方式:当服务器故障时会快速触发VIP漂移,将连接转移至可用节点。即使有服务器故障,新的连接也能直接连接到存活节点,不用经历TAF试错步骤,连接速度更快,保障业务快速恢复。

二、SCAN提供“自动驾驶”级别体验

之前的连接方式还存在两个突出问题:一是扩容时需要手动更新客户端配置,才能让客户端访问到新增的实例,维护成本高;二是负载均衡依赖于应用层,无法在连接层自动处理。

SCAN特性针对性解决了这些问题,进一步升级连接层高可用能力:

  • 扩容透明化:客户端仅需配置一个SCAN名称,新增实例后无需修改任何配置,后续连接可自动路由至新实例,显著降低运维成本;
  • 智能负载均衡:SCAN Listener由YCS(崖山集群服务)进程接管,会定期收集所有实例的负载信息,并将连接路由至负载最低的数据库实例,实现连接层的动态负载分发。

其接入流程清晰高效:JDBC首先通过DNS服务器获取SCAN域名对应的SCAN VIP,连接至对应的SCAN listener,再由SCAN listener返回最优实例IP,最终完成二次连接建立。

图片

图2  SCAN透明接入示意图

图片

服务层高可用升级

全库闪回+主备自动切换

一、新支持共享集群全库闪回

传统数据库恢复技术PITR(基于时间点恢复),通过全量数据库备份方式进行整库恢复,恢复时间长,且恢复效率受限于数据库大小,无法满足金融等领域“秒级恢复”的需求。

共享集群全库闪回技术实现比单机全库闪回更复杂。在共享集群架构下,每个实例都会维护自己的闪回日志,也都有自己的闪回快照点。而全库恢复的核心前提是“全局数据一致性”,如何让所有闪回快照点保持全局一致,是共享集群架构产品需突破的难题,之前仅有Oracle RAC实现了该特性。

图片

图3  全库闪回示意图

YashanDB V23.4 LTS已实现单机全库闪回,V23.5基于闪回日志快照点技术,率先在共享集群架构中实现全库闪回能力,成为国内首个具备该能力的数据库产品,可广泛应用于误操作、备库演练、业务升级预验证等场景,大幅降低核心业务系统的运维成本与操作风险。具体实现原理如下:

1. 采用两阶段算法生成快照点,保证多实例一致性

  • 阶段1:选举协调者实例,向集群内所有实例(含自身)发送广播,请求启动Redo屏障(暂停数据页修改日志写入),并收集各实例返回的当前SCN(系统改变号);
  • 阶段2:协调者汇总所有SCN后,广播统一的全局SCN,指令所有实例刷新本地SCN、生成闪回快照点,随后解除Redo屏障。

该机制强制所有实例的闪回快照点对齐至同一SCN,从根源上保障了全库闪回的全局数据一致性。

2. 优化闪回快照点机制,避免多线程并行修改冲突

YashanDB针对闪回性能做了优化,让每个实例都可以启动多个线程,并行应用闪回日志。并且在应用闪回日志的过程中,会根据目标SCN和闪回日志SCN,自动过滤掉无需恢复的页面版本。结合闪回快照点机制,可保障“同一页面最多被修改一次”,避免多个线程并发修改同一页面,各线程无需加锁,恢复效率大幅提升。

图片

图4  两阶段闪回快照点算法示意图

PITR与全库闪回的技术对比可点击《​​YashanDB V23.4 LTS全库闪回新特性解读​​》查看。

二、支持共享集群主备自动切换

针对主集群全实例故障、存储故障等集群级问题,崖山共享集群YAC通过主备自动切换机制保障业务连续性,可以在主集群全实例故障时,自动将备集群升主,实现“故障自动接管、无需人工干预”。

  • YashanDB使用OM(轻量级监控进程)对主备集群状态进行实时监控;
  • 当主集群所有实例故障,且备集群无法连接主集群时,OM自动下发failover命令,让备集群升主;
  • 当故障的主集群重启后,会自动降为备集群。

图片

图5  共享集群主备示意图

YashanDB提供“零丢失模式”和“普通模式”两种共享集群主备自动切换模式,适配不同业务对数据安全与可用性的平衡需求。

(1)零丢失模式:永远保证数据不丢失,但有数据丢失风险时不可切换。

  • 当主备正常连接时,会设置为最大保护模式运行,保证主集群事务提交时,Redo已经发送到备集群。当主集群故障后,备集群升主不会丢失任何数据。
  • 如果主备连接不正常,此时会设置为最大可用模式,即使Redo没有发送给备集群,也不会阻塞主库事务提交。但因为有数据丢失的风险,备集群恢复Redo同步前,不能再自动切换升主。

(2)普通模式:永远保证主备可切换,但有潜在数据丢失风险。

  • 该模式下数据库处于最大可用/最大性能模式。无论备集群是否收到了主集群所有Redo,只要主集群故障,备集群都会自动切换升主。
  • 该模式下优先保证业务可用,但是如果发生连续多次故障和切换,可能会有数据丢失的风险。

图片

存储层高可用升级

支持YFS磁盘级故障处理

数据的底层安全是高可用体系的根基。YashanDB V23.5在已有数据块级故障自动修复的基础上,新增YFS(崖山文件系统)的磁盘级故障处理机制,通过“软RAID(磁盘阵列)”技术全方位保障数据高可用。

  • 传统方案不足:存储层高可用依赖物理RAID卡实现磁盘冗余防护,采购与维护成本高昂;或是采用简单的多副本冗余机制,虽降低了硬件依赖,但缺乏智能的故障识别与切换能力。
  • YashanDB:从自研的崖山文件系统YFS入手,基于故障组架构实现“软RAID”技术,当磁盘出现离线等异常情况时,系统可智能识别故障状态并自动切换至降级高可用模式。即便在硬件故障场景下,只要存在可用数据副本,YFS就能无缝切换运行模式,无需人工干预即可确保业务连续性,从底层筑牢数据安全防线。
  • 优化亮点:通过软件层面的“软RAID”技术,既能提供“硬软”双重保障能力,也能消除对高价硬件RAID的依赖,降低企业硬件采购成本;实现磁盘故障识别、副本切换的全流程自动化,业务侧无感知。

图片

图6 崖山文件系统YFS软RAID机制示意图

图片

主备模式性能提升

归档前后性能不降

高可用升级不会以牺牲性能为代价,YashanDB V23.5做了两项重要性能优化,实现崖山共享集群YAC主备模式性能提升,在开启实时归档后性能基本无损耗。

(1)采用实时归档技术,对归档日志IO优化,降低IO消耗

  • 传统方案不足:归档日志是对redo日志进行备份,在生成过程中会产生一次读写,影响数据库性能;
  • YashanDB:采用实时归档技术,在生成Redo日志的同时,直接从Redo Buffer读取日志进行归档,省去读IO环节,极大减少存储IO消耗;如果Redo Buffer里的日志被淘汰了,归档线程可用继续从Redo文件读取日志,直到Redo Buffer可用时再次从Redo Buffer中读取。
  • 优化亮点:优化后,YashanDB单机和共享集群的主备性能都有显著提升,尤其是共享集群模式下,性能提升20%以上。

图片

图7  实时归档示意图

(2)支持备库回放预读,对回放性能优化,提升同步效率

  • 传统方案不足:备库回放性能对RTO和查询延迟影响大,如果回放性能跟不上,备库的Redo日志会持续积累,导致RTO越来越大,严重影响主备高可用性能。
  • YashanDB:此前已实现多线程并行回放的优化,将性能瓶颈从CPU转移至IO——磁盘延迟越高,IO对回放性能的影响越明显。为此,YashanDB创新实现备库回放预读能力,通过三级流水线将“Redo分析,页面预读,Redo回放”串联起来;借助多线程预读与IO合并技术,提前将所需页面加载至Buffer中,让Redo回放变成一个纯CPU操作,不再受IO影响,性能大幅提高。
  • 优化亮点:备库回放预读技术让崖山共享集群YAC的备库回放性能提升60%。且因为共享磁阵的IO延迟比本地SSD要高,该项技术对共享集群收益更大。

图片

图8 备库回放流水线示意图

图片

结语

全自研的技术底座赋予了崖山共享集群YAC持续迭代的底气:既实现了对国际主流产品的关键技术对标,又填补了国内共享集群在高端商用场景的能力空白。如今,YAC已具备支撑金融、电信等核心业务规模化部署的全部条件,未来,YashanDB将持续深化高可用、高性能能力,以“稳定、高效、经济、易用”为目标,为企业数字化转型与信创替代提供更坚实的数据底座。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值