高可用的恢复点目标(RPO)和恢复时间目标(RTO)

设计一个高可用的数据库系统,首先需要明确的就是RPO和RTO

关于RPO

RPO是业务连续性中的一个常用术语,称为恢复点目标。

在数据库系统中,它描述的是数据库在一次故障停机恢复后可能丢失的数据量。

在数据库系统架构设计中,这是需要优先考虑的,假定数据库每天会做1次全量数据备份,那么在最坏情况下,用户可能会丢失24小时数据。对于某些应用来讲,这是可以接受的。当然,较多应用是不能接受数据丢失的风险的,比如金融业务,数据丢失带来的损失可能会相当的大,所以,RPO为0是才我们的目标。

用户对于RPO的要求决定了数据库架构的技术选型,包括集群节点数量、数据同步方案以及备份技术等等。

关于RTO

与RPO一样,RTO是指一个通用的业务连续性术语,称为恢复

时间目标。

如果系统一直能不间断提供服务,我们可以说系统的可用性是100%;

如果系统在时间单位内有1%的时间不能提供服务,我们可以说系统的可用性是99%。

如何量化RTO

业内通常使用MTTF和MTTR来量化一个模块的可用性。

  • 平均无故障时间(MTTF)

MTTF(mean time to failure),指模块处在正常服务状态的平均时间。

  • 平均修复时间(MTTR)

MTTR(mean time to repair),指模块处在服务中断状态的平均时间。

系统可用性的定义是MTTF/(MTTF + MTTR),一个大于等于0,小于等于1的数值。且该数值越大,系统可用性越高。业界最常用的方法是用9的个数来描述系统可用性,比如3个9的可用性,指系统在99.9%的时间里可用,而5个9的可用性意味着系统在99.999%的时间里都是可用的。下表展示了基于9的个数描述系统可用性而计算得出的,不同可用性的情况下,服务的不可用时间。

集群设计之初如何量化RTO,

平均修复时间通常包括以下场景:

  • 小型升级--Minor Upgrade

  • 重大升级--Major Upgrade

  • 重新启动--Reboot

  • 切换--Switchover

  • 故障转移--Failover

  • 操作系统升级--OS Upgrade

构造如下表格进行统计即可

但行好事,莫问前程
原文地址:https://www.cnblogs.com/mingfan/p/15465402.html