企业级数据库架构方法 企业级数据库

1、设计目标

架构企业级数据库时,应从三个方面考虑,高可用性、可缩放性和性能。

高可用性(HighAvailability,缩写为HA)指系统发生故障时能在短时间内恢复运行,并且数据不会丢失。为了实现高可用性,系统需要由两台以上的计算机和硬盘构成,称作硬件冗余。在设计时,要防止单点故障(SinglePointOf Failure),即只因某一处发生故障,而使整个系统瘫痪。

可缩放性(Scalability)指系统可以扩充以适应负荷的增加。可缩放性又分为单机硬件配置的提高(Scaleup)和计算机台数的增加(Scaleout)。但硬件升级毕竟有极限,而且随着配置的提高成本也大幅度增加。对多机系统而言,每台机器的配置不需要很高,可使用闲置的或廉价的计算机,但随着计算机台数的增加,管理成本也不可忽视。

性能(Performance)包括响应时间、处理量和同时服务请求数的上限。响应时间指从客户端发出请求开始到处理结果返回之间的时间间隔。处理量指单位时间内服务器处理的请求数。性能与用户对系统处理速度的满意度相关。达不到用户所需要的处理速度,就意味着系统缺乏实用性。

为实现上述目标,需要几台服务器联合工作,我们把这样的系统称作数据库群集(Cluster)。简单地说,群集就是多台独立的服务器作为一个系统运作。

2、典型架构方法

企业级数据库的架构方法因业务要求有所变化,本文只对基本形式做一简单介绍。

2.1共享磁盘故障转移(SharedDiskFailover)

这是目前最常使用的一种方式。系统由一个共享磁盘和两个服务器组成。数据库被放到共享磁盘上。一个服务器作为活动(Active)服务器,接受应用程序的数据库操作请求,另一个服务器作为预备(Standby)服务器,不接受应用程序的数据库操作请求。当活动(Active)服务器因故障停止时,进行服务器切换,预备服务器成为活动(Active)服务器,维持系统运行。

这种方式的缺点,是一旦共享磁盘发生故障,整个系统瘫痪。为防止磁盘故障,常采用廉价磁盘冗余阵列(RAID)。另外,一旦活动服务器发生故障,在服务器切换完成之前,系统不能响应应用程序的请求,而且当前正在执行的事务(Transaction)会丢失。从整体性能来看,这种方式只有一台服务器做事务处理,其余服务器处于等待状态,资源没有全部利用。

SQLServer提供故障转移功能。PostgreSQL不提供这种功能,但有很多工具(Tool)可提供这一功能。

2.2共享磁盘同时运行(SharedDisk Active-Active)

系统由一个共享磁盘和若干个服务器组成。数据库被放到共享磁盘上。服务器同时运行,任意一个服务器都接受应用程序的数据库操作请求,并执行SQL操作。即使某个服务器停止,其他服务器不受影响继续运行,当前正在执行的事务(Transaction)会被其他服务器继续执行。由于这种方式充分利用了服务器资源,可以分散负载,性能要好于共享磁盘故障转移。

OracleRealApplication Clusters(OracleRAC)属于这种类型的代表。

2.3主从复制(Master-SlaveReplication)

系统由若干个服务器组成,不需要共享磁盘,每个服务器拥有自己的数据库,这些数据库是完全相同的,或者说是同一数据库的拷贝。运行时,其中一个服务器作为主(Master),其余都作为从(Slave)。数据库更新操作要在主(Master)服务器中执行,然后通过数据库的复制功能(Replication)把数据库的变更信息传送到从(Slave)服务器。使从(Slave)服务器的数据库内容和主(Master)服务器保持一致。数据库查询操作可在从(Slave)服务器上进行。当主(Master)服务器发生故障时,从(Slave)服务器可以代替主(Master)服务器提供服务。

主从复制方式,又可分为同步型和异步型。同步型指数据库变更信息被送到从(Slave)服务器之后,主(Master)服务器才进行实质性的变更(事务提交)。异步型指主(Master)服务器进行变更操作之后,再传送变更信息。

当主(Master)服务器瘫痪时,同步型能确保主从服务器的数据一致性,而异步型可能会有一部分数据丢失。但不管是同步型还是异步型,当前正在执行的事务(Transaction)会丢失。

从整体性能来看,查询操作可在主从服务器上进行,有利于负载平衡,但更新操作只能在主服务器上进行。所以这种方式,适用于查询操作多而更新操作少的系统。

2.4复数主复制(Multi-MasterReplication)

系统构成与主从复制方式相同,由若干个服务器组成,不需要共享磁盘,每个服务器拥有自己的数据库,这些数据库是完全相同的,或者说是同一数据库的拷贝。与主从复制方式不同的是,运行时每台服务器都可以进行数据库更新操作,变更信息通过数据库的复制功能(Replication)相互传送。

这种方式查询操作和更新操作可在每台服务器上进行,查询操作和更新都可进行负载平衡,但是,在各个服务器之间保持数据一致性的机制比较复杂,性能不如主从复制方式。

2.5多个服务器并行查询执行(Multi-ServerParallel QueryExecution)

前面几种方式主要侧重于高可用性,即使系统中的某台服务器发生故障,系统能维持数据库服务,并尽可能不丢失数据。而多个服务器并行查询执行方式主要为了提高性能而设计。

对于大规模数据库(VLDB)而言,有时靠单台服务器提供服务时,处理时间长,在性能上很难满足用户需求。为解决这一问题,可把数据库的数据进行分割,把分割后的数据放到几台服务器上。当SQL语句执行时,把SQL语句分解成若干条SQL语句,分解后的SQL语句分别在不同的服务器上并行执行,然后把处理结果合并,再返回给应用程序。即,用多台服务器并行完成一个数据库操作。这种方式常称作数据库碎片化(Sharding)。

这种方式的解决方案有微软的SQLAzure,基于postgreSQL的pgpool-II。

3、结束语

以上介绍了几种典型的数据库架构方法,没有哪种方法最好,应根据用户需求和成本综合做出判断。

企业级数据库架构方法 企业级数据库
  

爱华网本文地址 » http://www.413yy.cn/a/25101017/332478.html

更多阅读

万方数据库的免费入口 万方医学数据库入口

万方数据库的免费入口——简介 每年很多学子都为找不到论文资料而发愁,万方数据库是大学毕业生生写论文的重要文献查询的宝库,但不是所有的学校都能给学生提供万方数据库入口的,笔者也有过同样的经历,后来在毕业之后终于找到了万方数据

Discuz如何还原自己的数据库 discuz修改数据库密码

Discuz如何还原自己的数据库——简介Discuz如何还原自己的数据库,接下来就让我给大家讲解一下吧Discuz如何还原自己的数据库——方法/步骤Discuz如何还原自己的数据库 1、进入后台,点击“站长”--“数据库”--“恢复”,如图:

VB如何连接访问数据库Access asp访问access数据库

VB如何连接访问数据库Access——简介VB即Visual Basic ,是一种由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。网上有很多教程,但都不详细,这里是自己一步一步演示的

如何下载免费的遥感影像数据(多种方法 遥感影像数据库

如何下载免费的遥感影像数据(多种方法)——简介我们都知道购买遥感影像需要很多钱,并且并不是有钱就能随便购买的,需要通过相关机构,网站购买。另外,对于学习使用来说,学生和个人就无法购买得起遥感影像!但是,在学习中有图有真相才会学得到

国泰安数据库使用方法 同花顺数据库

国泰安数据库使用方法——简介目前,有很多人,在工作或者写文章的时候,需要查询最新最全的金融、经济数据,却不知道具体怎么获取这些数据。本经验以金融经济界人士普遍使用的国泰安数据库csmar系统为例,向大家介绍怎样查找并获取您需要的

声明:《企业级数据库架构方法 企业级数据库》为网友情歌對唱分享!如侵犯到您的合法权益请联系我们删除