数据库管理302期 2025-03-14
- 数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)
- 1 Oracle RAC
- 2 DMDSC
- 3 YAC
- 4 KES RAC
- 总结
数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)
作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭
最近解除了不少国产类RAC架构的数据库,其中的数据库连接字符串配置有些许不同,本期做个简单的介绍与总结。
1 Oracle RAC
当然,在介绍国产类RAC架构数据库之前需要先回顾下使用Oracle RAC是如何连接到数据库的:
Oracle RAC在公网(即业务网络)上会有两个主要监听:
- SCAN Listener:对应与SCAN IP一起工作,集群一般可配置1-3个SCAN Listener/IP,接收来自于外部的数据库访问请求,并根据集群状态与负载均衡需求将请求转发至Local Listener。SACN Listener/IP可进行手动/失败转移。
- Local Listener:对应与节点VIP一起工作,因此每个节点有一个Local Listener,接收来自于SCAN Listener转发的访问,同时Local Listener本身也可以直接进行访问,节点维护/故障后节点VIP会进行漂移但无法通过漂移后的VIP访问数据库。
对于访问Oracle RAC我们一般配置的连接字符串是写入SCAN IP+端口+服务名,如有多个SCAN Listener/IP,则还可以配置DNS+域名进行负载均衡+高可用配置。这样的集群配置带来了以下一些好处:
- 节点增减无需调整连接字符串
- 数据库本身负责负载均衡与高可用(故障转移)
- 通过服务名可以使得不同节点运行不同的业务
- 等等
2 DMDSC
DM 数据共享集群又称为 DM 共享存储集群,英文全称 DM Data Shared Cluster,简称 DMDSC。DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
连接DMDSC需要使用DM提供的驱动,并将所有节点的IP信息写入连接字符串,由驱动通过获取节点信息来判断节点状态/负载等信息,以达到实现负载均衡和故障识别转移的功能。
3 YAC
YAC共享集群基于YashanDB内核持续演进,硬件上依赖共享存储实现shared-Disk的架构,同时引入了Cohesive Memory核心技术实现Shared-Cache能力,可在集群数据库多个实例之间协同数据页的读写访问以及各种非数据类资源的并发控制。
当前版本访问YAC集群的高可用访问是通过Yashan JDBC驱动或C语言驱动配置实现的,需要将所有节点信息写入连接字符串中,通过驱动实现负载均衡与故障识别转移。
从最新消息得知,YashanDB已经开始研发类似于SCAN的技术。
4 KES RAC
KingbaseES RAC是人大金仓推出的、完全自主研发的国产共享存储数据库集群,具备稳定、高可用、高性能、高扩展特性。KingbaseES RAC共享存储集群方案可以提供性能扩展和可用性,同时保持低存储成本和中等维护成本,适用于大部分业务的需求。
KingbaseES提供了数据库的连接驱动,也是将节点IP信息写入连接字符串,由驱动实现客户端的负载均衡与故障识别转移。
总结
从目前国内主流数据库的类RAC架构集群来看,访问数据库需要在连接字符串中配置所有节点信息,负载均衡和故障识别转移是通过驱动实现的。这是非常容易实现需求的方案,当然也会带来以下一些问题:
- 集群节点增减需要调整连接配置,可能带来业务中断
- 需要使用专用驱动或者进行额外配置
老规矩,知道写了些啥。