首页 > 数据库 >高斯数据库HCNA之关系型数据库架构

高斯数据库HCNA之关系型数据库架构

时间:2023-11-04 17:32:06浏览次数:40  
标签:架构 高斯 数据库 分片 HCNA 服务器 数据 节点

三、关系型数据库架构介绍

1、数据库架构发展

数据库架构变化
随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增加,数据库的架构需要随之变化,为上层应用提供稳定和高效的数据服务

高斯数据库HCNA之关系型数据库架构_数据库

2、单机架构

单机架构
为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式
把应用和数据服务分开,应用服务可以增加服务器数量,进行负载均衡,增大系统并发能力

优点
部署集中,运维方便

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

高斯数据库HCNA之关系型数据库架构_数据库_02

3、分组架构-主备

分组架构-主备
主备机架构:
数据库部署在两台服务器,其中承担数据读写服务的服务器称为"主机"
另外一台数据库利用数据同步机制把主机的数据复制过来,称为"备机"
同一时点,只有一台服务器对外提供数据服务

优点
应用不需要针对数据库故障来增加开发量
相对单机架构提升了数据容错性

缺点
资源浪费,备机和主机同等配置,但长期范围内基本上资源限制,无法利用
性能压力还是集中在单机上,无法解决性能瓶颈问题
当出现故障时候,主备机切换需要一定的人工干预或者监控

高斯数据库HCNA之关系型数据库架构_数据_03

4、分组架构-主从

主从式架构
部署模式和主备机模式相似,备机(Backup)上升为从机(Slave),对外提供一定的数据服务
通过读写分离方式分散压力
写入、修改、删除操作,在写库(主库)上完成
把查询请求,分配到读库(从机)

优点
提升资源利用率,适合读多写少的应用场景
在大并发读的使用场景,可以使用负载均衡在多个主机间进行平衡
从机的扩展性比较灵活,扩容操作不会影响到业务进行

缺点
延迟问题,数据同步到从机数据库时会有延迟,所以应用必须能够容忍短暂的不一致性,对于一致性要求非常高的场景是不适合的
写操作的性能压力还是集中在主机上
主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换复杂度较高

高斯数据库HCNA之关系型数据库架构_数据_04

5、分组架构-多主

多主架构
数据库服务器互为主从,同时对外提供完整的数据服务

优点
资源利用率较高的同时降低了单点故障的分享

缺点
双主机都接受写数据,要实现数据双向同步,双向复制同样会带来延迟问题,极端情况下有可能数据丢失
数据库数量增加会导致数据同步问题变得极为复杂,实际应用中多见双机模式

高斯数据库HCNA之关系型数据库架构_数据库_05

6、共享存储多活架构

共享存储的多活架构(Shared Disk)
一种特殊的多主架构
数据库服务器共享数据存储,而多个服务器实现均衡负载

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

缺点
实现技术难度大
当存储器接口带宽达到饱和的时候,增加节点并不能获得更高的性能,存储IO容易成为整个系统的性能瓶颈

高斯数据库HCNA之关系型数据库架构_数据库_06

7、分片(Sharding)架构

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

优点
数据分散在集群内的各个节点上,所有节点可以独立性工作

高斯数据库HCNA之关系型数据库架构_数据库_07

8、无共享(Share-Nothing)架构

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

高斯数据库HCNA之关系型数据库架构_服务器_08

9、MPP架构(Massively Parallel Processing)

MPP:大规模并行处理(Massively Parallel Processing)
MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果

特征
任务并行执行,分布式计算

常见的MPP产品
无共享Master: Vertica,Teradata
共享Master: Greenplum,Netezza

高斯数据库HCNA之关系型数据库架构_数据_09

10、数据库架构特点对比

高斯数据库HCNA之关系型数据库架构_服务器_10

标签:架构,高斯,数据库,分片,HCNA,服务器,数据,节点
From: https://blog.51cto.com/u_13236892/8184206

相关文章

  • 无涯教程-MongoDB - 数据库引用
    如MongoDB关系的最后一章所示,为了在MongoDB中实现规范化的数据库结构,无涯教程使用了引用关系的概念,也称为ManualReferences,其中无涯教程手动将参考文件的ID存储在其他文件中。但是,如果文档包含来自不同集合的引用,则可以使用MongoDBDBRefs。使用DBRefDBRefs中有三个字段-......
  • 解决openavsa数据库报错的问题
    报错内容如图解决方法如下:卸载OpenVAS:$sudoapt-getremoveopenvas删除OpenVAS的所有依赖项:$sudoapt-getautoremove删除OpenVAS的所有配置文件:$sudorm-rf/etc/openvas/删除OpenVAS的所有数据:$sudorm-rf/var/lib/openvas/安装OpenVAS:$sudoapt-getinstallopenvas更......
  • C/C++ 使用 MySQL API 操作 数据库
    C/C++对MySQLAPI的使用 MySQL数据库是一个C/S结构(客服端/服务器),当我们安装好MYSQL服务器之后可以通过客户端访问服务器端的数据;这里以C语言提供的API举例实现对数据库的操作;再程序中连接数据库服务器,主要有以下步骤:初始化连接环境;连接mysql的服务器,需......
  • 数据库问题解析
    1、表连接表连接(JOIN)是在多个表中间通过⼀定的连接条件,使表之间发⽣关联进⽽能从多个表之间获取数据。2、3、表联合union:对两个结果集进⾏并集操作,不包括重复⾏unionall:对两个结果集进⾏并集操作,包括重复⾏注意事项:①每条SELECT语句必须拥有相同数量的列;②每条SELE......
  • MySQL数据库事务隔离级别、Spring事物传播行为
    MySQL数据库事务隔离级别1什么是事务事务就是保障一系列的操作统一执行,要嘛全部成功,要嘛全部失败。事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,......
  • openGauss学习笔记-113 openGauss 数据库管理-设置安全策略-设置帐户安全策略
    openGauss学习笔记-113openGauss数据库管理-设置安全策略-设置帐户安全策略113.1背景信息openGauss为帐户提供了自动锁定和解锁帐户、手动锁定和解锁异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据安全。113.2自动锁定和解锁帐户为了保证帐户安全,如果用户输入......
  • 高斯数据库HCNA之数据库技术发展史
    二、数据库技术发展史1、数据库技术产生与发展数据库技术应数据管理任务的需要而产生数据管理的发展应用需求推动软硬件的飞速发展为基础三个阶段2、数据库系统阶段发展3、数据库管理三个阶段比较4、数据库系统优势整体数据的结构化数据面向整个系统而不是单个应用,被多个应......
  • 基础课-数据库5
    9.多表连接查询关系型数据库使用多个有关联关系表春初数据,解决数据冗余存储关系型数据库在查询时,可能需要一次查询多个表的数据一次查询多个表数据,称为多表连接查询多表连接实际上是多个表的的数据连接,连接好之后可以理解为一个新的虚拟表多表连接时,默认叫笛卡尔积连接形式,会......
  • 无涯教程-MongoDB - 删除数据库
    在本章中,无涯教程将看到如何使用MongoDB命令删除数据库。MongoDBdb.dropDatabase()命令用于删除现有数据库。DropDatabase-语法dropDatabase()命令的基本语法如下-db.dropDatabase()这将删除所选的数据库。如果您尚未选择任何数据库,则它将删除默认的"test"数据库。Dr......
  • 无涯教程-MongoDB - 创建数据库
    在本章中,无涯教程将看到如何在MongoDB中创建数据库。MongoDB使用DATABASE_NAME用于创建数据库,该命令将创建一个新数据库(如果不存在),否则将返回现有数据库。CreateDatabase-语法useDATABASE语句的基本语法如下-useDATABASE_NAMECreateDatabase-示例如果您要使......