openGauss:(4)关系型数据库架构演进
关系型数据库架构演进
随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增加,数据库的架构需要随之变化,为上层应用提供稳定和高效的数据服务。
演变1:数据库读写分离;
演变2:数据库垂直分库;
演变3: 数据库的水平分库与水平分表。
单机架构
为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开。应用服务可以增加服务器数量,进行负载均衡,增大系统并发能力。
优点:部署集中,运维方便。
缺点:
(1)可扩展性:数据库单机架构扩展性只有纵向扩展(Scale-up) ,即通过增加硬件配置来提升性能,但单台主机的硬件可配置的资源会遇到上限。
(2)存在单点故障:扩容的时候往往需要停机扩容,服务停止;硬件故障导致整个服务不可用,甚至数据丢失。
(3)单机会遇到性能瓶颈
单主机就是应用服务和数据库部署在一起的;而独立主机的应用服务和数据库分开部署的。
分组架构-主备
主备机架构:
数据库部署在两台服务器,其中承担数据读写服务的服务器称为“主机”。另外一台服务器利用数据同步机制把主机的数据复制过来,称为“备机”。同一时间点,只有一台服务器对外提供数据服务。
优点:
(1)应用不需要针对数据库故障来增加开发量。
(2)相对单机架构提升了数据容错性。
缺点:
(1)资源浪费,备机和主机同等配置,但长期范围内基本上资源闲置,无法利用。
(2)性能压力还是集中在单机上,无法解决性能瓶颈问题。
(3)当出现故障时候,主备机切换需要一定的人工干预或者监控。
分组架构-主从
主从式架构:
部署模式和主备机模式相似,备机(Backup) 上升为从机(Slave) ,对外提供一定的数据服务。通过读写分离方式分散压力:写入、修改、删除操作,在写库(主机)上完成;把查询请求,分配到读库(从机)。
优点:
(1)、提升资源利用率,适合读多写少的应用场景。
(2)、在大并发读的使用场景,可以使用负载均衡在多个主机间进行平衡。
(3)、从机的扩展性比较灵活,扩容操作不会影响到业务进行。
缺点:
(1)、延迟问题,数据同步到从机数据库时会有延迟,所以应用必须能够容忍短暂的不一致性。对于一致性要求非常高的场景 是不适合的。
(2)、写操作的性能压力还是集中在主机上。
(3)、主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换复杂度较高。
分组架构-多主
多主架构:数据库服务器互为主从,同时对外提供完整的数据服务。
优点:
资源利用率较高的同时降低了单点故障的风险。
缺点:
(1)、双主机都接受写数据,要实现数据双向同步。双向复制同样会带来延迟问题,极端情况下有可能数据丢失。
(2)、数据库数量增加会导致数据同步问题变得极为复杂,实际应用中多见双机模式。
共享存储Shared Disk
共享存储的多活架构(Shared Disk)是一种特殊的多主架构。数据库服务器共享数据存储,而多个服务器实现均衡负载。
优点:
(1)、多个计算服务器提供高可用服务,提供了高级别的可用性。可伸缩性,避免了服务器集群的单点故障问题。
(2)、比较方便的横向扩展能够增加整体系统并行处理能力。
缺点:
(1)、实现技术难度大。
(2)、当存储器接口带宽达到饱和的时候,增加节点并不能获得更高的性能,存储IO容易成为整个系统的性能瓶颈。
分片架构Sharding
分片(Sharding) 是一种与水平切分(horizontal partitioning) 相关的数据库架构模式——将一个表里面的行,分成多个不同的表的做法(称为分区)。每个区都具有相同的模式和列,但每个表有完全不同的行。同样,每个分区中保存的数据都是唯一的, 并且与其他分区中保存的数据无关。
从水平切分(horizontal partitioning) 与垂直切分(vertical partitioning) 的关系,可能会有所帮助。在垂直切分表中,所有的列被分离出来,并放入新的不同的表中。每个垂直切分内的数据,独立于所有其他分区中的数据,并且每个分区都包含不同的行和列。
无共享架构Shared Nothing
各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP (大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。
各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。
Shared nothing系统通常需要将他的数据分布在多个节点的不同数据库中(不同的计算机处理不同的用户和查询)或者要求每个节点通过使用某些协调协议来保留它自己的应用程序数据备份,这通常被成为数据库Sharding。
MPP架构Massively Parallel Processing
MPP (Massively Parallel Processing) 大规模并行处理:
MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI系统和决策支持系统。
关系型数据库主流应用场景
联机事务处理OLTP:
(On-Line Transaction Processing)
OLTP是传统的关系型数据库的主要应用,事务性非常高
的系统,一般都是高可用的在线系统,以小的事务以及
小的查询为主,主要是基本的、日常的事务处理,例如
银行交易。
OLTP系统强调数据库内存效率,评估其系统的时候,一
般看其每秒执行的Transaction以及Execute SQL的数量。
强调内存各种指标的命令率,强调绑定变量,强调并发
操作。
联机分析处理OLAP:
(On-Line Analytical Processing)
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,
侧重决策支持,并且提供直观易懂的查询结果。在这样
的系统中,语句的执行量不是考核标准,因为一条语句
的执行时间可能会非常长,读取的数据也非常多。
OLAP系统则强调数据分析,考核的标准往往是磁盘子
系统的吞吐量(带宽),强调SQL执行时长,强调磁盘
I/O,强调分区等。
OLTP/OLAP对比分析

更多推荐
所有评论(0)