不惧宕机,数据库高可用理论与实践

f144d829-c158-4f26-85b2-c388b2b3a48f.jpg

 

了解更多Greenplum相关内容,欢迎访问Greenplum中文社区网站

 

《深入浅出Greenplum内核》系列直播已经进行到第九场,还有一场就要结束啦!前九场的视频内容可以前往Greenplum中文社区B站频道观看相关视频,相关PPT均已上传Greenplum中文社区网站(cn.greenplum.org)的下载页面,欢迎获取!现在让我们来回顾一下第九场活动《Greenplum高可用理论与实践》的精华内容。

演讲视频:

Greenplum高可用理论与实践

 

数据库是现代很多与数据相关的程序正常运行的必要组件,数据库的正常运行会直接或间接地影响到程序的可用性,高可用是分布式系统架构设计中必须考虑的因素之一,它通常指,通过设计减少系统不能提供服务的时间。本文将深入了解数据库系统的高可用,并窥探Greenplum是怎样实现高可用的,如何为企业的数据保驾护航。

 

一、高可用简介

 

首先我们介绍一下高可用的环境,下图是一个简单的网络应用结构。用户通过互联网访问网络服务器,网络服务器访问的数据库里包含了各种各样的数据。当数据库不可用时,服务器也得不到其需要的数据,则整个服务都会被中断停止。 

 

191cd672-b2cd-4e59-9dba-461bfc90645f.gif

 

那么如何避免此类问题呢?如何做到即便数据库出现故障,也依旧能够访问数据库的服务呢?这就是我们今天要讨论的问题。 

 

针对这种问题,一般会有两种方式。

 

1. 单机做到无故障

 

即不管发生任何问题,单机都能够正常的工作,或是有极小的概率会发生崩溃。但单机做到无故障,本身会有很大的局限性。

 

  • 缺陷故障的避免非常困难。做到无故障,不但需要避免硬件故障,还需要避免系统软件的缺陷和数据库软件本身的bug。避免所有的这些缺陷故障本身就是一件非常难做到的事情。

     

  •  可用性的极限。随着软件的bug的减少,成本也会随着可用性增加成倍的增加,很有可能会高到难以接受的程度。

     

  • 地理因素。单机只可能部署到同一个机房里,如果发生一些无法避免的天灾人祸,就更不可能做到单机的无故障。


2. 假定单机会出现软硬件故障

 

面对单机无故障的缺陷,我们往往会希望用多台机器来提供服务,即假设单机出现故障,并且这种错误可以被接受时,用多机去提供数据库服务。此时,只要有一台机器可以工作,整个数据库的服务就不会被中断,可靠性也会大幅提高 。

 

下面是关于多机提供数据库服务可靠性的一个公式。我们可以看到单机的可用性越高,备用的节点数目越高,则可靠性 越高。
 

0a5d24af-441b-4c7b-be5d-8c58a0e5a071.png



 

二、高可用的一般性原理


下图中,我们用两个节点来做数据库服务。其中,当上面一个节点发生崩溃时,服务器会访问下面的数据库,则整个网络服务都可以正常运行。

cdb02f9a-dfce-4caf-988b-5e4f77db0fb9.png

从用户角度来看,采用多机需要满足两点条件。

 

1. 切换时间足够小,可以接受

 

如果存在故障的节点,服务器需要被切换到没有故障的数据库上,切换时间需要足够小。如果说切换时间太久,数据库系统也是不可用的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值