企业宣传,产品推广,广告招商,广告投放联系seowdb

能否一战 RAC 数据库 国产

数据库高可用能力,是数据库能否承载核心业务的关键能力之一。在众多的高可用架构中,基于共享存储的高可用架构是最为常见、也是被广泛使用的架构。这其中的典型代表就是 Oracle RAC,几乎已经成为使用 Oracle 的标配架构。随着近些年来国产数据库逐步进入深水区,开始承载核心业务,因此对高可用的要求更高;那么基于共享存储的高可用架构正在被更多关注。本文尝试对共享存储架构特点及国内数据库共享存储架构产品加以阐述,说明下此类架构产品的当前能力,便于用户去选项使用。

1. 共享存储架构特点与优势

共享存储架构,对比于其他架构有着鲜明的特点,可以提供很好的高可用、高性能、可扩展和应用透明的特性。下图将针对常用的架构及与共享存储架构的对比来说明下。

参见图一。主备架构,也简称HA架构,是采取一主一备架构;即正常运行情况下,所有应用都连接到主数据库,备数据库处于空闲状态。HA 软件通过心跳线监控主数据库状态,如果发现主库宕机,则 HA 软件将备数据库实例自动启动并拉起数据库,再自动将VIP地址飘移到新主库,所有应用也将飘移到新主库。

参见图二。非共享磁盘架构,也称为 Shared Nothing 架构,是一种典型的分布式架构。这种架构中,每一个节点都是独立的、自给的,没有共享存储和硬盘,不存在单点竞争问题。这种架构首先具备高可用,单台出现故障其余节点仍可用;其次无资源竞争,几乎可线性扩展;第三是支持并行计算,可拓展节点提高算力。这种架构通常用于分析类场景,可支持很大的吞吐量,这里简称为 MPP 架构。

参见图三。与非共享存储架构类似,同样每个节点都是独立的、自给的,没有共享存储和硬盘,不存在单点竞争问题,具有良好的扩展性和容错隔离能力等。与前者稍有区别在于场景,数据分片架构是伴随着互联网发展起来的,其原理是将一个完整的逻辑数据库通过分片键划分成多个相互独立的物理数据库,应用软件再通过分片键进行路由访问。这样不仅单个交易事务将被路由到某个分片数据库,只访问一个小数据库,具备更好的性能,而且随着访问量的爆炸式膨胀,可快速增加更多节点和存储,提供更多的对外服务能力,实现良好的扩展性。这种架构通常用于在线交易场景,可支持较高并发,这里简称为 Sharding 架构。

参见图四。与之前谈到的主备架构类似,主从复制架构数据库也均为单机,区别在于从数据库是否在线并提供服务。当主库出现故障时,将切换到某个从库。主从数据库之间是通过数据复制技术保证数据同步的。从数据复制技术来讲,存在逻辑复制或物理复制(基于块),相对而言后者效率更高些。但这种架构天然存在主从延时问题,虽然也可设置为强同步模式,但性能会下降很多且无法应对单点故障问题。这类架构在互联网公司非常普遍,这里简称为 Replication 架构。

参见图五。多活复制架构也是基于数据复制技术,这点与主从复制架构一样;区别在于多份数据都可进行写操作。这种架构会导致严重的写数据冲突和数据一致性问题,同时,多数据副本存在,也加大管理、维护难度。此类架构产品相对而言,比较小众。这里简称为 Multi-Active 架构。

下表将针对上面这些架构的优缺点及与共享存储架构(如图六)对比,后者存在的优势加以说明。

作为共享存储架构产品的代表性产品,Oracle RAC 可以说是将共享存储架构真正推广开来。下面我们简单了解下Oracle RAC 这一产品,也为后面谈国产数据库类似架构产品加以参照对比。

下面是摘自 Oracle 官方的一篇白皮书,重点阐述了 RAC 的核心能力。

支持关键应用程序的数据库,需要持续地为应用程序请求提供服务,即使面临硬件或软件故障。它还必须能够在不中断应用程序的情况下,在所有级别(包括硬件、操作系统、数据库软件和数据库模式)执行计划维护。

支持关键应用程序的数据库,需要动态地、不中断地适应不断增加的应用程序工作负载。它必须透明地扩展计算、存储、内存、连接、用户并以应对应用程序复杂性。

支持关键应用程序的数据库必须支持上述需求,而不需要更改应用程序。企业已经投入了数十人年的工程师时间来开发他们的应用程序,重写现有的应用程序并不划算。

(2)Oracle RAC 架构及组件

互连是 RAC 体系结构的一个关键元素,因为它有助于确保向外扩展的 Oracle RAC 数据库被视为“单个”数据库系统。这意味着应用程序不需要知道哪个数据库实例正在处理工作负载请求。此外,Oracle RAC 使用五个关键软件组件:

多个数据库实例并发访问数据库数据是不够的;它们必须有能力协调应用访问和数据更新。这种智能扩展能力关键在于由 Oracle RAC 提供独特的缓存融合技术,该算法实现跨节点数据的一致分布式缓存的,以实现有效的水平扩展。

集群管理组件,将多台服务器转换为高可用性集群。从管理角度来看,集群作为单个实体进行管理,而不是作为独立服务器池进行管理。集群管理组件还提供故障集群的检测、故障转移和节点成员管理。

通过允许所有用户并发访问数据库文件来扩展存储 Oracle RAC 数据库实例。此外,Oracle ASM提供卷管理功能,包括优化的数据库文件访问和数据镜像,以防止存储故障。

支持将活动应用程序连接自动透明地转移到存活的实例,通过以非中断和快速的方式执行或部分执行正在运行的请求和事务重演。

自动化补丁和配置管理,通过提供编排配置,修补和升级,以最大限度提高数据库对应用程序的可用性。

自2001年9i版本推出之后,历经20年的发展,不仅在全球各行各业得到了广泛深入的运用,而且 Oracle 公司一直在不断优化 RAC 技术本身,每个版本都推出了涵盖 RAC 高可用性、高性能等领域的若干新特性。从最早期的8i版本开始,RAC 的雏形已经出现(当时名为Oracle Parallel Server,OPS),其实现多实例的数据读读,读写模式(DLM)和写写模式,仍后者仍需要借助磁盘作为中介,因此效率较低。到了9i版本,真正实现了内存融合,具备全局资源目录,并独立出 LMON、LMS 等进程专门管理;10g版本,出现了独立的集群服务,包括CSS、CRS、EVM等,并有了ASM文件系统专门用于集群文件管理;11g版本,具备了集群资源管理、引入SCAN IP 等;12c版本,则出现了 Flex Cluster 和 Flex ASM,彻底改变了 RAC 集群中数据库实例与ASM实例间的关系...

近些年来,随着国产数据库在更多行业、更核心场景投入使用,共享存储架构的优势凸显,厂商也越发重视对共享存储架构的投入。很多厂商也纷纷推出了自有的基于共享存储架构的产品,其目标都是对标 Oracle RAC。下面针对收集到的国内部分厂商此类架构产品做了简单介绍与对比。从整体上看,当前国内此类产品还相对处于早期,信息资料也不是很完整,下文根据各厂商官网及白皮书上的信息整理如下。

DM 共享存储数据库集群,英文全称 DM>

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,联机日志和归档日志都需要保存在共享存储上。

只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。

一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

KES RAC 提供了数据库的连接驱动,实现了客户端的负载均衡。中间部分的集群管理软件-clusterware,提供集群成员管理,进行故障检测与处置。KES RAC 数据库提供跨节点一致的读写服务。集群文件系统支持各节点数据库对共享存储的一致性访问。

❖特点:读写请求横向扩展

KingbaseES RAC集群目前支持2~8个节点的规模。在OLTP类应用可以无冲突的访问各个节点时,可以获得0.8以上的吞吐量加速比。

使用 KingbaseES RAC 可以在一定程度上避免因为硬件或软件故障引起的计划内或计划外停机,增加系统的可用性。KingbaseES RAC提供RPO=0,RTO<60s的可用性以及故障排除后的自动恢复能力。在2节点部署、200并发、负载均衡、多表2000行/s写入情况下,集群默认配置下RTO参考

GBase 8s是天津南大通用数据技术股份有限公司自主研发的、成熟稳定的基于共享存储的数据库集群。该方案实现了在低成本服务器上构建数据库高可用系统,应用自由部署,故障自动切换。GBase 8s 共享存储集群 Shared Storage Cluster(SSC)通过多个节点对外提供服务,保障系统高可用。数据保存在共享存储上,所有节点共享一份数据。共享存储集群提供的通信协议、SQL 协议与单机相同,保障应用系统无缝迁移。支持集中式部署、共享存储高可用部署、两地三中心高可用部署,具备高容量、高并发、高性能等特性。

GBase 8s 共享存储集群最高可支持 128 节点,用户可根据自己需要在线增加节点数。

Connection Manager 功能部件,它可以提供SLA功能,更好地实现负载均衡的能力,同时提供了 FOC(FailOver Connection) 功能,实现透明故障接管能力。

GBase 8s 系统的高可用集群有共享存储集群、容灾集群三种,并支持组合,实现两地三中心高可用部署。集群切换可通过连接管理器(CM)组件实现。

GBase 8s 提供强大的高可用集群整体解决方案,除 SSC、HAC、远程 HAC 集群外,还支持 SSC+HAC 构建同城双活高可用架构方案、SSC+HAC+远程 HAC 异地灾备技术构建两地三中心高可用架构方案,以及支持实时同步的 ER 集群解决方案。

优炫的共享存储多写多读高可用集群(SRAC)是 UXDB 基于 shared-disk 架构的共享存储集群。通过 SRAC 构建更强大的高可用、高性能、易伸缩解决方案,适用于金融账务系统、生产制造等大型交易应用。

共享存储集群高可用,SRAC 是将多个优炫数据库通过组网方式并联在一起,集群间各数据库实例通过共享存储的模式共用一份数据文件集合,并利用共享缓冲区,在集群之间建立信息同步机制,保证集群内各实例的相互协调,实现多活分布,多写多读。针对高可用的保障分为故障转移和数据完整性。故障转移是当集群中某台数据库实例出现故障时,SQL 请求会被转移到其它正常实例上,保障应用访问的连续性。数据文件存储在集中式共享存储中,通过多副本机制,保证数据的完整性。

负载均衡是指将不同的请求分布到多个服务器,以便可以在其中均衡分配负载。优炫数据库的负载均衡支持轮询、权重、最小连接数以及自定义负载均衡策略,能显著提升数据库整体性能,优炫数据库提供如下负载均衡方案。UXPool 是位于 UXDB 服务器和客户端之间的中间件,提供连接池、复制、负载均衡、并行查询、限制超过限度的连接等功能,程序拦截每个 SQL 查询并把它发送给一个或多个 UXDB 节点,适用于读写分离的 UXDB 集群部署方式下的负载均衡。使用该 UXPool 可有效减少数据库连接开销,其配合 UXDB 集群的浮动 IP 配置,可满足多节点故障自动转移,实现需要负载均衡但对应用完全透明的需求。集群节点故障后自动切换,故障恢复自动重加入。

区别于为应对意外事件造成的数据丢失问题的备份,容灾是为了在遭遇灾害时能保证信息数据库系统仍能正常运行,帮助企业实现业务连续性目标。UXDB 支持基于应用程序、数据库、存储设备的远程复制和操作系统级的远程镜像等多种方法。支持同城双中心灾备、二地三中心的异地灾备方案。

通过TAF( Transparent Application Failover )技术,在客户端层面实现数据库服务端发生故障时,能够自动重连或切换到活跃实例,不需要用户介入和感知,但用户的未提交事务将被执行回滚。透明应用切换属于客户端侧功能,用户可自由选择是否使用,但与不使用导致抛出连接错误相比,透明应用切换使得应用程序对用户变得更加友好,最大程度保证了业务的连续性。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender