数据库高可用才干,是数据库能否承载**业务的关键才干之一。在泛滥的高可用架构中,基于共享存储的高可用架构是最为经常出现、也是被宽泛经常使用的架构。这其中的典型代表就是 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 )技术,在客户端层面成功数据库服务端出现缺点时,能够智能重连或切换到生动实例,不须要用户参与和感知,但用户的未提交事务将被口头回滚。透明运行切换属于客户端侧性能,用户可自在选用能否经常使用,但与不经常使用造成抛出衔接错误相比,透明运行切换使得运行程序对用户变得愈加友好,最大水平保证了业务的延续性。