赞
踩
KingbaseES、高可用、人大金仓、KingbaseES、
可用是指对用户而言,一款软件或服务能够被正常使用的一种状态;高可用则是在可用状态的基础上试着对状态持久保持或异常状态下快速恢复的相关理念;并通过编码与程序设计,能一定程度减少系统不能提供服务的时间。因此一个高可用的系统,在设计时就要求在关键时期提供不间断的计算服务,以能够在整个生命周期里不间断的工作,实现用户对持续服务的较高要求。
一个系统满足高可用理念应具备以下特征:
下面是高可用部分常用的一些概念及相关解释,如表1所示:
术语 | 定义 |
SLA | 服务等级协议(Service Level Agreement),指服务的提供者与使用者之间就服务的可用性、可靠性、性能等方面所达成的协议或契约 |
RTO | 恢复时间目标(Recovery Time Object),是指一个基于信息系统的商业流程失效到它开始为组织造成不可接受的影响(财产损失,客户不满意,信誉受损等等)的时间总和。概括的讲,恢复时间目标是一个组织或者是商业流程对停机时间的容忍度 |
RPO | 恢复点目标(Recovery Point Object),是指基于信息系统的商业流程,在不会对组织带来任何损害的情况下所能允许丢失的最大数据量。总的来说,它体现了组织或者业务流程对数据丢失的容忍程度 |
Failover | 故障转移(Failover),指集群中任何一个节点故障都不会影响用户使用,连接到故障节点的用户会被自动转移到健康节点 |
HA | 高可用(High Availiablity),简称HA,可用性是指应用或数据库服务处于可用状态的程度,高可用是指通过设计减少系统不能提供服务的时间 |
表1 高可用部分基础概念及解释
如果系统一直能不间断提供服务,我们可以说系统的可用性是100%;如果系统在时间单位内有1%的时间不能提供服务,我们可以说系统的可用性是99%。为了评估可用性,业内通常使用MTTF和MTTR来量化一个模块的可用性:
系统可用性的定义是MTTF/(MTTF + MTTR),一个大于等于0,小于等于1的数值。且该数值越大,系统可用性越高。
为了实现系统的高可用,应对各种各样的故障,KES提供了多个高可用相关的能力模块。
预写式日志(WAL,Write-Ahead Logging)是保证数据完整性、实现事务日志的一种标准方法。 预写式日志在实现上的关键点就是先写日志,再写数据,即:在写数据的过程中加入了写对应的WAL log的过程,先写Buffer再刷新到Disk。
备份和恢复是指为了保护数据,避免数据丢失以及在某些灾难情况下能够重建数据库所要进行的一系列策略和过程。对于事务内部故障和系统故障,KES将使用预写式日志文件自动恢复数据,不需要人工进行干预。但对于硬件故障、操作员的失误以及恶意破坏事件,数据可能无法进行自动恢复。因此,数据库管理员要进行数据的定期备份数据;当故障发生时,可以使用备份来恢复数据库。KES提供的备份恢复方式可以分为两种:
KES高可用保证的另一种手段是“集群化”,或者叫“冗余”。假定数据库只有一个单点提供服务,该单点故障后(假定服务器电源发生故障),整个服务就会不可用。如果此时有冗余服务(数据冗余和服务冗余),单点故障后还有其他备份能够顶上继续提供服务。因此,保证系统高可用,KES的核心准则是“冗余”。有了冗余之后还不够,每次出现故障需要人工介入恢复服务势必会增加系统的不可服务时间。所以,还需要通过“自动故障转移”来实现系统的高可用。所以就实现手段而言,KES高可用的核心之一是通过集群化+自动故障转移来实现的,目前KES集群化主要是形成读写分离集群。
读写分离集群是基于即时归档实现的高性能数据库集群,该集群提供数据保护、容灾等数据守护功能,还支持读写分离等特性。读写分离集群可以配置多个即时备库,提供数据同步、故障自动转移、故障节点自动恢复等功能,也支持自动故障切换和手动故障切换两种守护模式。
一个读写分离集群节点通常包括以下部分:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。