【华为云技术分享】原来“事务0丢失”是这样做到的

随着数据上云进程的加快,越来越多企业愿意把云下数据库搬到云上,同时对云上数据库的要求也越来越高。尤其是数据的完整可靠,承载着企业业务持续发展的使命,其重要性不言而喻。

而企业在云上使用过程中,事务经常面临丢失的风险,可靠性和完整性得不到满足,很大程度上影响了企业的业务发展。针对这个问题,华为云数据库MySQL高可靠的应用机制能够保证事务不丢失,进而保证企业业务的稳定发展。部分云厂商为了保证事务不丢失,而选择增加一个数据库结点的方式,从而成本也上升了。

华为云数据库MySQL 高可靠特性介绍

华为云数据库MySQL 高可靠特性是华为云数据库团队精心推出的重大功能特性,基于主备模式下在最大程度保证主库效率的同时,保证主库崩溃时快速恢复服务,并且做到事务零丢失,进而保证企业业务的稳定持续。

主备模式是现今RDS for MySQL最为流行的部署形态,通常采用半同步复制。华为云数据库MySQL半同步复制凭借高可靠特性能够精准判断主库崩溃时的复制状态,并根据主库崩溃时的复制状态自行准确恢复服务,很好地保障了数据的高可靠性。

华为云数据库MySQL保证数据高可靠的秘诀

精准判断主库崩溃时的复制状态

华为云数据库MySQL半同步复制基于状态通道和时间戳的高可靠特性,总体上是管控节点(HA)保存主库最后的复制状态和时间戳,备实例保存主库最后的复制状态和时间戳,然后通过比较它们来精准判断主库崩溃时的复制状态。

主备状态通知架构图

根据主库崩溃状态自行恢复服务

华为云数据库MySQL半同步复制状态下绝大多数情况是同步复制状态,极少数情况下(如执行大事务时)会转换到异步复制状态,然后自动转换回同步复制状态。而现在华为云数据库半同步复制凭借高可靠特性能够精准判断主库崩溃时的复制状态,并根据主库崩溃时的复制状态按照以下四种情况准确恢复服务:

  1. 在同步复制状态下主库崩溃,拉起主库,保证不丢失事务,并且秒级恢复服务。
  2. 在同步复制状态下主库崩溃,如果不能拉起主库,服务平滑切换到备库,保证不丢失事务,并且秒级恢复服务。
  3. 在异步复制状态下主库崩溃,不能切换到备库,拉起主库,保证不丢失事务,并且秒级恢复服务。
  4. 在异步复制状态下主库崩溃后,不能切换到备库,如果不能拉起主库,会在原来的数据上恢复主库,保证不丢失事务,并且分钟级恢复服务。

华为云数据库MySQL半同步复制高可靠特性能最大程度保证主库效率,是因为主库的事务提交只依赖于备库,而备库把这个事务写入中继日志后立即返回一个ACK(即确认字符),没有强同步复制备库回放事务带来的延迟。

场景应用

机房掉电

当用户购买了华为云数据库MySQL,其主库所在的机房掉电,主库挂掉,用户服务被中断时,华为云数据库MySQL凭借高可靠特性可以使服务在秒级内平滑切换到备库,用户可以重新连接上华为云数据库,并且做到服务与中断前的数据视图完全一致,没有任何事务丢失。

执行大事务时数据库挂掉

当用户购买的华为云数据库MySQL半同步复制主库正在执行大事务,并且复制状态从同步复制转换到异步复制时,主库突然挂掉,用户服务被迫中断,华为云数据库MySQL主库会在秒级内被拉起对外提供服务,用户可以重新连接上华为云数据库,并且与中断前的数据视图完全一致,没有事务丢失。

华为云数据库MySQL半同步复制高可靠特性不仅能够保证事务不丢失, 而且能够保证秒级恢复服务(极端情况下,分钟级恢复服务),从而确保主备数据的一致性,保障企业数据的高可靠,为企业发展保驾护航,同时也是践行华为云数据库致力于打造企业级数据和最强数据底座的有力体现。

目前,华为云数据库开年采购活动火热进行中,戳→了解更多详情

posted @ 2020-02-29 18:22  华为云官方博客  阅读(205)  评论(0编辑  收藏  举报