数据库高可靠,轻松解决事务丢失问题

数据库的发展始终与用户需求变迁紧密相关。近年来,数据上云的趋势愈演愈烈,越来越多的企业选择把数据库迁移上云,这对云上数据库的产品性能,尤其在可靠性和安全性方面,提出了更高的要求。

而现实情况是,企业在云上使用自建数据库的过程中,由于原生开源MySQL的事务能力并不完善,事务可能面临丢失的风险,难以保证事务执行前后数据的可靠性和一致性。事务丢失给企业造成的损失,也加大了部分企业对数据上云的担忧。 image

什么是“事务”?事务是指数据库中对数据进行一个或者多个复杂操作的基本单元,它承载着业务持续发展的使命,不容有失。

以购物场景为例,一个完整的购物过程通常包括买家付钱、卖家交付商品并在库存中减掉本次出售商品的数量、卖家收款三个操作。这三个操作是独立的,但是这三个操作需要都完成后,整个购物操作才算完成。这样的三个操作,就可以看作是一个事务,即一个事务中包含很多操作,要么都完成,要么都不完成。数据库中事务的丢失,可能会导致很多复杂数据的丢失。

天翼云关系型数据库MySQL具有高可靠特性,基于主备架构,能够在最大程度兼顾主库效率的同时保证主库崩溃时服务不中断,做到事务零丢失,进而保证企业业务稳定连续,将故障影响降至最小,为企业排忧解难。

精准判断主库崩溃时的复制状态 天翼云关系型数据库MySQL半同步复制,是基于状态通道和时间戳的高可靠特性来实现的,其总体工作流程为: 数据库管控平台高可用模块(HA)保存主库末位的复制状态和时间戳,备实例保存主库末位的复制状态和时间戳,然后通过比较二者的状态与时间戳值来精准判断主库崩溃时的复制状态。 从原理上来看是相对简单的,但在落地时并不容易,天翼云团队通过大量实践验证做到了精准判断。 image

根据主库崩溃状态自行恢复服务 此前,天翼云关系型数据库MySQL半同步复制状态下绝大多数情况是同步复制状态,极少数情况下(如执行大事务时)会转换到异步复制状态,然后自动转换回同步复制状态。

现在,天翼云关系型数据库MySQL半同步复制凭借高可靠特性能够精准判断主库崩溃时的复制状态,并依此按照以下四种情况准确恢复服务: 1.在同步复制状态下主库发生崩溃。此时先尝试拉起主库,拉起主库成功,保证事务不丢失,在这个过程中可实现秒级恢复服务。

2.在同步复制状态下主库发生崩溃,且拉起主库失败。此时主备数据一致,会将服务平滑切换到备库,保证事务不丢失,并且秒级恢复服务。

3.在异步复制状态下主库发生崩溃,不能切换到备库,拉起主库成功,保证事务不丢失,在这个过程中可以实现秒级恢复服务。

4.在异步复制状态下主库崩溃后,不能切换到备库,且不能拉起主库,会在原来的数据上恢复主库,保证事务不丢失,在这个过程中可以实现分钟级恢复服务。

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

场景应用 机房故障断电 用户使用天翼云关系型数据库MySQL,主备机跨AZ(可用区)部署,如果主库所在的AZ(可用区)机房故障断电不可用,主库因此发生故障,用户服务发生中断,此时天翼云关系型数据库MySQL凭借高可靠特性可以使服务在秒级完成主备切换,并且做到服务与中断前的数据视图完全一致,不会有任何事务丢失。

大事务执行期间数据库宕机 用户使用天翼云关系型数据库MySQL半同步复制模式时,当主库正在执行大事务,并且复制状态从同步复制转换到异步复制时,主库突然宕机,服务因此被迫中断,天翼云关系型数据库MySQL主库会在数秒内被拉起并对外提供服务,并且与中断前的数据视图完全一致,不会有任何事务丢失。

天翼云关系型数据库MySQL的高可靠特性在保障事务不丢失的前提下,能够同时做到秒级恢复(极端情况下,分钟级恢复),从而确保主备实例的数据一致性,极大提高了数据可靠性。这是天翼云为企业数据保驾护航,践行“致力于打造企业级数据底座”的有力体现。

点赞
收藏

评论区

加载中...

相关推荐

MemFireDB获华为云“鲲鹏云服务”和“Stack 8.0”兼容性认证

近日,敏博科技自研的MemFireDB分布式关系数据库系统与华为云鲲鹏云服务、华为云Stack8.0完成兼容性认证,正式成为华为云鲲鹏凌云合作伙伴。本次测试内容涵盖产品功能、性能、可靠性、安全性、合规性等方面,重点验证了高并发、大容量的服务能力,分布式ACID事务、在线平滑弹性伸缩、跨数据中心部署等能力。面向高并发在线事务系统、海量数据存储、数据备份容灾等

golang实现MySQL数据库事物的提交与回滚

MySQL事务主要用于处理操作量大,复杂度高的数据。在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务。事务用来管理insert,update,delete语句,事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicit

MySQL 乐观锁和悲观锁

前言  1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性。  2)加锁是为了解决更新丢失问题更新丢失  两次更新同时进行,后一次更新覆盖了前一次更新的情况,更新丢失是数据没有保证一致性导致的。事务A查询余额,

Mysql系列第十五讲 事务详解

Mysql系列第十五讲什么是事务?事务的几个特性(ACID)Mysql中事务操作savepoint关键字只读事务事务中的一些问题事务的隔离级别关于隔离级别的选择什么是事务?数据库中的事务是指对数据库执行一批操作,这些操作最终要么

MySql学习18

本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作。下一篇会讲述如何使用JDBC进行数据库的事务操作。  事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑中,所有的操作要么全部成功,要么全部失败。在各个数据具有特别紧密的联系时,最好是使用数据库的事务来完成逻辑处理。  例如路人甲A给路人甲B转账

DRDS 柔性事务漫谈

_摘要:_ 在阿里巴巴,“柔性事务”已经是重构分布式事务的标准方法,覆盖了商品、交易、支付各个大规模应用场景,并且经受了双十一的考验。DRDS 是阿里云提供的一款分布式数据库产品,它的原型是在阿里内部使用了10年的数据库中间件TDDL。DRDS在TDDL提供的数据切分和SQL路由能力上,强化了分布式查询,事务和水平扩容能力。

数据库高可靠,轻松解决事务丢失问题 - HelloWorld