关系型数据库架构介绍

举报
高级云网管 发表于 2022/06/19 16:16:41 2022/06/19
【摘要】 数据库的架构场景

 关系型数据库架构介绍

数据库架构特点对比

数据库架构发展


单机架构

  • 早期互联网的LAMP(Linux,Apache,MySQL,PHP)架构的服务器就是最典型的单机架构的使用

  • 为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开。

  • 优点

    • 部署集中,运维方便。
  • 缺点

    • 可扩展性:数据库单机架构扩展性只有纵向扩展 (Scale-up)。通过增加硬件配置来提升性能,但单台主机的硬件可配置的资源会遇到上限。
    • 存在单点故障:扩容的时候往往需要停机扩容,服务停止。硬件故障导致整个服务不可用,甚至数据丢失。
    • 性能瓶颈。

分组架构 - 主备

  • 数据库部署在两台服务器,其中承担数据读写服务的服务器称为“主机”。
  • 另外一台服务器利用数据同步机制把主机的数据复制过来,称为“备机”。
  • 同一时刻,只有一台服务器对外提供数据服务。
  • 优点
    • 应用不需要针对数据库故障来增加开发量。
    • 相对单机架构提升了数据容错性。
  • 缺点
    • 资源浪费,备机和主机同等配置,但长期范围内基本上资源限制,无法利用。
    • 性能压力还是集中在单机上,无法解决性能瓶颈问题。
    • 当出现故障时候,主备机切换需要一定的人工干预或者监控。

分组架构 - 主从

  • 部署模式和主备机模式相似,备机(Backup)上升为从机(Slave),对外提供一定的数据服务。
  • 通过读写分离方式分散压力:
    • 写入、修改、删除操作,在写库(主机)上完成;
    • 把查询请求,分配到读库(从机)。
  • 优点
    • 提升资源利用率,适合读多写少的应用场景。
    • 在大并发读的使用场景,可以使用负载均衡在多个从机间进行平衡。
    • 从机的扩展性比较灵活,扩容操作不会影响到业务进行。
  • 缺点
    • 延迟问题,数据同步到从机数据库时会有延迟,所以应用必须能够容忍短暂的不一致性。对于一致性要求非常高的场景是不适合的。
    • 写操作的性能压力还是集中在主机上。
    • 主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换复杂度较高。

分组架构 - 多主

  • 多主架构(双活,多活架构)
    • 数据库服务器互为主从,同时对外提供完整的数据服务。
  • 优点
    • 资源利用率较高的同时降低了单点故障的风险。
  • 缺点
    • 双主机都接受写数据,要实现数据双向同步。双向复制同样会带来延迟问题,极端情况下有可能数据丢失。
    • 数据库数量增加会导致数据同步问题变得极为复杂,实际应用中多见双机模式。

共享存储多活架构(特殊的多主架构)

  • 共享存储的多活架构(Shared-Disk)

    • 一种特殊的多主架构。解决了主从设备之间数据同步带来的数据一致性问题
    • 数据库服务器共享数据存储,而多个服务器实现均衡负载。
  • 优点

    • 多个计算服务器提供高可用服务,提供了高级别的可用性。可伸缩性,避免了服务器集群的单点故障问题。
    • 比较方便的横向扩展能够增加整体系统并行处理能力。
  • 缺点

    • 实现技术难度大。
    • 当存储器接口带宽达到饱和的时候,增加节点并不能获得更高的性能,存储IO容易成为整个系统的性能瓶颈。
  • 较为成功的案例:Oracle的RAC(Real Application Cluster), 微软的SQL Server Failover Cluster。

  • GaussDB(for MySQL)采用多节点集群的架构,集群中有一个写节点(主节点)和多个读节点(只读节点),各节点共享底层的存储(DFV)


  • Sharding是Shared-Nothing架构的基础,只有对数据进行分片才可能对实现集群的Shared-Nothing。
  • Shared-Nothing概念是从资源独立性角度来描述架构
  • Sharding则是从数据的独立性角度来描述架构
  • MPP是并行计算的角度来描述架构,是并行计算技术在分布式数据库上的应用和体现。

分片(Sharding)架构

  • 分片架构主要表现形式就是水平数据分片架构
    • 把数据分散在多个节点上的分片方案,每一个分片包括数据库的一部分,称为一个shard。
    • 多个节点都拥有相同的数据库结构,但不同分片的数据之间没有交集,所有分区数据的并集构成数据总体。
    • 常见的分片算法有:根据列表值,范围取值和Hash值进行数据分片。
  • 优点
    • 数据分散在集群内的各个节点上,所有节点可以独立性工作。

无共享(Shared-Nothing)架构

  • 集群中每一个节点(处理单元)都完全拥有自己独立的CPU/内存/存储,不存在共享资源。
  • 各节点(处理单元)处理自己本地的数据,处理结果可以向上层汇总或者通过通信协议在节点间流转。
  • 节点是相互独立的,扩展能力强。整个集群拥有强大的并行处理能力。

MPP架构 (Massively Parallel Processing)

  • MPP:大规模并行处理(Massively Parallel Processing)
  • MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。
  • 特征
    • 任务并行执行,分布式计算。
  • 常见的MPP产品
    • 无共享Master:Vertica,Teradata。
    • 共享Master:Greenplum,Netezza。

Teradata,Netezza是软硬件一体机。GaussDB(DWS),Greeplum,Vertica是软件版MPP数据库

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。