总括:常用数据库集群思路:
多活---多主
目前mysql ,sqlserver都是主从
主从根据binlog日志同步,数据库同步大多用这个原理
一般都是读连接从,写连接主
用了Mycat,Oracle RAC等就可以通过这个中间件实现切换主从,应用层序连接虚拟vip即可
Mycat:
分库分表,主从切换
Oracle RAC:
多主切换
示例:
外界的应用程序不管中间件的集群切换,集群的切换由集群本身或者专门切换工具切换然后置换出vip,共外界访问
应对业务量的不断增加场景通常有两个大方向,一种是纵向扩展,也就是增加单台服务器的CPU计算能力、内存容量和磁盘承载能力等;另外一种是横向扩展,也就是通过增加服务器的数量来增加处理能力。前者存在业务中断和扩展上限等诸多的问题,特别是互联网业务的迅猛发展,单台服务器几乎无法满足业务负载要求,因此目前比较流行的方式横向扩展的方式。数据库集群
数据库的横向扩展是通过数据库集群实现的。数据库集群也有两种主要形式,一种是主备(主从)架构,也就是只有一台服务器上的数据库可以访问,另一个(多个)服务器上数据库不能访问或者只能进行读操作。另外一种是多活架构,这种架构中所有服务器都可以对外提供服务(可同时读写)。
当前市面上大部分数据库是主从架构,比如MySQL和SQL Server等。如图1是大名鼎鼎的MySQL数据库的主从复制原理图。主从复制是通过重放binlog实现主库数据的异步复制。由于从binlog获取数据并重放与主库写入数据存在时间延迟,因此从库的数据总是要滞后主库。这个也是主从架构的缺点,也就是无法保证数据的分布式一致性。主库宕机的情况下可能会丢失一部分数据。
图1 MySQL主从复制分区多活集群
多活架构是集群中的节点可以同时对外提供服务。根据集群中节点是否可以共享数据,多活架构又分为两种。一种是非共享数据的多活,该种情况下集群节点不能共享数据,每个节点负责不同的数据。比如将数据库表以主键ID进行划分(比如取模),不同节点负责不同的区域。目前这种多活方案可以通过数据库中间件实现,比如开源的Mycat等。
图2 基于Mycat的多活架构
如图2所示是基于Mycat的多活数据库集群,这里面主要划分为2个区域,每个区域通过主备保证可用性和分摊负载。具体策略可以采用取模的方式,比如主键ID为1,3,5,7...时数据存储在左边主库中;2,4,6,8...时数据存储在右边主库中。
由于数据的隔离性,上述访问存在一个主要问题就是扩容相对困难。当需要增加集群节点数量的时候,就需要重新划分数据的存储位置,从而需要做大量的数据迁移。这样,不仅仅操作复杂,而且增加了出现问题的风险。共享存储多活集群(Oracle RAC)
另外一种多活架构是共享存储集群架构,比较典型的就是Oracle RAC(全称Oracle Real Application Cluster)。在该架构中集群中多个节点运行的是同一个数据库实例,数据完全一致,并且用户层面无论从那个节点访问,获取到的数据都是相同的。如图3是Oracle RAC的示意图,通过3个节点构成一个集群,它们共享数据。
图3 Oracle RAC示意图
为了保证整个集群的可用性,Oracle RAC在部署的时候对硬件有比较多的要求。在网络层面,Oracle RAC总共有3个网络系统,分别是外部访问网络、内部私有网络和存储网络。外部访问网络不用多少,相信大家都理解。内部私有网络则主要用来进行Oracle集群内部使用,包括数据传输、心跳和集群管理等。这部分网络在部署的时候要求双交换机和双物理链路,保证不会因为链路故障导致集群异常。后面是存储网络,存储网络用于RAC集群访问存储资源,这部分也是链路冗余的。
图4 Oracle RAC物理部署图
为了更加深入的理解Oracle RAC我们看一下其内部软件模块的组成。整个数据库层面没有太多差异,这里面主要多出了如下内容:虚拟IP(VIP)、ASM、Clusterware和仲裁磁盘。这些新组件配合起来完成了Oracle的多活集群功能。
虚拟IP是应用访问数据库的入口,该IP并不与任何服务器绑定,而是可以在集群的任意服务器间漂移。由于具有这个特性,当出现服务器宕机等情况时,数据集集群可以保证通过相同的接口对外提供服务。
图5 Oracle RAC软件模块图
ASM与Clusterware实现了集群管理功能,其中ASM实现对磁盘的管理,避免同时访问磁盘导致数据不一致的风险,而Clusterware则用于管理Oracle集群的软件进程及资源调度。
仲裁磁盘用于集群中服务器的异常判断,集群中的节点通过定时更新仲裁磁盘中特定区域的数据标示自身的健康状态。其它节点可以根据该数据判断该节点是否宕机。
相关推荐
### Oracle RAC数据库架构分析与实战攻略 #### 9.1 设计高可用性架构 在设计高可用性架构时,通常需要考虑多种技术和产品,以确保系统的稳定性和连续性。其中,Oracle RAC(Real Application Clusters)是业界领先...
Oracle RAC 数据库集群技术是指通过多个服务器节点的集群来提供高可用性、负载均衡和可扩展性的数据库解决方案。该技术可以满足企业对高性能、可靠性和可扩展性的需求。 为什么要使用 Oracle RAC 数据库 ? --------...
2. Oracle RAC集群数据库:Oracle RAC集群数据库是一种高可用性的数据库解决方案,能够提供高性能和高可用性的数据库服务。该系统的设计和实现需要基于Oracle RAC集群数据库的特点和需求。 3. 数据库监控:数据库...
一共分为3个部分,共9章。第一部分介绍集群的概念与RAC的结构和原理以及存储基本知识。第二部分全面介绍RAC的安装和管理维护以及RAC的备份恢复。第三部分对RAC性能调优的方法和工具进行了分析。
【高校数字化校园ORACLERAC数据库集群分析与部署】 随着信息技术的发展,高校的管理与教学逐渐依赖于数字化校园系统,而数据库系统作为其中的核心组成部分,其稳定性和可用性至关重要。Oracle RAC(Real ...
Oracle RAC数据库架构分析与实战攻略》是一本全面覆盖Oracle RAC理论与实践的著作,无论你是数据库管理员、系统管理员还是IT专业人员,都能从中获取到宝贵的RAC实施和管理知识,提升你在高可用性数据库解决方案领域...
本文提供了详细的Oracle 19c RAC集群部署过程,在CentOS 7.9环境下配置了一个双节点的RAC架构,并涵盖所有重要阶段的操作指引与命令。其中包括系统基本配置与优化(如网络设置、IP分配、存储准备)、软件环境初始化...
Oracle RAC(Real Application Clusters)是一种高可用、高性能、易伸缩、易管理的集群数据库解决方案。它可以将多个服务器集群到一起,形成一个高可用性的数据库系统,提高数据库的可用性和性能。 Oracle RAC的...
总结来说,Oracle RAC架构在双节点环境下提供了一种高可用性和可扩展性的数据库解决方案。通过LAN、ASM、OCR和投票磁盘的协同工作,确保了即使在单个节点故障的情况下,数据库服务也能继续运行,从而满足企业对持续...
一共分为3个部分,共9章。第一部分介绍集群的概念与RAC的结构和原理以及存储基本知识。第二部分全面介绍RAC的安装和管理维护以及RAC的备份恢复。第三部分对RAC性能调优的方法和工具进行了分析。
Oracle RAC 12c是Oracle数据库的集群版本,全称是Oracle Real Application Clusters。它允许在多个计算机之间分布数据和负载,提供了高可用性、可扩展性和灵活性。RAC技术是Oracle数据库12c版本中提供的一项关键特性...
一共分为3个部分,共9章。第一部分介绍集群的概念与RAC的结构和原理以及存储基本知识。第二部分全面介绍RAC的安装和管理维护以及RAC的备份恢复。第三部分对RAC性能调优的方法和工具进行了分析。
Oracle RAC on VMware vSAN参考架构是这两种技术结合使用的架构方案,目的是在VMware虚拟化平台上提供一个高效的Oracle数据库集群部署模式。 从给出的内容中,我们可以提炼出以下知识点: ### 标题和描述知识点 1...
Oracle RAC(Real Application Clusters)是一种高可用性的关系数据库集群解决方案,能够提供高性能、可靠性和可扩展性的数据存储服务。在现代信息化社会中,数据库系统的可靠性和性能变得越来越重要。Oracle RAC...
Oracle Real Application Clusters (RAC),之前称为Oracle Parallel Server(OPS),是一种高级的数据库集群技术,旨在提高数据库的高可用性和性能。RAC允许多个节点共享同一个物理数据库,通过自动负载均衡、故障...
《大话Oracle.RAC:集群、高可用性、备份与恢复(第2版)》是一部深入探讨Oracle数据库Real Application Clusters(RAC)技术的专业书籍,主要围绕Oracle RAC的集群架构、高可用性策略以及数据库的备份与恢复策略...
Oracle数据库集群安装是一个复杂而精细的过程,涉及到多个层面的技术知识,包括数据库系统、操作系统、集群软件和存储解决方案等。在本篇文章中,我们将深入探讨Oracle数据库集群安装的详细步骤,特别是涉及ARC...
Cache Fusion是RAC架构中的一个核心技术,它允许不同节点上的Oracle实例之间共享和同步内存中的数据块,以保证数据一致性。这一技术对于理解RAC的内部工作机制至关重要。 描述中提到的“非常有技术含量的文档”,...
本文将指导用户将单一实例数据库转换为 Oracle RAC 10g,在 RHEL3 上实现高可用性和高性能的数据库集群。Oracle RAC(Real Application Clusters)是一种高可用性解决方案,能够提供高性能、可靠性和安全性的数据库...