For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
数据库架构是大多数软件开发程序员都需要熟练掌握的一个编程技术,而本文我们就通过案例分析来简单了解一下,数据库可靠性应用分析。
企业在云上使用自建数据库的过程中,由于原生开源MySQL的事务能力并不完善,事务可能面临丢失的风险,难以保证事务执行前后数据的可靠性和一致性。事务丢失给企业造成的损失,也加大了部分企业对数据上云的担忧。
什么是“事务”?事务是指数据库中对数据进行一个或者多个复杂操作的基本单元,它承载着业务持续发展的使命,不容有失。
以购物场景为例,一个完整的购物过程通常包括买家付钱、卖家交付商品并在库存中减掉本次出售商品的数量、卖家收款三个操作。这三个操作是独立的,但是这三个操作需要都完成后,整个购物操作才算完成。这样的三个操作,就可以看作是一个事务,即一个事务中包含很多操作,要么都完成,要么都不完成。数据库中事务的丢失,可能会导致很多复杂数据的丢失。
关系型数据库MySQL具有高可靠特性,基于主备架构,能够在大程度兼顾主库效率的同时保证主库崩溃时服务不中断,做到事务零丢失,进而保证企业业务稳定连续,将故障影响降至小,为企业排忧解难。
精准判断主库崩溃时的复制状态
关系型数据库MySQL半同步复制,是基于状态通道和时间戳的高可靠特性来实现的,其总体工作流程为:
数据库管控平台高可用模块(HA)保存主库末位的复制状态和时间戳,备实例保存主库末位的复制状态和时间戳,然后通过比较二者的状态与时间戳值来精准判断主库崩溃时的复制状态。
从原理上来看是相对简单的,但在落地时并不容易,团队通过大量实践验证做到了精准判断。
根据主库崩溃状态自行恢复服务
此前,关系型数据库MySQL半同步复制状态下绝大多数情况是同步复制状态,极少数情况下(如执行大事务时)会转换到异步复制状态,然后自动转换回同步复制状态。
现在,关系型数据库MySQL半同步复制凭借高可靠特性能够精准判断主库崩溃时的复制状态,并依此按照以下四种情况准确恢复服务:
1.在同步复制状态下主库发生崩溃。此时先尝试拉起主库,拉起主库成功,保证事务不丢失,在这个过程中可实现秒级恢复服务。
2.在同步复制状态下主库发生崩溃,且拉起主库失败。此时主备数据一致,会将服务平滑切换到备库,保证事务不丢失,并且秒级恢复服务。
3.在异步复制状态下主库发生崩溃,不能切换到备库,拉起主库成功,保证事务不丢失,在这个过程中可以实现秒级恢复服务。
4.在异步复制状态下主库崩溃后,不能切换到备库,且不能拉起主库,会在原来的数据上恢复主库,保证事务不丢失,在这个过程中可以实现分钟级恢复服务。
关系型数据库MySQL半同步复制高可靠特性,能大程度保证主库效率,是因为主库的事务提交完全依赖于备库的信号,而备库把事务写入中继日志后也会立即返回一个ACK(即确认字符),没有强同步复制备库回放事务带来的主从时延。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。